javascript - 用鼠标水平滚动 ul

标签 javascript jquery jquery-ui jquery-tools

如何使用鼠标光标水平滚动 ul?基本上我想模拟 this 的底部部分图片库。我在网上找到了一个javascript方法,但它不是那么顺利。

最佳答案

<div>
    <ul>
        <li></li>
        ...
    </ul>
</div>  

和 JavaScript:

var $div = $('div');
var $ul = $('ul');

// width of div
var width = $div.width();

// width of ul - width of div
var ulWidth = $ul.width() - width;

$div
    .on('mouseenter', function(e) {
        // get left offset of div on page
        var divLeft = $div.offset().left;

        $(window).on('mousemove', function(e) {
            var left = e.pageX - divLeft;
            // get percent of width the mouse position is at
            var percent = left / width;

            // set margin-left on ul to achieve a 'scroll' effect
            $ul.css('margin-left', -(percent * ulWidth));
        });
    })
    .on('mouseleave', function() {
        // remove mousemove event
        $(window).off('mousemove');
    })
;​

http://jsfiddle.net/aarongloege/gQyz6/

您基本上需要根据鼠标位置距视口(viewport)左侧的百分比(在我的示例中为 div)来定位 ul 元素。

关于javascript - 用鼠标水平滚动 ul,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10695501/

相关文章:

javascript - 没有 UI 的 jQuery 嵌套选项卡

javascript - 使用信号 R 从服务器端 Asp.net MVC 触发警报

javascript - 在 jQuery 对话框打开后找到一个元素

asp.net - jQuery UI 对话框 + ASP.NET 文本框 + 焦点

javascript - 从用户信息返回一个值并将其显示在输入中

javascript - Chrome 扩展、内容脚本和 XSS 攻击

javascript - setTimeout 在几分钟后变得疯狂,FF6.0,Chrome 15

javascript - 无法使 moment-timezone.js 工作

javascript:我如何制作自己的测试模块?

javascript - 如何更改ajax结果的自动完成