符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
本文实例讲述了jQuery旋转插件jqueryrotate用法。分享给大家供大家参考,具体如下:
根河网站建设公司创新互联公司,根河网站设计制作,有大型网站制作公司丰富经验。已为根河千余家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的根河做网站的公司定做!
CSS3
提供了多种变形效果,比如矩阵变形、位移、缩放、旋转和倾斜等等,让页面更加生动活泼有趣,不再一动不动。然后
IE10
以下版本的浏览器不支持
CSS3
变形,虽然
IE
有私有属性滤镜(filter),但不全面,而且效果和性能都不好。
今天介绍一款
jQuery
插件——jqueryrotate,它可以实现旋转效果。jqueryrotate
支持所有主流浏览器,包括
IE6。如果你想在低版本的
IE
中实现旋转效果,那么
jqueryrotate
是一个很好的选择。
兼容性
jqueryrotate
支持所有主流浏览器,包括
IE6。jqueryrotate
在高级浏览器中使用
CSS3
transform
属性实现,在低版本
IE
中使用
VML
实现。当然,你可以使用
IE
条件注释,低版本
IE
使用
jqueryrotate,高级浏览器则直接使用
CSS3。
使用方法
//演示1
//旋转45angle
$(document.body).click(function
()
{
//方式1
$('.divOne').rotate(45);
//方式2
$('.divOne').rotate({
angle:
45
});
});
//演示2
//鼠标移动效果
//方式1
$('.divOne').rotate({
bind:
{
mouseover:
function
()
{
$(this).rotate({
animateTo:
180
});
},
mouseout:
function
()
{
$(this).rotate({
animateTo:
});
}
}
});
//方式2
$('.divOne').mouseover(function
()
{
$(this).rotate({
animateTo:
180
});
}).mouseout(function
()
{
$(this).rotate({animateTo:0});
});
//演示3
不停旋转
//方式1
var
angle
=
0;
setInterval(function
()
{
angle
+=
3;
$('.divOne').rotate(angle);
},
50);
//方式2
var
rotation
=
function
()
{
$('.divOne').rotate({
angle:
0,
animateTo:
360,
callback:rotation
})
}
rotation();
//方式3
var
rotation
=
function
()
{
$('.divOne').rotate({
angle:
0,
animateTo:
360,
callback:
rotation,
easing:
function
(x,
t,
b,
c,
d)
{
return
c
*
(t
/
d)
+
b;
}
})
}
rotation();
//演示4
点击旋转
//方式1
$('.divOne').click(function
()
{
$(this).rotate({
angle:
0,
animateTo:
180,
easing:
$.easing.easeInOutExpo
});
});
var
val
=
0;
$('.divOne').click(function
()
{
val
+=
90;
$(this).rotate({
animateTo:
val
});
});
参数
参数
类型
说明
默认值
angle
数字
旋转一个角度
animateTo
数字
从当前的角度旋转到多少度
step
函数
每个动画步骤中执行的回调函数,当前角度值作为该函数的第一个参数
无
easing
函数
自定义旋转速度、旋转效果,需要使用
jQuery.easing.js
无
duration
整数
旋转持续时间,以毫秒为单位
callback
函数
旋转完成后的回调函数
无
getRotateAngle
函数
返回旋转对象当前的角度
无
stopRotate
函数
停止旋转
无
演示虽然使用的是图片,但
jqueryrotate
并不只是能运用在图片上,其他元素如
div
等也可以使用。同时,你可以发挥想象,制作出更多关于旋转的特效。
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery窗口操作技巧总结》、《jQuery拖拽特效与技巧总结》、《jQuery常用插件及用法总结》、《jquery中Ajax用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
titleJS 旋转函数,兼容各个浏览器/title
script id="jscode"
function hy_rotate(obj, rotate){
if(obj){
function rotate_set_style(obj, key, value){
obj.style[key] = value;
}
function rotate_float(n, b){
b = isNaN(parseInt(b)) ? -1 : parseInt(b);
return isNaN(parseFloat(n)) ? 0 : (b == 0) ? parseInt(parseFloat(n)) : (b 0) ? parseFloat(parseFloat(n).toString().replace((new RegExp('^(\\d+)\\.(\\d{'+b+'})\\d*$')), '$1.$2')) : parseFloat(n);
}
rotate = rotate % 360;
if(rotate 0){
rotate = 360 + rotate
}
rotate = rotate_float(rotate, 2);
var rpi = rotate * Math.PI / 180, c = Math.cos(rpi), s = Math.sin(rpi), oh = obj.offsetHeight, ow = obj.offsetWidth, pw = rotate_float((oh * Math.abs(s) + ow * Math.abs(c)), 2), ph = rotate_float((oh * Math.abs(c) + ow * Math.abs(s)), 2), tw = (rotate % 180 == 0) ? 0 : ((pw - ow) / 2), th = (rotate % 180 == 0) ? 0 : ((ph - oh) / 2), css3 = 'translate(' + tw + 'px, ' + th + 'px) rotate(' + rotate + 'deg)', css3key = '', dbstyle = document.body.style, css3keys = ['transform', '-moz-transform', '-webkit-transform', '-o-transform', '-ms-transform'];
for(var i in css3keys){
if(css3keys[i] in dbstyle){
css3key = css3keys[i];
}
}
if(css3key == ''){
rotate_set_style(obj, 'filter', 'progid:DXImageTransform.Microsoft.Matrix(M11=' + c + ', M12=' + (-s) + ', M21=' + s + ', M22=' + c + ', sizingMethod=\'auto expand\')');
}else{
obj.parentNode.style.width = pw + 'px';
obj.parentNode.style.height = ph + 'px';
rotate_set_style(obj, css3key, css3);
}
}
}
/script
style
.list{clear:both; padding:20px;}
.block{background:#FF99FF; padding:5px; float:left;}
.rotate{background:#FF0000; width:200px; padding:5px;}
.txt{background:#3366FF; padding:10px; color:#FFFFFF; font-size:12px; margin-bottom:10px;}
.code{border:#3333FF dotted 1px; padding:10px; background:#FFCCFF; clear:both;}
/style
/head
body
divJS 旋转函数,兼容各个浏览器/div
div class="list"
div class="block"
div
div class="rotate" id="rotate"
div class="txt"
我的角度是 span id="rotate_num"/span°
/div
img src="" /
/div
/div
/div
/div
script
function $id(id){
return document.getElementById(id);
}
var rrr = 0;
var sss = 0;
var iii = 0;
var aaa = $id('rotate');
var bbb = $id('rotate_num');
function zzz(){
rrr = rrr+1;
bbb.innerHTML = rrr;
hy_rotate(aaa, rrr);
}
aaa.onclick = function(){
if(sss == 0){
iii = setInterval(zzz, 20);;
sss = 1;
}else{
clearInterval(iii);
sss = 0;
}
}
/script
/body
/html
rotate这只是一个对jquery扩充的插件而已,你没有那个插件你写这个参数是无效的。你可以去下载rotate这个插件,要不你就用css3写如下:
$('#test').animate({ borderSpacing: -90 }, { step: function(now,fx) {
$(this).css('-webkit-transform','rotate('+now+'deg)');
$(this).css('-moz-transform','rotate('+now+'deg)');
$(this).css('-ms-transform','rotate('+now+'deg)');
$(this).css('-o-transform','rotate('+now+'deg)');
$(this).css('transform','rotate('+now+'deg)'); },
duration:'slow' },'linear');
js和jquery做不到的,首先这个是css3中的3d转换,用到transform:rotateX(50deg) ,只不过是旋转中心要在你画的线中间,设置transform-origin:50% 0; (这里是xy轴,可以理解为集合第四项现,所以旋转轴所在位置就是红色箭头位置的坐标,x和-y)
整理代码:
div{ width:500px; height:500px; background:#333; transform-origin:50% 0; transform:rotateX(50deg);
如有疑问欢迎咨询
可以通过addClass()方法来代替此动作:
比如想旋转一个icon:
在css中加入一个class
[css] view plain copy
.add_transform{
transform:rotate(180deg);
-ms-transform:rotate(180deg); /* IE 9 */
-moz-transform:rotate(180deg); /* Firefox */
-webkit-transform:rotate(180deg); /* Safari 和 Chrome */
-o-transform:rotate(180deg); /* Opera */
transition: all 0.5s ease-in-out;
-moz-transition: all 0.5s ease-in-out; /* Firefox 4 */
-webkit-transition: all 0.5s ease-in-out; /* Safari 和 Chrome */
-o-transition: all 0.5s ease-in-out; /* Opera */
}
然后通过$("选择器").toggleClass(".add_transform");来使icon的旋转变为动画效果。
或者下载补丁(加一个js文件):
用css吧,CSS就行的,例如:
顺时针旋转90度:
-moz-transform:rotate(90deg);
-webkit-transform:rotate(90deg);
-o-transform:rotate(90deg);
transform:rotate(90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
其它度数请自行修改下,可以用在LOGO之类的Hover效果,360度的话,参考下:
p
img{
-moz-transition:
all
0.8s
ease-in-out;
-webkit-transition:
all
0.8s
ease-in-out;
-o-transition:
all
0.8s
ease-in-out;
-ms-transition:
all
0.8s
ease-in-out;
transition:
all
0.8s
ease-in-out;
}
p
img:hover{
-moz-transform:
rotate(360deg);
-webkit-transform:
rotate(360deg);
-o-transform:
rotate(360deg);
-ms-transform:
rotate(360deg);
transform:
rotate(360deg);
}
/*绕Z轴的*/
img{
-webkit-transition:
0.4s;
-webkit-transition:
-webkit-transform
0.4s
ease-out;
transition:
transform
0.4s
ease-out;
-moz-transition:
-moz-transform
0.4s
ease-out;
}
img:hover{
transform:
rotateZ(360deg);
-webkit-transform:
rotateZ(360deg);
-moz-transform:
rotateZ(360deg);
}