jquery中animate動畫積累的解決方法
更新時(shí)間:2013年10月05日 15:56:26 作者:
setTimeout使用時(shí)會產(chǎn)生動畫隊(duì)列,有可能是在chrome瀏覽器中窗口不處于最前端時(shí)動畫的隊(duì)列產(chǎn)生積累,下面為大家介紹下詳細(xì)的解決方法
昨天一同學(xué)向我求助,說做了一個(gè)簡單的動畫效果,就是圖片自動左右播放
<span style="white-space:pre"> </span>/* 無縫式焦點(diǎn)圖 */
var _left = 770;
var left = -_left;//-770
function slideImg() {
if(left == -3080 || left == 0) {
_left = -_left;
}
$('.slidepics').animate({'left': left + 'px'},1000);
left = left - _left;
tim = setTimeout(slideImg,5000);
}
slideImg();
我瞅了下,挺簡單的,乍一看,沒啥問題啊。后來他就說了困擾他一個(gè)月的奇怪問題,他說窗口在最前端時(shí)是ok,但把窗口最小化或是瀏覽其他窗口時(shí)就話出現(xiàn)快速的播放,過了一會兒又正常了(ie是沒問題的,chrome有問題,firefox也沒問題)。
由于以前也沒遇到過此問題,我也是想了半個(gè)多小時(shí),沒搞定,后來翻了翻以前做的筆記,有了答案,那個(gè)setTimeout使用時(shí)會產(chǎn)生動畫隊(duì)列,有可能是在chrome瀏覽器中窗口不處于最前端時(shí)動畫的隊(duì)列產(chǎn)生積累,當(dāng)回歸最前端時(shí)便一下子爆發(fā)出來了,于是想到j(luò)query中的stop方法,該方法是停止所有在此元素上的動畫。果然,加上后就ok了
<span style="white-space:pre"> </span>/* 無縫式焦點(diǎn)圖 */
var _left = 770;
var left = -_left;//-770
function slideImg() {
if(left == -3080 || left == 0) {
_left = -_left;
}
$('.slidepics').stop().animate({'left': left + 'px'},1000);
left = left - _left;
tim = setTimeout(slideImg,5000);
}
slideImg();
復(fù)制代碼 代碼如下:
<span style="white-space:pre"> </span>/* 無縫式焦點(diǎn)圖 */
var _left = 770;
var left = -_left;//-770
function slideImg() {
if(left == -3080 || left == 0) {
_left = -_left;
}
$('.slidepics').animate({'left': left + 'px'},1000);
left = left - _left;
tim = setTimeout(slideImg,5000);
}
slideImg();
復(fù)制代碼 代碼如下:
我瞅了下,挺簡單的,乍一看,沒啥問題啊。后來他就說了困擾他一個(gè)月的奇怪問題,他說窗口在最前端時(shí)是ok,但把窗口最小化或是瀏覽其他窗口時(shí)就話出現(xiàn)快速的播放,過了一會兒又正常了(ie是沒問題的,chrome有問題,firefox也沒問題)。
由于以前也沒遇到過此問題,我也是想了半個(gè)多小時(shí),沒搞定,后來翻了翻以前做的筆記,有了答案,那個(gè)setTimeout使用時(shí)會產(chǎn)生動畫隊(duì)列,有可能是在chrome瀏覽器中窗口不處于最前端時(shí)動畫的隊(duì)列產(chǎn)生積累,當(dāng)回歸最前端時(shí)便一下子爆發(fā)出來了,于是想到j(luò)query中的stop方法,該方法是停止所有在此元素上的動畫。果然,加上后就ok了
復(fù)制代碼 代碼如下:
<span style="white-space:pre"> </span>/* 無縫式焦點(diǎn)圖 */
var _left = 770;
var left = -_left;//-770
function slideImg() {
if(left == -3080 || left == 0) {
_left = -_left;
}
$('.slidepics').stop().animate({'left': left + 'px'},1000);
left = left - _left;
tim = setTimeout(slideImg,5000);
}
slideImg();
您可能感興趣的文章:
相關(guān)文章
用jquery ajax獲取網(wǎng)站Alexa排名的代碼
其實(shí)就是利用了jquery的ajax功能,獲取遠(yuǎn)程的xml文件,讀取指定內(nèi)容的代碼,對于學(xué)習(xí)jquery的朋友是個(gè)不錯的參考。2009-12-12jQuery下通過replace字符串替換實(shí)現(xiàn)大小圖片切換
實(shí)現(xiàn)的效果有點(diǎn)類似于Google picasa相冊不同尺寸圖片的切換效果。本實(shí)例通過文字大?。╢ont-size)控制圖片尺寸的做法是跟Google學(xué)習(xí)的,但是jQuery代碼是根據(jù)效果自己想出來的,邏輯很簡單,沒有什么精妙之處2012-05-05jQuery序列化form表單數(shù)據(jù)為JSON對象的實(shí)現(xiàn)方法
這篇文章主要介紹了jQuery序列化form表單數(shù)據(jù)為JSON對象的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09jQuery實(shí)現(xiàn)的右下角廣告窗體跟隨效果示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的右下角廣告窗體跟隨效果,涉及jQuery結(jié)合時(shí)間函數(shù)動態(tài)操作頁面元素屬性的相關(guān)技巧,需要的朋友可以參考下2016-09-09jquery實(shí)現(xiàn)每個(gè)數(shù)字上都帶進(jìn)度條的幻燈片
瀏覽網(wǎng)頁時(shí)不小心會碰到這樣的一個(gè)網(wǎng)站有幻燈片而且每個(gè)數(shù)字上面都帶有進(jìn)度條閑的無聊,自己用jquery實(shí)現(xiàn)了一個(gè),因?yàn)橛幸粋€(gè)進(jìn)度條的播放過程暫不支持ie6,熱愛特效的你可不要錯過了哈2013-02-02