2016-09-05 96 views
0

我正在使用這個jQuery腳本,基於div的寬度自動滾動div的橫向。但我需要它滾動到基於末端內容 div的最後。 div有'overflow-y:scroll'屬性,所以我想通過所有內容滾動滾動,直到它結束。水平自動滾動div到overflow-y設置爲滾動(jQuery)的最後端

這是我目前使用的腳本:

function animatethis(targetElement, speed) { 
    var width = $(targetElement).width(); 
    $(targetElement).animate({ marginLeft: "-="+width}, 
    { 
     duration: speed, 
     complete: function() 
     { 
      targetElement.animate({ marginLeft: "+="+width }, 
      { 
       duration: speed, 
       complete: function() 
       { 
        animatethis(targetElement, speed); 
       } 
      }); 
     } 
    }); 
}; 
animatethis($('#q1'), 5000); 

它確實滾動,但它不是滾動的div裏面的內容到底。這裏是一個jFiddle,顯示我的意思: http://jsfiddle.net/rKu6Y/535/

我怎樣才能得到它的自動滾動水平的內容,而不是股利只是寬度的結束?

我希望這一切都有道理。謝謝。

+0

所以你想讓最後一個單詞「END」在左側滾動結束時也隱藏起來? –

+0

@EnmanuelDuran \t 不,只是爲了顯示單詞「結束」。它不需要進一步超越。謝謝! – anthonyCam

回答

1

您可以動畫scrollLeft屬性,使用scrollWidthclientWidth

function animatethis(targetElement, speed) { 
    var scrollWidth = $(targetElement).get(0).scrollWidth; 
    var clientWidth = $(targetElement).get(0).clientWidth; 
    $(targetElement).animate({ scrollLeft: scrollWidth - clientWidth }, 
    { 
     duration: speed, 
     complete: function() { 
      targetElement.animate({ scrollLeft: 0 }, 
      { 
       duration: speed, 
       complete: function() { 
        animatethis(targetElement, speed); 
       } 
      }); 
     } 
    }); 
}; 
animatethis($('#q1'), 5000); 

結果可以在此jsfiddle可以看出。