2011-12-21 50 views
1

我接手完成了一個網站的開發工作,並且在這個網站上有一些使用jquery 1.3.2的滑塊。突然間,今天,我第一次看到,滑塊在到達內容結尾時發抖。這裏是有問題的滑塊的網站:Javascript Slider Shaking

http://rareculture.com/index.php?dispatch=pages.view&page_id=18&artist=10

這裏是相關代碼:

http://jsfiddle.net/yRV3P/

證實了這一點晃動其他人的計算機上,使用谷歌Chrome瀏覽器兩者。在Firefox中它有一些口吃,但不像在Chrome中那樣容易讓人癲癇發作。我沒有看到任何其他帖子在這裏stackoverflow或互聯網上的其他地方抖動滑塊,但我想這可能是我使用了錯誤的搜索條件。有沒有其他人遇到過這個?

謝謝。

+0

當滑塊到達的終點並不只發生內容...它會幫助,如果你會發佈一個jsfiddle再現問題,你目前的提琴似乎沒有顯示錯誤鉻.. – ptriek 2011-12-21 23:32:28

+0

同意,我無法找到在jsfiddle在所有問題。另外,如果可能的話,它可能是值得升級的jQuery,因爲我認爲它很可能是JavaScript的問題。 +我期待看到答案! – Undefined 2011-12-21 23:38:12

+0

在閱讀您關於讓它在小提琴上工作的評論之後,我回到了源代碼中,發現有兩個相同的javascript函數出於某種奇怪的原因。我把它添加到小提琴中,併發抖。現在找出額外的代碼來自哪裏。 – 2011-12-21 23:43:44

回答

0

嘗試使用setTimeout,因爲它更安全!

對我來說,我可以重現這個錯誤。我特別認識到的是,在我離開之後,滑塊仍然在運行,所以當它結束時,它看起來像搖動一樣。

當我需要一些工作intervallish,我的工作方式如下:

var active = false; 
var timr = null; 
var fn = function() { 
    if (!active) return; 
    doWork(); 
    timr = setTimeout(fn, 30) 
} 

var startWork = function() { 
    clearTimeout(timr); 
    active = true; 
    fn(); 
} 

var endWork = function() { 
    active = false; 
    clearTimeout(timr); 
} 

你甚至可以跳過「積極」的東西...