2012-03-27 220 views
0

首先我想说,我真的红了一大堆类似的教程/指南和其他东西,但没有一个是有帮助的。我想尽可能简化滑块,我认为我正在一个很好的方式来做到这一点。在制作滑块时,我遇到了两个问题,我不知道是否需要修复。 我做了我在这里的问题的演示http://jsfiddle.net/FJrqS/1/jquery滑块暂停悬停

第一个问题是在页面加载,滑块具有某种滞后,而滑动到右,后几秒钟都背上正常。我真的不知道什么是问题。

第二个问题是,我不知道如何让这个滑块停止悬停,并在一个鼠标上继续停止。

感谢很多提前

+0

你知道在'$(this).length'中,'this'是指DOM窗口的权利? – mowwwalker 2012-03-27 23:01:00

+0

是的,我在复制代码时犯了一个错误,我忘了撤销以前的更改。 – misticx 2012-03-27 23:05:47

回答

1

你好希望这是有益演示:http://jsfiddle.net/FJrqS/38/

请让我知道如果这有助于与否;否则我会删除我的帖子。 (戴的帽子给你,如果你正在写全养眼的风格插件:))

1)滑动,因为你正在使用的像素位置滑动leftpos是一个引起轻微缓慢我已经做了一个小改变它,似乎有点更好的行为,然后再玩,你可以玩。

2)您可以使用鼠标悬停和鼠标悬停来启动和停止循环。 (但是如果你编写插件,你可能想绑定很多其他的事件)

悬停你可以改变.mouseover.hover但是.mouseover应该做的。

jQuery代码下面

$(document).ready(function(){ 

loop(); 
function loop(){ 
    var sliderRwidth = ($('#sliderR li').length)*200; 
    var leftpos =(($('#sliderR li').length))-70; 
    var rightpos = (($('#sliderR li').length)*200)-1000; 
    var speed = 5000; 

$("#sliderR").css('width',sliderRwidth+'px'); 

$("#sliderR").animate({'left':leftpos+'px'},speed 
,function() { 
$("#sliderR").animate({'left':-rightpos+'px'},speed 
,function(){loop(); 

     }) 
    }); 



} 
    //On mouseover stop the slider 
    $("#sliderR").mouseover(function() { 
     $(this).stop(); 
     return false; 
    }); 

    //On mouseout start the slider 
    $("#sliderR").mouseout(function() { 
     loop(); 
    }); 

});​ 

希望这有助于,干杯!