js元素的震動效果程式碼例項

admin發表於2017-04-12

本章節分享一段程式碼例項,它實現了元素的震動效果。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE HTML>
<html>
<head>
<meta charset="gb2312" />
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#win {
  position: relative;
  width: 100px;
  height: 100px;
  background-color: #666;
}
</style>
<script type="text/javascript">
var a=['top','left'];
var b=0;
var u;
function fudu(){
  win.style[a[b%2]]=(b++)%4<2?"0px":"4px";
  if(b>15){
    clearInterval(u);
    b=0
  }
}
function zd(){
  clearInterval(u);
  u=setInterval(fudu,32)
}
window.onload=function(){
  var bt=document.getElementById("bt");
  var win=document.getElementById("win");
  bt.onclick=zd;
}
</script>
</head>
<body>
<input type="button" id="bt" value="檢視效果"/>
<div id="win"></div>
</body>
</html>

點選按鈕就可以實現div元素的上下左右的抖動效果, 下面介紹一下它的實現過程。

一.程式碼註釋:

(1).var a=['top','left'],建立一個陣列,用來儲存移動的方位。

(2).var b=0,宣告一個變數並賦值為0,後面會用到。

(3).var u,宣告一個變數u,後面會用到。

(4).function fudu(){},實現震動幅度。

(5). win.style[a[b%2]]=(b++)%4<2?"0px":"4px",通過三元運算子實現設定元素的top和left值的效果。

(6).if(b>15){

  clearInterval(u);

  b=0

},如果b大於15.那麼就停止定時器函式的執行,也就是停止震動,然後將b設定為0。

(7).function zd(){

  clearInterval(u);

  u=setInterval(fudu,32)

},onclick事件的事件處理函式。

首先會停止上一次震動,防止連續點選按鈕造成定時器函式疊加執行的現象。

二.相關閱讀:

(1).三元運算子可以參閱javascript 三元運算子一章節。

(2).clearInterval()可以參閱clearInterval()一章節。

(3).setInterval()可以參閱setInterval()一章節。

相關文章