我有一个幻灯片动画页面。在我第一次在此页面上移动鼠标后,每次滑动函数运行时都会触发 mousemove 事件,即使滑动函数中没有任何引用鼠标的内容。如果我只运行一次幻灯片,而不是循环运行,它可以正常工作。或者,如果我在循环中运行幻灯片但根本不触摸鼠标,则幻灯片循环也不会错误地触发任何 mousemove 事件。问题仅在于幻灯片自动循环并且我已经移动了一次鼠标。
像这样的滑动函数循环运行:
function slide(id) {
$(“.thumb”).addClass(“inactive”);
$(".thumb:nth-of-type("+(id+1)+")").addClass("active");
$(“.thumb-container”).animate({ marginLeft: '-'+nextPos+'px' }, {
duration: 500,
easing: "easeOutCubic",
complete: function() {
console.log(“anim done”);
}
});
}
setInterval(function() { slide(id++); }, 200);
然后,在函数之外:
$(document).mousemove(function(event) {
console.log("mouse moving");
});
更新:奇怪,当我从幻灯片功能中注释掉以下内容时,这个问题得到了解决:
$(".thumbnails .thumb:nth-of-type("+(lastSlide+1)+")").removeClass("active-thumb");
$(".thumbnails .thumb:nth-of-type("+(lastSlide+1)+") .inactive-overlay").fadeIn(300);
$(".thumbnails .thumb:nth-of-type("+(id+1)+")").addClass("active-thumb");
$(".thumbnails .thumb:nth-of-type("+(id+1)+") .inactive-overlay").fadeOut(300);
更新:已解决!这是因为 .active-thumb 类正在使用:
cursor: default;