jQuery Slider Bar - 尝试根据用户输入设置范围和间隔

Posted

技术标签:

【中文标题】jQuery Slider Bar - 尝试根据用户输入设置范围和间隔【英文标题】:jQuery Slider Bar -- trying to setup range and intervals based on user input 【发布时间】:2015-04-16 15:01:30 【问题描述】:

这个想法是有人会输入他们的医疗账单金额,在取消折扣后,用户现在有一个新的要支付的金额。然后,用户可以选择他们希望每月支付多少,直到全额支付。

我想创建一个带有可选刻度的 jQuery 滑块,以分解每月付款的选择。例如,如果有人输入他们的医疗账单为 1000 美元,折扣 20% 后将变为 800 美元,然后我希望将 800 在滑块上分为 12 个刻度,每个值除以月数。第一个刻度是一个月 800 美元,而最后一个刻度大约是 800 美元。 12 个月 66 美元。

我尝试查看 jQuery 滑块文档,但不确定如何根据用户输入聚合范围值。到目前为止,我有用于用户输入的 javascript 代码,但我不确定如何将它与滑块合并。

我们将不胜感激任何正确方向的帮助。谢谢!

// Have the user input their medical bill amount
var originalAmount = prompt('What is the amount of your medical bill?');
console.log(originalAmount);

// Take off 20% of the medical bill for a discount
var discountAmount = originalAmount * .20;
console.log('Your discount is 20%, which is ' + discountAmount + ' in savings.');

// Declare what the new amount owed is after taking the discount off
var newAmount = originalAmount - discountAmount;
console.log('Your new amount owed for your bill is ' + newAmount + ' .');

【问题讨论】:

【参考方案1】:

你描述的那样,你的问题不会很容易实现,因为 jQueryUI Slider 默认情况下只提供“固定刻度”,我记得很多。

因此我会推荐一个不同的方向:

首先,忘记滑块的折扣。滑块应仅支持必须支付的实际金额。折扣只会让事情变得更加复杂而没有好处。在第一步中减去折扣,然后是滑块。 这样怎么样:不要提供金额滑块,而是提供客户想要支付的次数:一次付款、两次付款……、十二次付款。

所以你有一个增量为 1 的简单滑块。

为方便客户,您可以提供一个只读字段,在移动滑块时打印单次付款(例如,12 个月付款为 66 美元)。

当你真的需要一个“支付滑块”时:

当然可以自己编写“滴答”或“步骤”(在 jQuery 文档中如何调用)。您当然可以将付款范围设置为 800,将步长设置为 1。但是您必须自己实现刻度。

你是怎么做到的:

有一个“改变”事件。您可以为该事件注册一个函数。每次事件触发时,您都必须检查滑块的当前值——您所做的是检查滑块的当前位置。当滑块不在所需位置之一时,找到最近的一个并更正滑块!

你当然必须非常小心地这样做,因为事件可能很棘手。您可能遇到的一个问题是,您获得了一个事件,更正了滑块,并且由于更正本身是一种更改,您将获得另一个事件....并且您在无休止的事件递归中运行,阻塞了用户的浏览器.你当然应该避免这种情况!

您获得的效果可能或多或少是可取的。用户也可能会觉得“笨拙”,因为步骤的大小不同。如果您最终获得的行为对您的客户来说足够好,您必须尝试。

【讨论】:

感谢您抽出宝贵时间回复我的问题!我必须创建两个滑块。第二个将是您刚刚推荐的那个:付款次数,而不是每月所需的数字金额。如果我不知道如何做前者,我会尝试您的“将两者结合”与付款次数和只读字段的建议。 @KatieReed:我添加了一个草图,如何实现支付滑块。您当然可以结合两个滑块,但您的付款滑块将更难以实施。如果您想要同时使用两个滑块,则必须通过事件连接它们。

以上是关于jQuery Slider Bar - 尝试根据用户输入设置范围和间隔的主要内容,如果未能解决你的问题,请参考以下文章

Unity 向 UI Slider 发送值并更新 Slider bar

jQuery UI Slider 重置动画

Jquery UI Slider 增量和减量

无法使用 jquery 找到 DOM 元素(WordPress、Layer Slider)

WordPress 与 OOP jQuery Slider 插件冲突

测试用例:PrototypeJS cause jQuery ui&ŧ039;s slider widget在IE8中失败