我正在制作一个动画图片库,您可以使用jQuery在小提琴here中看到它,它有一些功能:
第一步和第二步工作正常,但第3项动画无法正常工作,这是我第一次在jQuery中使用动画,我一直在拉我的头发....任何人都可以看到我在哪里做错了?
这是我的代码,用于检测鼠标位置(工作正常),然后相应地设置动画(不起作用)
$(document).mousemove(function(e) {
var mX = e.pageX;
var width = $(window).width();
var buffer = parseInt(width) / 3;
var rightBuf = width - buffer;
var leftBuf = rightBuf - buffer;
if(mX > rightBuf){
$('.menu-sub').animate({ "left": "-50px" }, "slow" );
}else if(mX < leftBuf){
$('.menu-sub').animate({ "left": "50px" }, "slow" );
}else{
}
});
答案 0 :(得分:1)
要移动图像列表,您可以使用
$('.menu-sub ul').animate({ "margin-left": "-=50px" }, "slow" );
但是你不应该使用.mousemove()
,因为每次鼠标移动一个像素时都会调用它。您可以使用隐藏的div并绑定hover
,就像您为标题所做的那样。在mouseover
事件中,您可以执行类似
hovering = true;
while (hovering) {
// animate
}
并在hovering
事件中将mouseout
设为false。
我还更新了你的小提琴,至少等待一秒再滚动:http://jsfiddle.net/3xkbmo8p/16/
答案 1 :(得分:0)
如果您希望为您想要的div设置动画。左边只会影响到位的东西:绝对。
有2个解决方案,将其包装在一个位置:相对div或使用边距来动画div。
$('.menu-sub').animate({ "margin-left": "-50px" }, "slow" );