javascript實現的視窗抖動代碼實例

来源:http://www.cnblogs.com/nulifendou/archive/2016/01/03/5095854.html
-Advertisement-
Play Games

javascript實現的視窗抖動代碼實例:視窗抖動效果在很多地方都有應用,例如網易的登陸視窗就有這樣的效果,當登陸失敗的時候就會出現抖動效果,這不但有動感,而且讓人感覺新穎,下麵是一段這樣的代碼實例,和大家分享一下。代碼如下:視窗登陸效果-螞蟻部落 點擊振動 以上代碼中,當點擊按鈕的時候,...


javascript實現的視窗抖動代碼實例:
視窗抖動效果在很多地方都有應用,例如網易的登陸視窗就有這樣的效果,當登陸失敗的時候就會出現抖動效果,這不但有動感,而且讓人感覺新穎,下麵是一段這樣的代碼實例,和大家分享一下。
代碼如下:

 

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<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 > 
<button id="bt">點擊振動</button> 
<div id="win"></div> 
</body> 
</html>

 

以上代碼中,當點擊按鈕的時候,div會出現抖動效果,當然此效果比較簡單,這裡僅僅是演示之用,在實際應用中可以自行擴展,下麵簡單介紹一下實現過程。
一.實現原理:
代碼簡單,原理也是非常簡單。div是採用相對定位,當點擊按鈕的時候,就會通過定時器函數setInterval()不斷調用fudu()函數,此函數可以通過取模的方式來不斷的設置left或者top的屬性值,也就是不斷隨機的調整div的位置,這樣就實現了抖動效果,當b的值大於15的時候,停止抖動。
二.代碼註釋:
1.var a=['top','left'],聲明一個數組,裡面存儲有top和left字元串。
2.var b=0,聲明一個變數b並賦值為0。
3.var u,聲明一個變數,作為定時器函數setInterval()的返回值。
4.function fudu(){},聲明一個函數。
5.win.style[a[b%2]]=(b++)%4<2?"0px":"4px",此段代碼是核心部分,b%2取模運算的值為0或1,這樣就成為數組a的索引值用於獲取數組中的值。style[a[b%]這種形式和style.top這種形式的效果是一樣的。]]=(b++)%4<2?"0px":"4px",這樣通過取模判斷值是否小於2,來對div的top和left屬性賦值。
6.if(b>15) {clearInterval(u); b=0} ,如果b的值大於15,那麼就停止抖動,並將b的值重置為0。
7.function zd(){},聲明一個函數。
8.clearInterval(u),停止定時器函數的運行,這句代碼是為了防止連續點擊按鈕出現抖動可能不停止問題,因為兩個抖動互相影響。
9.u=setInterval(fudu,30),使用定時器函數不斷調用fudu函數。
10.window.onload=function(){},當文檔內容完全載入完畢再去執行函數中的代碼。
11.var bt=document.getElementById("bt"),獲取按鈕對象。
12.var win=document.getElementById("win"),獲取div對象。
13.bt.onclick=zd,為按鈕註冊事件處理函數。
三.相關閱讀:
1.setInterval()函數可以參閱setInterval()函數用法詳解一章節。
2.clearInterval()函數可以參閱window對象的clearInterval()方法一章節。
3.三運算符可以參閱三元運算符用法詳解一章節。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=8896

更多內容可以參閱:http://www.softwhy.com/javascript/

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡介+hello world程式
  • 1.首先設置body的高度為100%,overflow屬性設為hidden(溢出隱藏)2.body內div寬和高都設為100%,overflow屬性設為hidden ,z-index:-1(確保背景圖片在最下麵)3.設置div內的img寬高都為100%;html 代碼如下: ...
  • [1]變數特性 [2]變數命名 [3]變數聲明 [4]變數賦值 [5]標識符命名 [6]標識符解析
  • 旋轉文字的CSS代碼:文字旋轉效果如果使用CSS2很難實現,不過CSS3已經提供現成的屬性,下麵就是一段這樣的代碼實例和大家分享一下,希望能夠給大家帶來借鑒作用,代碼如下: 螞蟻部落 09 以上代碼實現了文字的旋轉效果,這裡就刴介紹了,可以參閱CSS的transform屬性一章節。...
  • jQuery阻止事件冒泡實例代碼:關於事件冒泡的定義這裡就不介紹了,具體可以參閱什麼是jquery事件冒泡一章節。下麵直接給出一段阻止事件冒泡的實例代碼,直接參考一下就可以了,代碼如下:事件冒泡-螞蟻i部落 點擊查看效果 以上代碼可以阻止事件冒泡效果,代碼非常的簡單,這裡就不多介紹了。相關閱讀:.....
  • js如何移除數組中指定索引的項:在Array對象中有給定的函數可以刪除數組中指定的元素,雖然非常好用,但是總感覺看不到摸不著的比較彆扭,下麵就分享一個自定義的刪除數組指定索引值元素的函數,希望給大家一個全新的思路。代碼實例如下:var array=[]; array[0]="螞蟻部落一"; arra...
  • z-index屬性在IE7和IE6的相容問題:採用定位的元素有可能就會用到z-index屬性,不過具有一定的瀏覽器相容問題,不用問基本屬於IE低版本瀏覽器的問題,因為它的前科實在太多了,雖然現在用低版本瀏覽器的用戶越來越少,相信不出幾年就會消失,但是畢竟現在還是存在的,下麵就介紹一下如何解決z-in...
  • jQuery添加和刪除元素class屬性實例代碼:元素的的class屬性一般是用來設置樣式之用,所以添加或者刪除都意味著改變元素的樣式,下麵就介紹一下如何使用jQuery來刪除和添加元素的class屬性值,希望能夠給大家帶來一定的幫助。代碼實例如下:function switchTeachContr...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...