DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> javascript實現下雪效果【實例代碼】
javascript實現下雪效果【實例代碼】
編輯:關於JavaScript     

原理 :

1、js動態創建DIV,指定CLASS類設置不同的背景圖樣式顯示不同的雪花效果。

2、js獲取創建的DIV並改變其top屬性值,當下落的高度大於屏幕高後刪除該移動div

3、好像不夠完善勿噴

HTML代碼:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>雪花飛舞</title>
  <link rel="stylesheet" href="css/index.css">
  <script src="js/move.js"></script>
</head>
<body>
  <div class="snow_parent" id="js_sonw">
    
  </div>
</body>
</html>

CSS代碼

*{
  margin:0;
  padding:0;
  list-style: none;
  border: none;
}
body{
  width: 100%;
  height:600px;
  background:#000;
}
.snow_parent{
  position: relative;
  width: 100%;
  height:100%;
  overflow: hidden;
  margin: 0 auto;
}
.snow_parent div.parent{
  background-image: url(../img/snow.png);
  float: left;
  -webkit-transform: scale(.1);
  -moz-transform: scale(.1);
  -o-transform: scale(.1);
  -ms-transform: scale(.1);
  transform: scale(.1);
  position: absolute;
}
.snow_one{
  width: 180px;
  height: 180px;
  background-position:0 0;
  background-repeat: no-repeat;
  left:-70px;
  top: -95px;
}
.snow_two{
  width: 140px;
  height: 140px;
  background-position:-220px -18px;
  left:-30px;
  top: -75px;
}
.snow_three{
  width:150px;
  height: 150px;
  background-position:-400px -15px;
  left:-20px;
  top: -80px;
}
.snow_four{
  width: 160px;
  height: 160px;
  background-position:-10px -206px;  
}
.snow_four{
  left:-10px;
  top: -85px;
}

JS代碼:

/*
  creatBy jiucheng 2016-4-24
*/ 
window.onload=function(){
  init();
}
// 創建DIV
function creatDiv(){
  // 創建DIV並追加到父元素
  var snowDiv=document.createElement("div");
  document.getElementById("js_sonw").appendChild(snowDiv);
  // 讓創建DIV的class為隨機,顯示不同的雪花
  var whatName=["snow_one parent","snow_two parent","snow_three parent","snow_four parent"];
  var index=Math.floor(Math.random()*whatName.length);
  snowDiv.className=whatName[index];
  // 獲取該DIV的left屬性值(隨機的)並賦值給創建的DIV
  var whatLeft=getLeft()+'px';
  snowDiv.style.left=whatLeft;
  return snowDiv;
}
// 獲取隨機left屬性值
function getLeft(){
  // 獲取該DIV的最大left屬性值即父元素的寬度
  var eleParent=document.getElementById("js_sonw");
  // 獲取父元素的所有style樣式
  var style=window.getComputedStyle(eleParent);
  // CSS中的left是負數這裡得減去下
  var maxWidth=parseInt(style.width)+70;
  // 讓創建的DIV的left為隨機值
  var randomLeft=Math.floor(Math.random()*maxWidth);
  return randomLeft;
}
// 讓其向下移動
function moveDown(){
  // 獲取移動對象
  var moveElem=creatDiv();
  // 獲取移動對象的所有style屬性值
  var eleStyle=window.getComputedStyle(moveElem);
  // 獲取它的top屬性值
  var eleTop=parseInt(eleStyle.top);
  // 設置定時器動態改變移動對象的top屬性值
  var t=setInterval(function(){
    eleTop++;
    // 把新的top值付給移動對象
    moveElem.style.top=eleTop+"px";
    // 當下落到屏幕的高度後停止定時器並把該移動對象從父元素刪除
    if(eleTop>=window.innerHeight){    
      clearInterval(t);
      document.getElementById("js_sonw").removeChild(moveElem);
    }    
  },10);//下落速度沒10毫秒下落1px
}
function init(){
  // 動態獲取並設置body的高度
  document.body.style.height=window.innerHeight+"px";
  // 每500毫秒創建一個移動對象並執行移動函數
  var t=setInterval(function(){
    moveDown();
  },100);
}

以上這篇javascript實現下雪效果【實例代碼】就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved