0

我尝试了我能想象的一切,但我无法让它工作......我在这里创建了一个小提琴:http: //jsfiddle.net/DftyD/3/(它不在那里工作)

我想在鼠标悬停时不断执行我的 moveit 功能(如果我在 mousemove 上执行此操作,则当图库在单击时调整大小时会出现问题)

cont.bind('mouseenter', function() {
    active = setInterval(moveit, 20);  // WHAT IS WRONG HERE?
        }).bind('mouseleave', function(){
    active && clearInterval(active);
});

function moveit(e) {
    var windowHeight = $(window).height();
    var contWidth = cont.width();
    var galWidth = lastImg[0].offsetLeft + lastImg.outerWidth();
    var left = (e.pageX - cont.offset().left) * (galWidth - contWidth) / contWidth;
    cont.scrollLeft(left);
};

我是 jquery 的新手,所以我的代码有点乱。希望您了解我的问题,也许可以帮助我。

谢谢你 :)

4

1 回答 1

0

这样做时需要传递事件,否则e.pageX内部未定义moveit()

var active;

cont.on({
    mouseenter : function(event) {
        active = setInterval(function() {
            moveit(event);
        }, 20);
    },
    mouseleave: function(){
        clearInterval(active);
    }
});

当然,这会使 的值e.pageX与鼠标进入元素时的值相同,它不会在每次间隔迭代时更新,所以它只移动一次。

小提琴

于 2013-04-06T19:14:46.093 回答