這篇文章主要介紹了jQuery動畫出現(xiàn)連續(xù)觸發(fā)、滯后反復(fù)執(zhí)行的解決方法,實例分析了針對jQuery中slideUp、slideDown、animate等動畫運用時出現(xiàn)的滯后反復(fù)執(zhí)行等問題的解決方法,需要的朋友可以參考下
本文實例講述了jQuery動畫出現(xiàn)連續(xù)觸發(fā)、滯后反復(fù)執(zhí)行的解決方法。分享給大家供大家參考。具體分析如下:
jQuery中slideUp 、slideDown、animate等動畫運用時,如果目標(biāo)元素是被外部事件驅(qū)動, 當(dāng)鼠標(biāo)快速地連續(xù)觸發(fā)外部元素事件, 動畫會滯后的反復(fù)執(zhí)行,其表現(xiàn)不雅。
則解決辦法:
1、在觸發(fā)元素上的事件設(shè)置為延遲處理, 即可避免滯后反復(fù)執(zhí)行的問題(使用setTimeout)
2、在觸發(fā)元素的事件時預(yù)先停止所有的動畫,再執(zhí)行相應(yīng)的動畫事件(使用stop)
jquery stop:
復(fù)制代碼代碼如下:
//語法結(jié)構(gòu)
$("#div").stop();//停止當(dāng)前動畫,繼續(xù)下一個動畫
$("#div").stop(true);//清除元素的所有動畫
$("#div").stop(false, true);//讓當(dāng)前動畫直接到達(dá)末狀態(tài) ,繼續(xù)下一個動畫
$("#div").stop(true, true);//清除元素的所有動畫,讓當(dāng)前動畫直接到達(dá)末狀態(tài)
這里推薦使用第二種方法:
復(fù)制代碼代碼如下:
$("#div").stop().animate({width:"100px"},100);
希望本文所述對大家的jQuery程序設(shè)計有所幫助。