jQuery插件jRumble實(shí)現(xiàn)網(wǎng)頁元素抖動(dòng)
jRumble,它能讓網(wǎng)頁上的任意元素抖動(dòng)起來,在你的網(wǎng)站中使用這個(gè)效果會(huì)有很大的機(jī)率吸引用戶的注意力。此插件的效果可以用在鏈接上,或者div上,你可以設(shè)置抖動(dòng)的范圍、XY坐標(biāo)、抖動(dòng)幅度等。可設(shè)置為當(dāng)鼠標(biāo)移動(dòng)上去抖動(dòng)或者默認(rèn)一直抖動(dòng),插件可定制性還是蠻高的。PS:此插件在IE中還存在一些小問題
jQuery jRumble是使用方法
<script type="text/javascript" src="js/jquery-jrumble.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#demo1').jrumble({ rangeX: 2, rangeY: 2, rangeRot: 1 }); $('#demo2').jrumble({ rangeX: 10, rangeY: 10, rangeRot: 4 }); $('#demo3').jrumble({ rangeX: 4, rangeY: 0, rangeRot: 0 }); $('#demo4').jrumble({ rangeX: 0, rangeY: 0, rangeRot: 5 }); $('#demo5').jrumble({ rumbleSpeed: 0 }); $('#demo6').jrumble({ rumbleSpeed: 50 }); $('#demo7').jrumble({ rumbleSpeed: 100 }); $('#demo8').jrumble({ rumbleSpeed: 200 }); $('#demo9').jrumble({ rumbleEvent: 'hover' }); $('#demo10').jrumble({ rumbleEvent: 'click' }); $('#demo11').jrumble({ rumbleEvent: 'mousedown' }); $('#demo12').jrumble({ rumbleEvent: 'constant' }); $('#demo13').jrumble({ posX: 'left', posY: 'top' }); $('#demo14').jrumble({ posX: 'right', posY: 'top' }); $('#demo15').jrumble({ posX: 'left', posY: 'bottom' }); $('#demo16').jrumble({ posX: 'right', posY: 'bottom' }); $('.view-source pre').hide(); $('.view-source a').toggle(function(){ $(this).siblings('pre').stop(false, true).slideDown(500); $(this).html('Hide Source'); }, function(){ $(this).siblings('pre').stop(false, true).slideUp(500); $(this).html('View Source'); }); }); </script>
jRumble的參數(shù)配置
Option Default Description
rangeX 2 Set the horizontal rumble range (pixels)
rangeY 2 Set the vertical rumble range (pixels)
rangeRot 1 Set the rotation range (degrees)
rumbleSpeed 10 Set the speed/frequency in milliseconds of the rumble (lower number = faster)
rumbleEvent ‘hover' Set the event that triggers the rumble (‘hover', ‘click',‘mousedown', ‘constant')
posX ‘left' If using jRumble on a fixed or absolute positioned element, choose ‘left' or ‘right' to match your CSS
posY ‘top' If using jRumble on a fixed or absolute positioned element, choose ‘top' or ‘bottom' to match your CSS
jquery-jrumble.js源碼
/* jRumble v1.1 - http://jackrugile.com/jrumble by Jack Rugile - http://jackrugile.com Copyright 2011, Jack Rugile MIT license - http://www.opensource.org/licenses/mit-license.php */ (function($){ $.fn.jrumble = function(options){ // JRUMBLE OPTIONS //--------------------------------- var defaults = { rangeX: 2, rangeY: 2, rangeRot: 1, rumbleSpeed: 10, rumbleEvent: 'hover', posX: 'left', posY: 'top' }; var opt = $.extend(defaults, options); return this.each(function(){ // VARIABLE DECLARATION //--------------------------------- $obj = $(this); var rumbleInterval; var rangeX = opt.rangeX; var rangeY = opt.rangeY; var rangeRot = opt.rangeRot; rangeX = rangeX*2; rangeY = rangeY*2; rangeRot = rangeRot*2; var rumbleSpeed = opt.rumbleSpeed; var objPosition = $obj.css('position'); var objXrel = opt.posX; var objYrel = opt.posY; var objXmove; var objYmove; var inlineChange; // SET POSITION RELATION IF CHANGED //--------------------------------- if(objXrel === 'left'){ objXmove = parseInt($obj.css('left'),10); } if(objXrel === 'right'){ objXmove = parseInt($obj.css('right'),10); } if(objYrel === 'top'){ objYmove = parseInt($obj.css('top'),10); } if(objYrel === 'bottom'){ objYmove = parseInt($obj.css('bottom'),10); } // RUMBLER FUNCTION //--------------------------------- function rumbler(elem) { var randBool = Math.random(); var randX = Math.floor(Math.random() * (rangeX+1)) -rangeX/2; var randY = Math.floor(Math.random() * (rangeY+1)) -rangeY/2; var randRot = Math.floor(Math.random() * (rangeRot+1)) -rangeRot/2; // IF INLINE, MAKE INLINE-BLOCK FOR ROTATION //--------------------------------- if(elem.css('display') === 'inline'){ inlineChange = true; elem.css('display', 'inline-block') } // ENSURE MOVEMENT //--------------------------------- if(randX === 0 && rangeX !== 0){ if(randBool < .5){ randX = 1; } else { randX = -1; } } if(randY === 0 && rangeY !== 0){ if(randBool < .5){ randY = 1; } else { randY = -1; } } // RUMBLE BASED ON POSITION //--------------------------------- if(objPosition === 'absolute'){ elem.css({'position':'absolute','-webkit-transform': 'rotate('+randRot+'deg)', '-moz-transform': 'rotate('+randRot+'deg)', '-o-transform': 'rotate('+randRot+'deg)', 'transform': 'rotate('+randRot+'deg)'}); elem.css(objXrel, objXmove+randX+'px'); elem.css(objYrel, objYmove+randY+'px'); } if(objPosition === 'fixed'){ elem.css({'position':'fixed','-webkit-transform': 'rotate('+randRot+'deg)', '-moz-transform': 'rotate('+randRot+'deg)', '-o-transform': 'rotate('+randRot+'deg)', 'transform': 'rotate('+randRot+'deg)'}); elem.css(objXrel, objXmove+randX+'px'); elem.css(objYrel, objYmove+randY+'px'); } if(objPosition === 'static' || objPosition === 'relative'){ elem.css({'position':'relative','-webkit-transform': 'rotate('+randRot+'deg)', '-moz-transform': 'rotate('+randRot+'deg)', '-o-transform': 'rotate('+randRot+'deg)', 'transform': 'rotate('+randRot+'deg)'}); elem.css(objXrel, randX+'px'); elem.css(objYrel, randY+'px'); } } // End rumbler function // EVENT TYPES (rumbleEvent) //--------------------------------- var resetRumblerCSS = {'position':objPosition,'-webkit-transform': 'rotate(0deg)', '-moz-transform': 'rotate(0deg)', '-o-transform': 'rotate(0deg)', 'transform': 'rotate(0deg)'}; if(opt.rumbleEvent === 'hover'){ $obj.hover( function() { var rumblee = $(this); rumbleInterval = setInterval(function() { rumbler(rumblee); }, rumbleSpeed); }, function() { var rumblee = $(this); clearInterval(rumbleInterval); rumblee.css(resetRumblerCSS); rumblee.css(objXrel, objXmove+'px'); rumblee.css(objYrel, objYmove+'px'); if(inlineChange === true){ rumblee.css('display','inline'); } } ); } if(opt.rumbleEvent === 'click'){ $obj.toggle(function(){ var rumblee = $(this); rumbleInterval = setInterval(function() { rumbler(rumblee); }, rumbleSpeed); }, function(){ var rumblee = $(this); clearInterval(rumbleInterval); rumblee.css(resetRumblerCSS); rumblee.css(objXrel, objXmove+'px'); rumblee.css(objYrel, objYmove+'px'); if(inlineChange === true){ rumblee.css('display','inline'); } }); } if(opt.rumbleEvent === 'mousedown'){ $obj.bind({ mousedown: function(){ var rumblee = $(this); rumbleInterval = setInterval(function() { rumbler(rumblee); }, rumbleSpeed); }, mouseup: function(){ var rumblee = $(this); clearInterval(rumbleInterval); rumblee.css(resetRumblerCSS); rumblee.css(objXrel, objXmove+'px'); rumblee.css(objYrel, objYmove+'px'); if(inlineChange === true){ rumblee.css('display','inline'); } }, mouseout: function(){ var rumblee = $(this); clearInterval(rumbleInterval); rumblee.css(resetRumblerCSS); rumblee.css(objXrel, objXmove+'px'); rumblee.css(objYrel, objYmove+'px'); if(inlineChange === true){ rumblee.css('display','inline'); } } }); } if(opt.rumbleEvent === 'constant'){ var rumblee = $(this); rumbleInterval = setInterval(function() { rumbler(rumblee); }, rumbleSpeed); } }); }; })(jQuery);
在線演示 http://jackrugile.com/jrumble/#demos
源碼下載 http://jackrugile.com/jrumble/jquery.jrumble.1.3.zip
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- jQuery實(shí)現(xiàn)動(dòng)態(tài)表單驗(yàn)證時(shí)文本框抖動(dòng)效果完整實(shí)例
- jQuery實(shí)現(xiàn)網(wǎng)頁抖動(dòng)的菜單抖動(dòng)效果
- jQuery+css3實(shí)現(xiàn)文字跟隨鼠標(biāo)的上下抖動(dòng)
- jQuery通過擴(kuò)展實(shí)現(xiàn)抖動(dòng)效果的方法
- jquery果凍抖動(dòng)效果實(shí)現(xiàn)方法
- Jquery右下角抖動(dòng)、浮動(dòng) 實(shí)例代碼(兼容ie6、FF)
- jquery.messager.js插件導(dǎo)致頁面抖動(dòng)的解決方法
- 基于jquery的仿百度的鼠標(biāo)移入圖片抖動(dòng)效果
- jQuery模擬窗口抖動(dòng)效果
相關(guān)文章
jquery之empty()與remove()區(qū)別說明
要用到移除指定元素的時(shí)候,發(fā)現(xiàn)empty()與remove([expr])都可以用來實(shí)現(xiàn)??勺屑?xì)觀察效果的話就可以發(fā)現(xiàn)。2010-09-09jquery ui dialog里調(diào)用datepicker的問題
一個(gè)項(xiàng)目中使用了在dialog中做查詢條件的表單,其中用到了日期作為查詢條件,使用datepicker時(shí)總被dialog遮擋住2009-08-08jQuery實(shí)現(xiàn)Select左右復(fù)制移動(dòng)內(nèi)容
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)Select左右復(fù)制移動(dòng)內(nèi)容的實(shí)現(xiàn)方法,代碼非常簡(jiǎn)單,具有參考借鑒價(jià)值,需要的朋友參考下2016-08-08jquery實(shí)現(xiàn)的樹形目錄實(shí)例
這篇文章主要介紹了jquery實(shí)現(xiàn)的樹形目錄,涉及jquery針對(duì)頁面元素及鼠標(biāo)事件的相關(guān)操作技巧,需要的朋友可以參考下2015-06-06jQuery實(shí)現(xiàn)公告新聞自動(dòng)滾屏效果實(shí)例代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)公告新聞自動(dòng)滾屏效果實(shí)例代碼的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07