JavaScript 視窗抖動效果
視窗抖動效果在很多地方都有應用,比如使用者登入。
當登陸失敗的時候就會出現抖動效果,這不但有動感,而且讓人感覺新穎。
下面就分享一段具有類似功能的程式碼。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!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()方法參閱JavaScript setInterval()一章節。
(2).clearInterval()方法參閱JavaScript clearInterval()一章節。
(3).三運算子參閱JavaScript 三元運算子一章節。
相關文章
- JavaScript元素抖動效果JavaScript
- 成品直播原始碼推薦,js點選讓視窗抖動動畫效果原始碼JS動畫
- Flutter抖動動畫、顫抖動畫、Flutter文字抖動效果Flutter動畫
- Android - 控制元件抖動效果Android控制元件
- Flink的滾動視窗、會話視窗、滑動視窗及其應用會話
- css3動畫效果抖動解決CSSS3動畫
- mysql視窗函式中的滑動視窗MySql函式
- Android 翻頁效果加蘋果桌面應用抖動效果Android蘋果
- JavaScript 簡單動畫效果JavaScript動畫
- 實現抖音 “影片無限滑動“效果
- Sentinel 原理-滑動視窗
- 滑動視窗專題
- 細聊滑動視窗
- JavaScript 限定範圍拖動效果JavaScript
- JavaScript簡單的動畫效果JavaScript動畫
- 滑動視窗演算法演算法
- JavaScript表格tr行左右拖動效果JavaScript
- JavaScript 元素距離視窗頂部的距離JavaScript
- 記錄---實現抖音 “影片無限滑動“效果
- CSS完成視差滾動效果CSS
- 滑動視窗問題總結
- 滑動視窗與雙指標指標
- SplashScreenManager 啟動介面和等待視窗
- 滑動視窗法——Leetcode例題LeetCode
- 滑動視窗演算法思路演算法
- TCP 流量控制-滑動視窗TCP
- WeetCode2滑動視窗系列
- Sentinel滑動視窗演算法演算法
- 滑動視窗的最大值
- 直播原始碼,懸浮窗滾動漸變色效果原始碼
- 11 個最好的 JavaScript 動態效果庫JavaScript
- JavaScript 動態進度條效果詳解JavaScript
- JavaScript自動更新時間效果詳解JavaScript
- JavaScript教程全套影片合集:DOM動畫效果JavaScript動畫
- 萬彩動畫大師教程 | 如何給字型新增抖動的動畫效果動畫
- JavaScript 點選頁面其他地方關閉視窗JavaScript
- 仿抖音 火山視訊滑動播放
- 視窗