我尝试了所有我能想象到的东西,但是我无法让它发挥作用......我在这里创造了一个小提琴:http://jsfiddle.net/DftyD/3/(它不在那里工作)
我想在mouseover上不断执行我的moveit-function(如果我在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的新手,所以我的代码有点麻烦。希望你能理解我的问题,也许可以帮助我。
谢谢你:)
答案 0 :(得分:0)
您需要以这种方式传递事件,否则e.pageX
内的moveit()
未定义:
var active;
cont.on({
mouseenter : function(event) {
active = setInterval(function() {
moveit(event);
}, 20);
},
mouseleave: function(){
clearInterval(active);
}
});
当然,这会使e.pageX
的值与鼠标进入元素时的值相同,但每次间隔迭代都不会更新,因此它只会移动一次。