大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以通过addClass()方法来代替此动作:
10年的包头网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整包头建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“包头网站设计”,“包头网站推广”以来,每个客户项目都认真落实执行。
比如想旋转一个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文件):
描述的太简单。按我理解的说。一般这种效果都会有开始和关闭功能。所以,你的登录页面最好写成ajax方式提交表单,在提交之前显示等待动画,提交成功返回后,关闭,然后跳转。
本文实例讲述了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程序设计有所帮助。
实现原理
创建克隆元素的目的是,当我们在滚动最后几项的时候,让人感觉在循环滚动。
标记
为了实现这样一个效果,我们需要给容器添加overflow:hidden这样的代码
div class="infiniteCarousel"
div class="wrapper"
ul
li.../li
li.../li
li.../li
/ul
/div
/div
jQuery
这是一个比较高端的特效,所以我们要计划如何去实现这样一个特效。
1.当没有javascript的时候写出html结构
2.算出第一个轮播项的长度和宽度
3.创建空列表项以填充整个列表页
4.在头部和底部创建克隆项
5.调整列表项以展示真实的第一项
6.创建goto特效,以实现向前向后轮播操作
7.创建Next/Back按钮触发goto特效
初始化
首先我们需要写出插件的框架:
(function ($) {
$.fn.myPlugin = function () {
return this.each(function () {
// plugin code
};
};
})(jQuery);
这一步主要是初始化插件和特效需要的一些变量。这些需求包括:
1.用jQuery实现overflow
2.隐藏容器外的元素
3.jQuery实现列表项的布置
4.计算出第一项的长度
5.计算出容器中我们可以放置的可见项
6.当前页(默认值为1)和总页数
var $wrapper = $(' div', this).css('overflow', 'hidden'),
$slider = $wrapper.find(' ul'),
$items = $slider.find(' li'),
$single = $items.filter(':first'),
// outerWidth: width + padding (doesn't include margin)
singleWidth = $single.outerWidth(),
// note: doesn't include padding or border
visible = Math.ceil($wrapper.innerWidth() / singleWidth),
currentPage = 1,
pages = Math.ceil($items.length / visible);
这里我们又用到了一个repeat函数,因为它是一个工具函数,所以放在了外面。
function repeat(str, n) {
return new Array( n + 1 ).join( str );
}
if (($items.length % visible) != 0) {
$slider.append(repeat('li /', visible - ($items.length % visible)));
$items = $slider.find(' li');
}
这里我们重新初始化$items 的值,为了保证包含了所有的项,包括新添加的空元素。
创建克隆对象
$items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
$items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
$items = $slider.find(' li'); // reselect
这里我们用到了slice方法,注意到前面加了一个负号
$items.slice(-visible)
这意味着我们取到了最后能展示一页的几项,并把它们克隆到容器的头部,克隆到底部的元素也是同样的操作。
初始化scrollleft值
添加了克隆项和空项以后我们需要初始化$wrapper的scrollleft值,这样才不至于初始化显示最后几项。
$wrapper.scrollLeft(singleWidth * visible);
GO TO方法
这里我们只用到Animate方法和scrollLeft 方法,这样就能实现平滑滚动。
我们需要实现以下几点:
1.我们需要滚动的方向
2.滚动的页数
3.scroll left 的相对值
动画创建完后,我们还需要
初始化完成以后,我们需要实现轮播的效果。
function gotoPage(page) {
var dir = page currentPage ? -1 : 1,
n = Math.abs(currentPage - page),
left = singleWidth * dir * visible * n;
$wrapper.filter(':not(:animated)').animate({
scrollLeft : '+=' + left
}, 500, function () {
if (page == 0) {
$wrapper.scrollLeft(singleWidth * visible * pages);
page = pages;
} else if (page pages) {
$wrapper.scrollLeft(singleWidth * visible);
page = 1;
}
currentPage = page;
});
return false;
}
导航按钮
$wrapper.after('a/aa/a');
$('a.back', this).click(function () {
return gotoPage(currentPage - 1);
});
$('a.forward', this).click(function () {
return gotoPage(currentPage + 1);
});
// this currently refers to the element the plugin was bound to
$(this).bind('goto', function (event, page) {
gotoPage(page);
});
【转载】
用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);
}
rotate是jQuery旋转rotate插件,支持Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Google Chrome,高级浏览器下使用Transform,低版本ie使用VML实现。
rotate(angle)angle参数:[Number] – 默认为 0
根据给定的角度旋转图片例如:
$(“#img”).rotate(45);或 $(‘#img’).rotate({angle:45})
rotate(parameters)parameters参数:[Object] 包含旋转参数的对象。
支持的属性:
1.angle属性:[Number] – default 0 – 旋转的角度数,并且立即执行
例如:1$(“#img”).rotate({angle:45});
2.bind属性:[Object] 对象,包含绑定到一个旋转对象的事件。事件内部的$(this)指向旋转对象-这样可以在内部链式调用- $(this).rotate(…)。
例如 (click on arrow):
$(“#img”).rotate({bind:{
click: function(){
$(this).rotate({
angle: 0,
animateTo:180
})
}
}
});
3.animateTo属性:[Number] – default 0 – 从当前角度值动画旋转到给定的角度值 (或给定的角度参数)
4.duration属性:[Number] – 指定使用animateTo的动画执行持续时间
例如 (click on arrow):
$(“#img”).rotate({bind:{
click: function(){
$(this).rotate({
duration:6000,
angle: 0,
animateTo:100
})
}
}
});
5. step属性:[Function] – 每个动画步骤中执行的回调函数,当前角度值作为该函数的第一个参数
6. easing属性:[Function] – 默认 (see below)
默认: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 ; }
示例1:没有效果,一直转
$("#scImg").rotate({
angle:0,
animateTo:360,
callback: rotation,
easing: function (x,t,b,c,d){
return (t/d)*c ;
}
});
示例2: 默认的效果
$("#scImg").rotate({
angle:0,
animateTo:360,
callback: rotation,
easing: function (x,t,b,c,d){
return -c*((t=t/d-1)*t*t*t-1)+b ;
}
});
示例3:
$(“#img”).rotate({bind:{
click: function(){
$(this).rotate({
angle: 0,
animateTo:180,
easing: $.easing.easeInOutElastic
})
}
}
});
7.callback属性:[Function] 动画完成时执行的回调函数
例如
$(“#img”).rotate({bind:{
click: function(){
$(this).rotate({
angle: 0,
animateTo:180,
callback: function(){ alert(1) }
})
}
}
});
8. getRotateAngle这个函数只是简单地返回旋转对象当前的角度。
例如:
$(“#img”).rotate({
angle: 45,
bind: {
click : function(){
alert($(this).getRotateAngle());
}
}
});
9.stopRotate这个函数只是简单地停止正在进行的旋转动画。例如:
$(“#img”).rotate({
bind: {
click: function(){
$(“#img”).rotate({
angle: 0,
animateTo: 180,
duration: 6000
});
setTimeout(function(){
$(“#img”).stopRotate();
}, 1000);
}
}
});