摘要:說明這次實(shí)現(xiàn)的雪花飄落的效果很簡單,主要是為了練習(xí)練習(xí)中的定時器,和。簡單說,意思就是用了這個定時器,能把兩次修改樣式的代碼分開執(zhí)行,可以先把第一次修改的樣式渲染后,在進(jìn)行第二次的修改,雪花就會動了。
說明
這次實(shí)現(xiàn)的雪花飄落的效果很簡單,主要是為了練習(xí)練習(xí)JavaScript中的定時器,setTimeout 和 setInterval。
效果圖 解釋setTimeout()
setTimeout函數(shù)用來指定某個函數(shù)或某段代碼,在多少毫秒之后執(zhí)行。它返回一個整數(shù),表示定時器的編號,以后可以用來取消這個定時器。
var timerId = setTimeout(func|code, delay)
上面代碼中,setTimeout函數(shù)接受兩個參數(shù),第一個參數(shù)func|code是將要推遲執(zhí)行的函數(shù)名或者一段代碼,第二個參數(shù)delay是推遲執(zhí)行的毫秒數(shù)。
setInterval()
setInterval函數(shù)的用法與setTimeout完全一致,區(qū)別僅僅在于setInterval指定某個任務(wù)每隔一段時間就執(zhí)行一次,也就是無限次的定時執(zhí)行。
clearTimeout(),clearInterval()
setTimeout和setInterval函數(shù),都返回一個表示計(jì)數(shù)器編號的整數(shù)值,將該整數(shù)傳入clearTimeout和clearInterval函數(shù),就可以取消對應(yīng)的定時器。
var id1 = setTimeout(f,1000); var id2 = setInterval(f,1000); clearTimeout(id1); clearInterval(id2);
注意:
setTimeout 和 setInterval 必須要等到當(dāng)前腳本的同步任務(wù)和“任務(wù)隊(duì)列”中已有的事件,全部處理完以后,才會執(zhí)行setTimeout指定的任務(wù)。
這里就不細(xì)說 setTimeout 和 setInterval的概念了 ,
想詳細(xì)了解的請看這里,定時器
我們繼續(xù)說實(shí)現(xiàn)雪花飄落的效果
主要是以下4步:
1、定義一片雪花模板;
2、設(shè)置第一個定時器,周期性定時器,每隔一段時間生成一片雪花;
3、設(shè)置第二個定時器,一次性定時器,當(dāng)?shù)谝粋€定時器生成雪花,并在頁面上渲染出來后,修改雪花的樣式,讓雪花動起來;
4、設(shè)置第三個定時器,當(dāng)雪花落下后,刪除雪花。
上面是實(shí)現(xiàn)的思路,下面寫出具體的代碼,下面的代碼是JS原生代碼,最后會附上JQuery實(shí)現(xiàn)的代碼,思路都一樣。
注意:
因?yàn)槎〞r器添加的事件,會在下一次Event Loop執(zhí)行,所以第二個定時器的作用是為了讓生成的雪花先拼接到頁面中渲染出來后,再修改他的樣式,這樣才能讓他動起來,如果沒有這個定時器,瀏覽器會把所有的JS代碼都執(zhí)行完之后才渲染頁面,這樣的話后面的樣式就直接覆蓋前面的樣式了,雪花就沒法動了,這和瀏覽器的線程有關(guān)系。
簡單說,意思就是用了這個定時器,能把兩次修改樣式的代碼分開執(zhí)行,可以先把第一次修改的樣式渲染后,在進(jìn)行第二次的修改,雪花就會動了。
如果想了解更詳細(xì)的東西推薦看看下面的文章
js setTimeOut()
原來 CSS 與 JS 是這樣阻塞 DOM 解析和渲染的
哪些地方會出現(xiàn)css阻塞,哪些地方會出現(xiàn)js阻塞?
瀏覽器~加載,解析,渲染
這次實(shí)現(xiàn)的雪花飄落效果,要說麻煩的地方,就是第二個定時器那里了,為什么用了這個定時器就能讓雪花動起來,文中只是簡單的說了一下,更加詳細(xì)的還是看看推薦的那幾篇文章吧!不過在這之前,要先弄明白定時器是怎么回事才可以。
不明白定時器看這里,定時器
不明白為什么用第二個定時器看這幾篇文章
js setTimeOut()
原來 CSS 與 JS 是這樣阻塞 DOM 解析和渲染的
哪些地方會出現(xiàn)css阻塞,哪些地方會出現(xiàn)js阻塞?
瀏覽器~加載,解析,渲染
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/90103.html
摘要:說明這次實(shí)現(xiàn)的雪花飄落的效果很簡單,主要是為了練習(xí)練習(xí)中的定時器,和。簡單說,意思就是用了這個定時器,能把兩次修改樣式的代碼分開執(zhí)行,可以先把第一次修改的樣式渲染后,在進(jìn)行第二次的修改,雪花就會動了。 說明 這次實(shí)現(xiàn)的雪花飄落的效果很簡單,主要是為了練習(xí)練習(xí)JavaScript中的定時器,setTimeout 和 setInterval。 效果圖 showImg(https://seg...
摘要:一開篇哈哈哈,感謝標(biāo)題黨的蒞臨雖然標(biāo)題有點(diǎn)夸張的感覺,但實(shí)際上,插件庫確實(shí)是簡潔,高效,輕量級,酷炫酷炫的咯。當(dāng)然,配置不同的參數(shù)值,或許可以得到挺多不同的特效呢上面已經(jīng)演示過標(biāo)配的粒子無序運(yùn)動啦,下面演示后面兩種。 一:開篇 哈哈哈,感謝標(biāo)題黨的蒞臨~ 雖然標(biāo)題有點(diǎn)夸張的感覺,但實(shí)際上,插件庫確實(shí)是簡潔,高效,輕量級,酷炫酷炫的咯。廢話不多說,先來看個標(biāo)配例子吧: http://co...
摘要:總的來說就是兩步生成小的元素,整齊的覆蓋在大的元素上,像下圖這樣為了方便看,把每個小元素,分開了些。鼠標(biāo)移入時,讓所有小元素動起來,主要是改變小元素的屬性的值具體實(shí)現(xiàn)的代碼也并不多,下面是注釋很詳細(xì)的代碼。 說明 和大家分享一個看上去很酷的效果,先來看效果圖吧! showImg(https://segmentfault.com/img/remote/1460000016194106);...
摘要:并且通過函數(shù)營造出雪花左右飄動的效果,當(dāng)雪花落到窗口外面后將雪花重新移動到窗口上方再次下落,實(shí)現(xiàn)如下速度和密度實(shí)際上不是平方的關(guān)系,這么些是為了效果更加錯落有致完成,我們來看一下實(shí)際效果也可以去看看嗯,還挺像那么回事兒 首先新建一個html文件,將body的背景設(shè)置為天空的那種深藍(lán)色,并創(chuàng)建一個canvas,canvas的操作邏輯都放在snow.js中: body {...
閱讀 4220·2021-09-26 10:17
閱讀 871·2021-09-22 15:02
閱讀 3446·2021-09-06 15:00
閱讀 1055·2021-07-25 16:52
閱讀 2734·2019-08-29 16:16
閱讀 2515·2019-08-29 13:25
閱讀 1588·2019-08-26 13:51
閱讀 2182·2019-08-26 10:58