jQuery插件jRumble實(shí)現(xiàn)網(wǎng)頁(yè)元素抖動(dòng)
jRumble,它能讓網(wǎng)頁(yè)上的任意元素抖動(dòng)起來(lái),在你的網(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中還存在一些小問(wèn)題
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)頁(yè)抖動(dòng)的菜單抖動(dòng)效果
- jQuery+css3實(shí)現(xiàn)文字跟隨鼠標(biāo)的上下抖動(dòng)
- jQuery通過(guò)擴(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)致頁(yè)面抖動(dòng)的解決方法
- 基于jquery的仿百度的鼠標(biāo)移入圖片抖動(dòng)效果
- jQuery模擬窗口抖動(dòng)效果
相關(guān)文章
JQuery和html+css實(shí)現(xiàn)帶小圓點(diǎn)和左右按鈕的輪播圖實(shí)例
下面小編就為大家?guī)?lái)一篇JQuery和html+css實(shí)現(xiàn)帶小圓點(diǎn)和左右按鈕的輪播圖實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
基于jquery的滾動(dòng)條滾動(dòng)固定div(附演示下載)
今天與大家分享一下我寫(xiě)的一個(gè)滾動(dòng)條滾動(dòng)固定div的例子,現(xiàn)在很多地方都可以看到這樣的效果2012-10-10
JQuery手速測(cè)試小游戲?qū)崿F(xiàn)思路詳解
這篇文章主要介紹了JQuery手速測(cè)試小游戲?qū)崿F(xiàn)思路詳解,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
解析頁(yè)面加載與js函數(shù)的執(zhí)行 onload or ready
這篇文章主要介紹了頁(yè)面加載與js函數(shù)的執(zhí)行 onload or ready 需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12
jquery ztree實(shí)現(xiàn)右鍵收藏功能
最近做項(xiàng)目需要使用ztree做一個(gè)右鍵收藏功能,下面小編給大家分享實(shí)例代碼,需要的朋友參考下吧2017-11-11
Jquery操作Select 簡(jiǎn)單方便 一個(gè)js插件搞定
Jquery其實(shí)本身可以操作select表單,但是由于比較反鎖,沒(méi)有.net 控件那樣去操作方便,我在網(wǎng)上Google了一會(huì),發(fā)現(xiàn)了一個(gè)不錯(cuò)的專門(mén)操作select的插件,很好,使用過(guò)了,感覺(jué)蠻不錯(cuò)的。2009-11-11
用jQuery toggleClass 實(shí)現(xiàn)鼠標(biāo)移上變色
這篇文章主要介紹了用jQuery toggleClass 實(shí)現(xiàn)鼠標(biāo)移上變色,需要的朋友可以參考下2014-05-05

