jQuery實現的元素抖動外掛
本章節分享一個外掛,它實現了元素抖動效果。外掛的優點就是呼叫方便,並且可以隨意設定引數。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> #antzone{ width:200px; height:100px; background:#ccc; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> /*intShakes Amount of shakes*/ /*intDistance Shake distance*/ /*intDuration Time duration*/ jQuery.fn.shake = function(intShakes,intDistance,intDuration) { this.each(function() { var jqNode = $(this); jqNode.css({position: "relative"}); for (var x=1; x<=intShakes; x++) { jqNode.animate({ left: (intDistance * -1) },(intDuration / intShakes) / 4) .animate({ left: intDistance },(intDuration/intShakes)/2) .animate({ left: 0 },(intDuration/intShakes)/4); } }); return this; } $(function() { $('#antzone').click(function() { $(this).shake(4,10,400); }); }); </script> </head> <body> <div id="antzone"></div> </body> </html>
上面的程式碼實現了點選元素抖動效果,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).jQuery.fn.shake = function(intShakes,intDistance,intDuration) {},為jquery物件例項新增一個shake()方法,此方法實現匹配元素的抖動效果。第一個參數列示要完成完整抖動的次數,第二個參數列示抖動的幅度,第三個參數列示抖動持續的時間。
(2).this.each(function() {}),使用each()方法遍歷每一個匹配的元素。
(3).var jqNode = $(this),將當前的元素轉換為jquery物件。
(4).jqNode.css({position: "relative"}),將當前元素設定為相對定位。
(5).for (var x=1; x<=intShakes; x++) {
jqNode.animate({ left: (intDistance * -1) },(intDuration / intShakes) / 4)
.animate({ left: intDistance },(intDuration/intShakes)/2)
.animate({ left: 0 },(intDuration/intShakes)/4);
},這個迴圈是實現抖動的核心,是一個純粹的數學問題,這裡簡要做一下說明,每一次動畫時間都除以intShakes(抖動的次數),也就是說每一次完整的抖動都分配了一個固定時間,第一動畫用了每次迴圈的四分之一的時間,第二個動畫用了二分之一的時間,第三個動畫用了四分之一的時間,恰好是一個完整的抖動過程。
(6).return this,為了實現鏈式呼叫。
二.相關閱讀:
(1).each()可以參閱jQuery each()一章節。
(2).css()可以參閱jQuery css()一章節。
(3).animate()可以參閱jQuery animate()一章節。
相關文章
- Stickup – 輕鬆實現元素固定效果的 jQuery 外掛jQuery
- jQuery實現的cookie操作外掛jQueryCookie
- JQuery外掛定義&&談談jquery的實現jQuery
- jquery實現的垂直或者水平無縫滾動外掛jQuery
- 實現元素動畫的6款 JavaScript 外掛動畫JavaScript
- js實現的元素抖動效果程式碼例項JS
- jquery實現的元素居中外掛簡單介紹jQuery
- js實現的dom元素拖動封裝外掛程式碼例項JS封裝
- jquery外掛實現圖片可拖動的購物車程式碼jQuery
- 一看就會的jQuery外掛實現方法jQuery
- jquery實現的全選和刪除功能外掛jQuery
- jQuery LightBox外掛原理的簡單實現jQuery
- JavaScript元素抖動效果JavaScript
- jquery外掛——點選交換元素位置(帶動畫效果)jQuery動畫
- drag & resize元素的jQuery實現jQuery
- jquery的zclip外掛實現複製文字到剪下板jQuery
- 幫助你實現響應式導航的 jQuery 外掛jQuery
- jQuery外掛jQuery
- 手動實現HTML外掛BeautifyHTML
- jQuery實現DOM元素事件動態繫結jQuery事件
- jQuery的外掛列表jQuery
- 精美實用的jQuery外掛精選jQuery
- 【精心挑選】幫助你實現元素動畫的6款外掛動畫
- jquery 外掛站jQuery
- 13款精彩實用的最新jQuery外掛jQuery
- 15個超級實用的jQuery外掛jQuery
- jQuery抖動效果詳解jQuery
- jquery外掛 - EasyDrag 簡單拖動欄jQuery
- 11 個最佳 jQuery 滾動條外掛jQuery
- PHP外掛系統的實現(七):外掛案例PHP
- PHP外掛系統的實現(四):實現註冊動作PHP
- jQuery實現的多列元素高度相等jQuery
- JQuery模板外掛-jquery.tmpljQuery
- jquery實現的元素以動畫方式移動和漸變效果jQuery動畫
- 實用的 jQuery下拉選擇框外掛集合jQuery
- 8個超實用的jQuery外掛應用jQuery
- 27款很實用的 jQuery 表單外掛jQuery
- PHP外掛系統的實現(五):觸發外掛PHP