jQuery UI 滑块 ->有鼠标滚轮支持吗?
你可能已经知道我是 jQuery 的新手,所以不属于这个主题的代码改进仍然是非常允许的。
这是我的 HTML 代码:
<div style="display: inline-block; width: 120px;">
<div>
Bananas:
<br />
<input id="bananas_amount" />
<input id="bananas_amount_percent" />
</div>
<br />
<div id="bananas" style="height:200px;"></div>
</div>
这是我可怕的 js 代码:(
$( "#bananas" ).slider({
orientation: "vertical",
range: "min",
min: 0,
max: 100,
value: 20,
step: 5,
slide: function( event, ui ) {
$( "#bananas_amount_percent" ).val( ui.value + " %" );
// the code displays a percentage by standart, but I need the real value, too:
var bananas_amount_percent = $( "#bananas_amount_percent" ).val();
var bananas_amount_percent = bananas_amount_percent.replace(" %", "");
var bananas_amount = Math.round((weight / 100) * bananas_amount_percent);
$( "#bananas_amount" ).val( bananas_amount + " g" );
}
});
$( "#bananas_amount_percent" ).val( $( "#bananas" ).slider( "value" ) + " %" );
// again the real value (else the value would not be updatet on reload-reset)
var bananas_amount_percent = $( "#bananas_amount_percent" ).val();
var bananas_amount_percent = bananas_amount_percent.replace(" %", "");
var bananas_amount = Math.round((weight / 100) * bananas_amount_percent);
$( "#bananas_amount" ).val( bananas_amount + " g" );
权重为 200)
但是,它正在工作,除了一个“小”细节:不使用鼠标滚轮! 我已经发现我需要这个扩展: https://github.com/brandonaaron/jquery- mousewheel/downloads
但我真的完全不知道如何将其实现到我的滑块(顺便说一句,我的网站上有 5 个)。
请帮忙, 谢谢!
as you may already know I'm new to jQuery, so Code-Improvements not belonging to this theme are still very allowed.
This is my HTML-Code:
<div style="display: inline-block; width: 120px;">
<div>
Bananas:
<br />
<input id="bananas_amount" />
<input id="bananas_amount_percent" />
</div>
<br />
<div id="bananas" style="height:200px;"></div>
</div>
And this is my horrifying js-code:
$( "#bananas" ).slider({
orientation: "vertical",
range: "min",
min: 0,
max: 100,
value: 20,
step: 5,
slide: function( event, ui ) {
$( "#bananas_amount_percent" ).val( ui.value + " %" );
// the code displays a percentage by standart, but I need the real value, too:
var bananas_amount_percent = $( "#bananas_amount_percent" ).val();
var bananas_amount_percent = bananas_amount_percent.replace(" %", "");
var bananas_amount = Math.round((weight / 100) * bananas_amount_percent);
$( "#bananas_amount" ).val( bananas_amount + " g" );
}
});
$( "#bananas_amount_percent" ).val( $( "#bananas" ).slider( "value" ) + " %" );
// again the real value (else the value would not be updatet on reload-reset)
var bananas_amount_percent = $( "#bananas_amount_percent" ).val();
var bananas_amount_percent = bananas_amount_percent.replace(" %", "");
var bananas_amount = Math.round((weight / 100) * bananas_amount_percent);
$( "#bananas_amount" ).val( bananas_amount + " g" );
(weight is 200)
However, it's working, except one "little" detail: not with the mousewheel!
I already found out that I need this extension: https://github.com/brandonaaron/jquery-mousewheel/downloads
But I've really absolutely no idea how to implement this to my Slider (I've 5 on my Site btw).
Help pls,
Thx!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
鼠标滚轮插件对于它的作用来说太重了。我提取了精华。在所有浏览器中都能很好地工作。
编辑:将
#slider
更改为#bananas
编辑2:添加触发
slide
事件因为您仅使用
value
属性我传递仅具有此属性的参数对象。如果您需要更多内容,请记住将其添加到鼠标滚轮代码中。EDIT3:当
slide
函数返回false
时添加更改取消功能(就像文档中一样)更新:
delta
不仅显示车轮方向,还显示还有更深层次的意义。它描述了要滚动的像素数。滚动的默认设置是 3 行,即 120 像素,但可以有所不同。如果您只想检索车轮的方向,请将其更改
为:
尽管
delta === 0
永远不会发生。更新:为新版本的 jQuery 添加了部分(e.originalEvent)。
The mousewheel plugin is too heavy for its role. I extracted the essence. Works great in all browsers.
EDIT: changed
#slider
to#bananas
EDIT2: added triggering
slide
eventBecause you are using only
value
property I pass for parameter object with only this property. If you will need something more, remember to add it to the mousewheel code.EDIT3: added change cancelling ability when
slide
function returnsfalse
(just like in the documentation)UPDATE:
delta
shows not only the wheel direction, but also has a deeper meaning. It describes number of pixels to scroll. The default setting for scrolling is 3 lines which is 120 pixels, but it can differ.If you want to retrieve only direction of wheel, change this:
to this:
although
delta === 0
should never occur.UPDATE: Added part for newer versions of jQuery (e.originalEvent).
我以前没有使用过鼠标滚轮插件,但从我所看到的来看,它应该像这样使用:
DivName 可能是你的滑块,我相信 Delta 是滚动方向(以单位为单位)所以我猜负数是向上,正数向下。
I haven't used the mousewheel plugin before but from what I've seen it should be used like this:
With DivName probably being your slider and I believe Delta is the scroll direction (in units) So I would guess negative is up, positive down.