2012-03-27 148 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(); 
    }); 

});​ 

希望這有助於,乾杯!