我一直在用JQuery創建一個圖片庫,一切都完成了。這些圖像水平放置在隱藏溢出ID(不想顯示滾動條)的div內。我有兩個圖像箭頭左側和箭頭右側的鏈接。現在我想要做的是當我點擊左箭頭時,它應該顯示以前的圖像,當我點擊右箭頭圖像時,它應該顯示下一個圖像。我懷疑當用jquery點擊相應的箭頭圖像時,我將不得不向正確的方向移動滾動條。用JQuery移動滾動條
如何做到這一點?
感謝
我一直在用JQuery創建一個圖片庫,一切都完成了。這些圖像水平放置在隱藏溢出ID(不想顯示滾動條)的div內。我有兩個圖像箭頭左側和箭頭右側的鏈接。現在我想要做的是當我點擊左箭頭時,它應該顯示以前的圖像,當我點擊右箭頭圖像時,它應該顯示下一個圖像。我懷疑當用jquery點擊相應的箭頭圖像時,我將不得不向正確的方向移動滾動條。用JQuery移動滾動條
如何做到這一點?
感謝
我相信你可以用scrollLeft
$("#leftArrow").click(function(){
$("#divId").scrollLeft(Math.max(0, $("#divId").scrollLeft() - 100));
});
$("#rightArrow").click(function(){
$("#divId").scrollLeft(Math.min(1000, $("#divId").scrollLeft() + 100));
});
通過適當的限制,而不是0
和1000
,你的圖像寬度,而不是100
做到這一點。
但是,看看您的示例頁面,您有另一個問題。
你認爲你的圖片被放在這樣的:
[Visible area] [ Overflow .... ] .=========================._ ___ ___ ___ ___ X | | | | | | X | | | | . . . | | X___|___|___|___|___|___|_X_|___|___|___| |___| "========================="
和水平滾動的可見區域將其他圖像變得可見。
事實上,圖像被放置這樣的:
[Visible area] .=========================. X | | | | | | X X___|___|___|___|___|___| X "=========================" |___|___|___|___|___|___| | | | | | | | |___|___|___|___|___|___| [ Overflow ... ] ... ___ ___ ___ ___ ___ ___ | | | | | | | |___|___|___|___|___|___|
...這樣的水平滾動沒有好處。 (圖像實際上是垂直溢出的!實際上,如果使用相同的代碼,但使用scrollTop
而不是scrollLeft
,則可以看到此圖像)
圖像包裝是因爲它們位於具有明確寬度的div內。
您可以通過在第一個div(與overflow:none
的寬度足夠寬以容納所有圖像)中放置第二個div來解決此問題。
當你的頁面,執行
javascript:
$("#images")
.css("overflow", "hidden")
.wrapInner("<div style='width:1000px'>");
會做的伎倆。然後如果你執行
javascript:
$("#images").scrollLeft(10);
你會看到水平滾動實際上工作。
如果你想做一個稍微性感的版本,你可以動畫滾動區域。
$("#left").click(function(){
$("#scroll-holder").animate({ scrollLeft: Math.max(0, $("#scroll-holder").scrollLeft() - 250)}, 175);
});
$("#right").click(function(){
$("#scroll-holder").animate({ scrollLeft: Math.max(1000, $("#scroll-holder").scrollLeft() + 250)}, 175);
});
+1:謝謝你的分享,我試試看。 – Sarfraz
@Dialial:我試過你的代碼,但是當我點擊箭頭時它不會移動圖像,請看這裏請:http://sarfraznawaz2005.kodingen.com/demos/jquery/image_gallery/ – Sarfraz
@Sarfraz:我已經更新了張貼解決您的實際問題。一旦你解決了其他問題,'scrollLeft'實際上應該可以工作;我不否認:] –