jQuery UI 滑块 -> 支持鼠标滚轮?

2023-12-14

你可能已经知道我是 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 个)。

请帮忙, 谢谢!


鼠标滚轮插件对于它的作用来说太重了。我提取了精华。在所有浏览器中都能很好地工作。

$('#bananas').bind('mousewheel DOMMouseScroll', function (e) {
    var delta = 0, element = $(this), value, result, oe;
    oe = e.originalEvent; // for jQuery >=1.7
    value = element.slider('value');

    if (oe.wheelDelta) {
        delta = -oe.wheelDelta;
    }
    if (oe.detail) {
        delta = oe.detail * 40;
    }

    value -= delta / 8;
    if (value > 100) {
        value = 100;
    }
    if (value < 0) {
        value = 0;
    }

    result = element.slider('option', 'slide').call(element, e, { value: value });
    if (result !== false) {
        element.slider('value', value);
    }
    return false;
});

编辑:已更改#slider to #bananas

EDIT2:添加触发slide event

因为你只使用value我为仅具有此属性的参数对象传递的属性。如果您需要更多内容,请记住将其添加到鼠标滚轮代码中。

EDIT3:添加更改取消能力slide函数返回false(就像文档中一样)

UPDATE: delta不仅显示了车轮的方向,还有更深层次的含义。它描述了要滚动的像素数。滚动的默认设置为 3 行,即 120 像素,但也可以有所不同。
如果您只想检索车轮的方向,请更改此设置:

value -= delta / 8;

to this:

value -= (delta > 0) ? 5 : (delta < 0) ? -5 : 0;

虽然delta === 0永远不应该发生。

更新:为新版本的 jQuery 添加了部分(e.originalEvent)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery UI 滑块 -> 支持鼠标滚轮? 的相关文章

随机推荐

  • iPhone 上的谷歌地图异常

    我正在尝试将谷歌地图添加到我的iPhone应用程序中 我按照谷歌在此处所说的进行操作https developers google com maps documentation ios start getting the google ma
  • Excel 与 OneDrive 的全名属性

    如果我想在保存后使用打开的 Workbook 对象获取 Excel 文件的全名 但该文件已同步到 OneDrive 我会得到一个 https 地址 而不是本地地址 其他程序无法解释该地址 如何获取这样的文件的本地文件名 Example 将文
  • open_basedir 限制生效 文件不在允许的路径内

    Warning is dir function is dir open basedir restriction in effect File is not within the allowed path s home futbol data
  • JS window.onload 用法与文档

    window onload从我的阅读看来 它可以与document onload但我的经验表明这是不正确的 我继承了一个 JS 脚本 但我不知道如何纠正它 我希望 JS 在 DOM 加载后执行 而不是在所有资源加载后执行 我怎样才能做到这一
  • eras light itc 的 CSS 代码

    谁能给出 eras light ITC 字体的css编码 我无法得到它 编码是 para quote padding right 30px font family sans serif font weight 100 我想要eras lig
  • jQuery:$().click(fn) 与 $().bind('click',fn);

    当使用 jQuery 连接事件处理程序时 使用 click 方法有什么区别 click fn 与使用绑定方法相比 bind click fn 除了绑定的可选数据参数之外 对于它的价值 从jQuery 源代码 jQuery each blur
  • PHPMailer 收件人地址上的字符 ñ

    当我尝试将电子邮件发送到包含字母 的收件人地址时 我在 phpmailer 上收到下一个错误 例如 致命错误 未捕获异常 phpmailerException 并带有消息 无效地址 lauro mu 电子邮件受保护 我知道它说这是一个无效地
  • 我可以通过任何方式检测驱动程序签名策略状态吗?

    我有一个修改过的驱动程序 并且必须在禁用驱动程序签名时安装 因此我想检测此状态以提醒用户重新启动到安全模式 我试过这个命令 Bcdedit exe set TESTSIGNING OFF 但是失败并提示 设置元素数据时发生错误 该值受安全启
  • Django 和 HTML 数组

    我有一个包含以下输入的表单
  • Pig、Cassandra 和 DataStax 拆分控制

    我一直在使用 Pig 和我的 Cassandra 数据来完成各种令人惊奇的分组壮举 而这些壮举几乎不可能用命令式的方式编写 我正在使用 DataStax 的 Hadoop 和 Cassandra 集成 我不得不说它令人印象深刻 向那些家伙致
  • Ajillion PHP-MySQLi-数据库类更新命令

    使用 Ajillion 制作的 MySQLi 类 https github com ajillion PHP MySQLi Database Class 我想执行以下命令 command UPDATE sessions SET active
  • 如何从 Mayavi GUI 加载 CSV 文件?

    我知道如何将 CSV 读入 numpy 并通过 Python 脚本执行此操作 这对于我的用例来说已经足够了 但由于它有一个具有数据加载功能的 GUI 我希望它能够适用于这种通用数据格式 所以我尝试进入菜单 File 加载数据 打开文件 但是
  • 使用 Func<> 提高代码可读性的机会

    今天我终于 得到 了Func lt gt delegate 并了解了如何使用它来使我的一些可读性较差的 LINQ 查询 希望如此 更具可读性 这是一个简单的代码示例 以 非常 简单的示例说明了上述内容 List
  • T-SQL 中的“WHERE IN”[重复]

    这个问题在这里已经有答案了 可能的重复 参数化 SQL IN 子句 是否可以使用查询参数来填充IN关键字 您好 我在 SQL 查询中使用 WHERE IN 因为用户可能需要输入多个 id 来显示 的记录 以逗号分隔 我现在有这个 WHERE
  • 骨干模型保存

    我正在使用 Rails 并学习 Backbone 请帮帮我 有什么方法可以在保存时设置正确的模型吗 例如 当我创建带有一些参数的新用户并尝试将其保存到数据库中时 在服务器端 我没有将用户作为对象 而是将用户字段保存在参数中 保存用户的唯一方
  • 如何在java中使用fiddler捕获https

    我正在 Eclipse IDE 中运行以下 java 程序 import java net import java io public class HH public static void main String args throws
  • 默认整数值是什么?

    我在某处读到默认浮点值 例如1 2 are double not float 那么默认整数值是多少6 他们是short int or long 以 10 为基数给出的整数文字类型是以下列表中其值可以容纳的第一个类型 int long int
  • Spidermonkey 上的垃圾收集器问题...JS_AnchorPtr()?

    我推出了自己的 javascript 服务器端语言 称为 bondi 最近刚刚升级到新的蜘蛛猴 现在JS进入本地根和离开本地根的功能从1 8 5 api中消失 无用了 只使用锚点指针就足够了 JS AnchorPtr varname 在函数
  • Jasper Reports 中的子报表

    我有两个表格要打印在同一页上 这些表的数据将从自定义数据源的地图中提供 我需要实施它 我用谷歌搜索来实现这个任务 当时我遇到了子报告的概念 但我没有得到太多关于如何实现子报告的信息 我知道如何创建子报告 但我不知道如何使用自定义数据源填充子
  • jQuery UI 滑块 -> 支持鼠标滚轮?

    你可能已经知道我是 jQuery 的新手 所以不属于这个主题的代码改进仍然是非常允许的 这是我的 HTML 代码 div style display inline block width 120px div Bananas br div d