2014-02-19 72 views
-1

我一直試圖使用jQuery的scrollLeft創建一個小滑動部件,該部件由此特定頁面元素兩側的兩個<div>元素操作。儘管有些人會稱之爲非常糟糕的做法,並且可能帶有一些令人難以置信的原始代碼,但最初的一切似乎都按預期工作。 試圖使元素更容易使用我決定包含一個if語句,以便使圖像循環回到第一個,如果按鈕被點擊的次數多於存在的圖像的次數。ScrollLeft不與「if」語句結合使用

本質的代碼工作如下(其中每個圖像是100個像素寬)

$("#next").click(function() { 
    position = position + 100; 
    $("#wrap").animate({ 
     scrollLeft: (position) 
    }); 
}); 

但停止時變爲

$("#next").click(function() { 
    if (positon < 300){ 
     position = position + 100; 
     $("#wrap").animate({ 
      scrollLeft: (position) 
     }); 
    } else { 
     loopBack(); 
     } 
}); 

其中loopBack是設定position爲0的函數的工作並按照初始(工作)功能進行。 JSHint報告沒有代碼語法本身的問題,我已將值檢查更改爲position != 300,以查看它做了什麼差異(沒有,因爲它實際上)。

的JSFidde可以在這裏找到:http://jsfiddle.net/ActualRealJamz/8WcUb/7/ 落後的功能一直保持按原來如此,你可以看到它是如何開始工作,wrap具有已啓用x軸滾動,這樣它實際上可以使用落後功能。

我對這裏的想法非常堅持,任何幫助都會在這裏得到最多的讚賞。

+0

什麼'position'包含在函數的開始?它是一個(吞噬!)全局變量? – lucke84

+0

「Uncaught ReferenceError:** positon **未定義」 – gvee

+0

另外我認爲你需要檢查'200',而不是'300',因爲只有3個塊。否則會有額外的點擊需要回滾到0 – Pointy

回答

0

您的代碼中存在拼寫錯誤。

這很容易被發現,如果你檢查控制檯日誌:

Uncaught ReferenceError: positon is not defined

修正碼(斷定上)

$("#next").click(function() { 
    if (position < 300){ 
     position = position + 100; 
     $("#wrap").animate({ 
      scrollLeft: (position) 
     }); 
    } else { 
     loopBack(); 
     } 
}); 
+0

非常感謝!我完全錯過了。讓我感到有點尷尬,至少可以說! – user2957638