// Repaints the progress bar's filled-in amount based on the % of time elapsed for current video.
progressBar.change(function() {
var currentTime = $(this).val();
var totalTime = parseInt($(this).prop('max'), 10);
// Don't divide by 0.
var fill = totalTime !== 0 ? currentTime/totalTime : 0;
// EDIT: Added this check, testing with it now.
if (fill < 0 || fill > 1) throw "Wow this really should not have been " + fill;
var backgroundImage = '-webkit-gradient(linear,left top, right top, from(#ccc), color-stop(' + fill + ',#ccc), color-stop(' + fill + ',rgba(0,0,0,0)), to(rgba(0,0,0,0)))';
$(this).css('background-image', backgroundImage);
});
我使用上面的JavaScript來修改背景圖像,並使用漸變填充進度條。元素的背景圖像可以被修改的頻率是否有限制?
極度間歇性 - 背景圖像完全停止呈現。我在這段代碼中放置了日誌記錄,一切似乎都正常。我沒有被0除,我的填充也不是0,但背景圖像停止顯示。
如果我重新加載dom元素 - 它會重新開始工作!所以,我想知道我是否在這裏做了一些非常錯誤的事情。也許我不能像這樣連續數小時設置背景圖像?
編輯:我將嘗試獲取一個簡短的視頻剪輯與一些日誌記錄,以突出問題。這可能需要我一點點重現。
我把一個斷點到代碼和觀察到的填充物的值是大於0且小於1大的值。在這種情況下其值爲0.6925
把一個斷點到代碼,打破這一點,然後允許執行繼續,導致進度條的填充重新出現!
EDIT2:下面是它發生視頻:http://screencast.com/t/DvzBr06f
不,沒有限制你可以改變一個css屬性的次數。 – adeneo
很高興知道。謝謝。 –
發生這種情況時,「fill」變量的確切值是什麼?添加另一個檢查,看看它是否觸發過if'fill(填寫< 0 || fill > 1)' – Ma3x