JS實(shí)現(xiàn)簡單的下雪特效示例詳解
前言
很多南方的小伙伴可能沒怎么見過或者從來沒見過下雪,今天我給大家?guī)硪粋€(gè)小Demo,模擬了下雪場景,首先讓我們看一下運(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 開局一張圖,內(nèi)容全靠JS。
主要實(shí)現(xiàn)代碼
HTML代碼
下面這是 html 里的內(nè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è)小游戲的摸魚網(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代碼
首先開啟定時(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");
添加雪花移動的動畫,得到雪花移動的距離 = 屏幕高度-雪花尺寸
var top = $(window).height()-size;
下面注釋中的代碼是用來清除緩存的,可加可不加。
img.animate({"top":top+"px"},size*100) /* .fadeOut(1000,function(){ //當(dāng)動畫完成時(shí)執(zhí)行此代碼,清除緩存 img.remove(); //console.log($("img").length); }); */ },10)
取消注釋就會看到落下的雪會消失,如下圖所示
喜歡看積雪就可以把它注釋掉,預(yù)覽效果像下面這樣
到這里我們要實(shí)現(xiàn)的效果就完成了,如果運(yùn)行時(shí)間過長可能會導(dǎo)致內(nèi)存占用過多造成卡頓現(xiàn)象,可以將html代碼中的最后一段注釋里的內(nèi)容取消注釋,這樣到下面的積雪就會慢慢淡出并且remove刪除了,不過我覺得積雪也挺好看的,就沒讓它融化,像下面這樣
到此這篇關(guān)于JS實(shí)現(xiàn)簡單的下雪特效示例詳解的文章就介紹到這了,更多相關(guān)JS簡單的下雪特效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript Deferred和遞歸次數(shù)限制實(shí)例
你知道Deferred和遞歸次數(shù)限制嗎?如果還不知道,可以看看下面的實(shí)例,很好,適合新手朋友們2014-10-10超詳細(xì)JavaScript深淺拷貝的實(shí)現(xiàn)教程
淺拷貝是指,一個(gè)新的對象對原始對象的屬性值進(jìn)行精確地拷貝;深拷貝是指,對于簡單數(shù)據(jù)類型直接拷貝他的值,對于引用數(shù)據(jù)類型,在堆內(nèi)存中開辟一塊內(nèi)存用于存放復(fù)制的對象,并把原有的對象類型數(shù)據(jù)拷貝過來。本文將實(shí)現(xiàn)JavaScript深淺拷貝,需要的可以參考一下2022-09-09html向js方法傳遞參數(shù)具體實(shí)現(xiàn)
html如何向js方法傳遞參數(shù),在本文將為大家詳細(xì)介紹下html注冊事件向引用方法中的傳參問題,感興趣的朋友可以參考下,希望對大家有所幫助2013-08-08第七篇Bootstrap表單布局實(shí)例代碼詳解(三種表單布局)
Bootstrap提供了三種表單布局:垂直表單,內(nèi)聯(lián)表單和水平表單。接下來通過本文給大家介紹Bootstrap表單布局實(shí)例代碼詳解,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06JavaScript Ajax Json實(shí)現(xiàn)上下級下拉框聯(lián)動效果實(shí)例代碼
這篇文章主要介紹了JavaScript Ajax Json實(shí)現(xiàn)上下級下拉框聯(lián)動效果實(shí)例代碼,有需要的朋友可以參考一下2013-11-11js中select選擇器的change事件處理函數(shù)詳解
Js操作Select是很常見的,也是比較實(shí)用的,下面這篇文章主要給大家介紹了關(guān)于js中select選擇器的change事件處理函數(shù)的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下2023-06-06詳解如何通過JavaScript實(shí)現(xiàn)函數(shù)重載
這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript實(shí)現(xiàn)函數(shù)重載,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)JavaScript有一定的幫助,感興趣的可以了解一下2023-01-01