您的位置:首页 > Web前端 > JQuery

jQuery旋转插件—rotate

2017-06-06 16:26 477 查看
网上发现一个很有意思的jQuery旋转插件,支持Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Google Chrome,高级浏览器下使用Transform,低版本ie使用VML实现。

调用和方法:

rotate(angle)

angle参数:[Number] – 默认为 0 – 根据给定的角度旋转图片

例如:

$("#img").rotate(45);


rotate(parameters)

parameters参数:[Object] 包含旋转参数的对象。支持的属性:

angle属性:[Number] – default 0 – 旋转的角度数,并且立即执行例如:

$("#img").rotate({angle:45});

bind属性:[Object] 对象,包含绑定到一个旋转对象的事件。事件内部的$(this)指向旋转对象-这样你可以在内部链式调用- $(this).rotate(…)。例如 (click on arrow):

$("#img").rotate({
bind: {
click: function () {
$(this).rotate({
angle: 0,
animateTo: 180
})
}
}
});


animateTo属性:[Number] – default 0 – 从当前角度值动画旋转到给定的角度值 (或给定的角度参数)例如: 结合上面的例子,请参阅使用。

duration属性:[Number] – 指定使用animateTo的动画执行持续时间例如 (click on arrow):

$("#img").rotate({
bind: {
click: function () {
$(this).rotate({
duration: 6000,
angle: 0,
animateTo: 100
})
}
}
});


step属性:[Function] – 每个动画步骤中执行的回调函数,当前角度值作为该函数的第一个参数

easing属性:[Function] – 默认 (see below) – Easing function used to make animation look more natural. It takes five parameters (x,t,b,c,d) to support easing from http://gsgd.co.uk/sandbox/jquery/easing/ (for more details please see documentation at their website).
Remember to include easing plugin before using it in jQueryRotate!Default function:

function (x, t, b, c, d) { return -c * ((t=t/d-1)*t*t*t - 1) + b; }


Where:t: current time,

b: begInnIng value,

c: change In value,

d: duration,

x: unused

No easing (linear easing):
function(x, t, b, c, d) { return (t/d)*c ; }


Example (click on arrow):
$("#img").rotate({bind: {
click: function () {
$(this).rotate({
angle: 0,
animateTo: 180,
easing: $.easing.easeInOutElastic
})
}
}
});


callback属性:[Function] 动画完成时执行的回调函数例如 (click on arrow):

$("#img").rotate({bind: {

click: function () {
$(this).rotate({
angle: 0,
animateTo: 180,
callback: function () {
alert(1)
}
})
}
}
});


getRotateAngle

这个函数只是简单地返回旋转对象当前的角度。

例如:

$("#img").rotate({
angle: 45,
bind: {
click: function () {
alert($(this).getRotateAngle());
}
}
});


stopRotate

这个函数只是简单地停止正在进行的旋转动画。

例如:

$("#img").rotate({
bind: {
click: function () {
$("#img").rotate({
angle: 0,
animateTo: 180,
duration: 6000
});
setTimeout(function () {
$("#img").stopRotate();
}, 1000);
}
}
});


实际用法:

比如:可以写一个加载数据的函数addData(),然后让图片旋转,在3秒后调用停止旋转和加载数据的方法,看似就像刷新了3秒然后加载数据

setTimeout(function(){$('#xxx').stopRatate(); addData();},"3000");

用这个可以实现很多关于旋转的网页特效,我用这个做了个抽奖大转盘,效果不错,就是没flash顺畅,基本能跑哈哈。

jqueryrotate项目地址:http://code.google.com/p/jqueryrotate/

代码示例:http://code.google.com/p/jqueryrotate/wiki/Examples


参数API

参数类型说明默认值
angle数字旋转一个角度0
animateTo数字从当前的角度旋转到多少度0
step函数每个动画步骤中执行的回调函数,当前角度值作为该函数的第一个参数
easing函数自定义旋转速度、旋转效果,需要使用 jQuery.easing.js
duration整数旋转持续时间,以毫秒为单位 
callback函数旋转完成后的回调函数
getRotateAngle函数返回旋转对象当前的角度
stopRotate函数停止旋转
演示虽然使用的是图片,但 jqueryrotate 并不只是能运用在图片上,其他元素如 div 等也可以使用。同时,你可以发挥想象,制作出更多关于旋转的特效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: