JS實(shí)現(xiàn)簡(jiǎn)單的下雪特效示例詳解
前言
很多南方的小伙伴可能沒(méi)怎么見(jiàn)過(guò)或者從來(lái)沒(méi)見(jiàn)過(guò)下雪,今天我給大家?guī)?lái)一個(gè)小Demo,模擬了下雪場(chǎng)景,首先讓我們看一下運(yùn)行效果
可以點(diǎn)擊看看在線運(yùn)行http://haiyong.site/xiaxue

首先看看項(xiàng)目結(jié)構(gòu),一張雪花圖片,一個(gè).html文件和 jquery-1.4.2.js

用到的雪花圖片我放在這里了,或者可以直接用我上傳到自己網(wǎng)站上的圖片地址:http://haiyong.site/wp-content/uploads/2021/12/snow.png 開(kāi)局一張圖,內(nèi)容全靠JS。

主要實(shí)現(xiàn)代碼
HTML代碼
下面這是 html 里的內(nèi)容,沒(méi)啥東西
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>海擁?? | 雪一片一片</title>
<meta name="viewport" content="width=device-width,user-scalable=no">
<meta name="keywords" content="雪一片一片" />
<meta name="description" content="工具 | 雪一片一片;立志打造一個(gè)擁有100個(gè)小游戲的摸魚(yú)網(wǎng)站。Made By Haiyong,技術(shù)支持——海擁" />
<meta name="author" content="海擁(http://haiyong.site/moyu)" />
<meta name="copyright" content="海擁(http://haiyong.site/moyu)" />
<link rel="icon" rel="external nofollow" sizes="192x192" />
<style type="text/css">
body{
background-color: #000000;
margin: 0;/* 去掉自帶的外邊距 */
}
img{
position: absolute;
}
</style>
</head>
<body>
<script src="js/jquery-1.4.2.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>
JS代碼
首先開(kāi)啟定時(shí)器添加雪花圖片,這里的<img src='images/snow.png'>可以改成<img src='http://haiyong.site/wp-content/uploads/2021/12/snow.png'>
setInterval(function(){
var img = $("<img src='images/snow.png'>");
$("body").append(img);
這里設(shè)置雪花的尺寸為10-20px,下面的公式即表示(0-10 + 10)px
var size = parseInt(Math.random()*11)+10;
img.css("width",size+"px");
得到屏幕寬度
var w = $(window).width();
取值范圍應(yīng)該是0-屏幕寬度-雪花寬度
var left =parseInt(Math.random()*(w-size));
把得到的隨機(jī)1eft給到圖片
img.css("left",left+"px");
添加雪花移動(dòng)的動(dòng)畫(huà),得到雪花移動(dòng)的距離 = 屏幕高度-雪花尺寸
var top = $(window).height()-size;
下面注釋中的代碼是用來(lái)清除緩存的,可加可不加。
img.animate({"top":top+"px"},size*100)
/* .fadeOut(1000,function(){
//當(dāng)動(dòng)畫(huà)完成時(shí)執(zhí)行此代碼,清除緩存
img.remove();
//console.log($("img").length);
}); */
},10)
取消注釋就會(huì)看到落下的雪會(huì)消失,如下圖所示

喜歡看積雪就可以把它注釋掉,預(yù)覽效果像下面這樣

到這里我們要實(shí)現(xiàn)的效果就完成了,如果運(yùn)行時(shí)間過(guò)長(zhǎng)可能會(huì)導(dǎo)致內(nèi)存占用過(guò)多造成卡頓現(xiàn)象,可以將html代碼中的最后一段注釋里的內(nèi)容取消注釋,這樣到下面的積雪就會(huì)慢慢淡出并且remove刪除了,不過(guò)我覺(jué)得積雪也挺好看的,就沒(méi)讓它融化,像下面這樣

到此這篇關(guān)于JS實(shí)現(xiàn)簡(jiǎn)單的下雪特效示例詳解的文章就介紹到這了,更多相關(guān)JS簡(jiǎn)單的下雪特效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Canvas實(shí)現(xiàn)放射線動(dòng)畫(huà)效果
本文主要分享了Canvas實(shí)現(xiàn)放射線動(dòng)畫(huà)的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
Web開(kāi)發(fā)中客戶(hù)端的跳轉(zhuǎn)與服務(wù)器端的跳轉(zhuǎn)的區(qū)別
這篇文章主要介紹了Web開(kāi)發(fā)中客戶(hù)端的跳轉(zhuǎn)與服務(wù)器端的跳轉(zhuǎn)的區(qū)別 ,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
layDate插件設(shè)置開(kāi)始和結(jié)束時(shí)間
這篇文章主要為大家詳細(xì)介紹了layDate插件設(shè)置開(kāi)始時(shí)間和結(jié)束時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
js 鼠標(biāo)拖動(dòng)對(duì)象 可讓任何div實(shí)現(xiàn)拖動(dòng)效果
js鼠標(biāo)拖動(dòng)對(duì)象,可讓任何div實(shí)現(xiàn)拖動(dòng)效果,需要的朋友可以參考下。2009-11-11

