For循環(huán)線程與JQ動(dòng)畫結(jié)合的問題

For循環(huán)線程與JQ動(dòng)畫結(jié)合的問題
前言:
最近做了一組數(shù)字翻滾動(dòng)畫橄登,期間采用jq的animate動(dòng)畫和for循環(huán)肥照,對拼接成數(shù)組的數(shù)字進(jìn)行展示嚷闭,踩了不少坑,在此做個(gè)記錄论寨,將心得整理一下星立。
序:貼代碼如下(寫個(gè)序,其實(shí)就是為了貼代碼葬凳,哈哈绰垂,我太邪惡了):
Html:

<div class="cont">
            <div class="box">

            </div>
            <button type="button" onclick="$.fn.move()">點(diǎn)擊翻滾</button>
        </div>

Js:

// animate
    $.fn.move = function(){
        var arr = numAdd();
        console.log(arr)
        for(var i=0;i<$('.num').not('.comma').length+1;i++){
            
            for(var j=0;j<10;j++){
                if(arr[i] == $(".num>div>div").eq(j).text()){
                    var value = -68*j + 'px';
                    var hei = $(".num>div").eq(i).css("top");
                    var newTop = -68*j,oldTop = parseFloat(hei.split("px")[0]);
                    if(newTop < oldTop){
                        $(".num>div").eq(i).animate({top:value},800);
                    }else if(newTop > oldTop){
                        var topNew = -68*(j+10)+'px';
                        $(".num>div").eq(i).append($(domNum).addClass('temp'));
                        console.log('newTop['+j+']=='+ newTop + '---oldTop[' + i + ']--'+ oldTop + '---value=='+value)
                        $(".num>div").eq(i).animate({top:topNew},500)
                            console.log(value)
                            $(".num>div").eq(i).animate({top:value},10);
                            setTimeout(function(){
                                $(".num>div>.temp").remove();
                            },800)
                    }else{
                        $(".num>div").eq(i).animate({top:value},800);
                    }
                }
            }
        }
    }

Css這塊就不貼了,期間對于數(shù)字的翻滾用到了絕對定位火焰。

坑的解析:
1劲装、move函數(shù)中for循環(huán)的雙層嵌套,執(zhí)行過程的時(shí)間是短暫的昌简,而且每一次執(zhí)行當(dāng)中啟動(dòng)的animate都帶有延時(shí)加載的特性占业,可視為單個(gè)線程的運(yùn)行互不影響,
2纯赎、Animate的運(yùn)行谦疾,在延時(shí)結(jié)束的時(shí)間,我們需要去進(jìn)行多余dom的清除和第一組數(shù)據(jù)對應(yīng)值的歸位(稱為回歸犬金,比如說原來的數(shù)字某一位是6念恍,要變更為3六剥;我們需要從6開始上滾到展示9,在從0開始滾到到展示3樊诺;之后便是回歸的開始仗考,將dom的css定位到第組0-9中的3的位置展示,并刪除第二組0-9的dom)词爬,而回歸的開始時(shí)間秃嗜,for循環(huán)已經(jīng)執(zhí)行結(jié)束,拋出最大的i值顿膨;

(the importent最重要的問題 ,循環(huán)內(nèi)animate執(zhí)行結(jié)束之前锅锨,for循環(huán)已經(jīng)執(zhí)行結(jié)束)

3、因此恋沃,此時(shí)回歸的value值必搞,取的i就是最大的i,對應(yīng)每一個(gè).num內(nèi)歸位的情況就是囊咏,全部都變成了最大的value值恕洲;

解決辦法:
在循環(huán)中animate執(zhí)行的下一步,添加一次性定時(shí)器(相當(dāng)于另起一個(gè)線程梅割,讓沒一次for循環(huán)中都啟動(dòng)兩個(gè)互不影響的線程霜第,在延遲時(shí)間之后再執(zhí)行另一個(gè)線程),這個(gè)線程定時(shí)在animate執(zhí)行完畢之后再開始執(zhí)行户辞,此時(shí)不影響animate的變化效果泌类,并完美解決了for循環(huán)的執(zhí)行與animate延時(shí)線程之間無法歸位和滾動(dòng)錯(cuò)亂的問題。

寫法如下:
$(namet).eq(i).animate({top:topNew},800)
            $(namet).eq(i).animate({top:value},10);
    setTimeout(function(){
        $(".num>div>.temp").remove();
},900)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末底燎,一起剝皮案震驚了整個(gè)濱河市刃榨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌双仍,老刑警劉巖枢希,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異殊校,居然都是意外死亡晴玖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門为流,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呕屎,“玉大人,你說我怎么就攤上這事敬察⌒憔Γ” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵莲祸,是天一觀的道長蹂安。 經(jīng)常有香客問我椭迎,道長,這世上最難降的妖魔是什么田盈? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任畜号,我火速辦了婚禮,結(jié)果婚禮上允瞧,老公的妹妹穿的比我還像新娘简软。我一直安慰自己,他們只是感情好述暂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布痹升。 她就那樣靜靜地躺著,像睡著了一般畦韭。 火紅的嫁衣襯著肌膚如雪疼蛾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天艺配,我揣著相機(jī)與錄音察郁,去河邊找鬼。 笑死转唉,一個(gè)胖子當(dāng)著我的面吹牛绳锅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酝掩,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼眷柔!你這毒婦竟也來了期虾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤驯嘱,失蹤者是張志新(化名)和其女友劉穎镶苞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞠评,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茂蚓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剃幌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聋涨。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖负乡,靈堂內(nèi)的尸體忽然破棺而出牍白,到底是詐尸還是另有隱情,我是刑警寧澤抖棘,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布茂腥,位于F島的核電站狸涌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏最岗。R本人自食惡果不足惜帕胆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望般渡。 院中可真熱鬧懒豹,春花似錦、人聲如沸诊杆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晨汹。三九已至豹储,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淘这,已是汗流浹背剥扣。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铝穷,地道東北人钠怯。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像曙聂,于是被迫代替她去往敵國和親晦炊。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容