js+css3实现旋转效果

我的前面一张文章实现了用css3制作旋转的效果,现在呢,我换另外一种方法来实现.就是使用js结合css3的方法来实现的.下面我就先上图给大家看看效果吧

下面呢我先放上我的css代码,代码很简单:

.one{
width:200px;
height: 200px;
border:1px solid #adadad;
transition:all 0.1s;
border-radius:50%;
background:url(images/1.jpg) no-repeat center center;
background-size:cover;
margin:50px auto;
}

上面的代码大家都看得懂,我就不介绍了.我重点讲的是js的代码部分.

	window.onload=function(){
		var div=document.getElementsByClassName("one")[0];
		console.log(div);
		setCss3(div,{transform:"rotate(10deg)","transform-origin":"50% 50%"})
		var angel=0;
		setInterval(function(){
			angel+=8;
			setCss3(div,{transform:"rotate("+angel+"deg)","transform-origin":"0 0"})
		},30)
		function setCss3(obj,objAttr){
			//循环属性对象
			for(var i in objAttr){
				var newi=i;
				//判断是否存在transform-origin这样格式的属性
				if(newi.indexOf("-")>0){
					var num=newi.indexOf("-");
					newi=newi.replace(newi.substr(num,2),newi.substr(num+1,1).toUpperCase());
				}
				//考虑到css3的兼容性问题,所以这些属性都必须加前缀才行
				obj.style[newi]=objAttr[i];
				newi=newi.replace(newi.charAt(0),newi.charAt(0).toUpperCase());
				obj.style[newi]=objAttr[i];
				obj.style["webkit"+newi]=objAttr[i];
				obj.style["moz"+newi]=objAttr[i];
				obj.style["o"+newi]=objAttr[i];
				obj.style["ms"+newi]=objAttr[i];
			}
		}
	}

我在这就把相对的难点讲一下:

if(newi.indexOf("-")>0){
                    var num=newi.indexOf("-");
                    newi=newi.replace(newi.substr(num,2),newi.substr(num,2).toUpperCase());
                }
newi=newi.replace(newi.substr(num,2),newi.substr(num,2).toUpperCase());
这一句代码其实就是把首字母转成是大写的(
{transform:"rotate(10deg)","transform-origin":"0 0"))
因为在js中修改样式的时候,是不存在-webkit-transformz这样的格式的,两个单词之间的"-"是必须要省略掉的,换成第二个单词的字母为大写.所以主要就是把这个处理好了之后久ok了注意点:1.因为如果不添加css3的过渡属性的话,旋转的时候是会有种卡顿效果的,就是旋转的时候不顺畅,所以我这里添加了transition属性,让他转动起来的时候看起来顺畅的.    2.transform-origin的值如果为0 0的时候,是绕着原点旋转的,50% 50%的时候就是绕着中心点旋转的.不过默认的时候就是绕着中心点旋转的
时间: 2024-11-05 15:48:55

js+css3实现旋转效果的相关文章

js+css3实现一双转动的眼睛-------Day68

在最开始思考这个小应用的时候,我想当然的认为,这可以跟钟表一样,只要获取转动的角度就好了,当然实际上我也是如此实现的,但是中间还是有些地方是我所没有想到的,然后我就又学到了好多东西... 先来考虑下,如果想要实现一双可以跟随鼠标转动的眼睛,我们需要做到哪些? 1.用样式描绘一双眼睛,额,其实图片也可以: 2.获取鼠标所在位置: 3.根据鼠标所在位置,确定眼睛所在的div偏转的角度: 想起来确实很容易,只要实现以上三点我就可以得到想要的目的了,前两个在前面都有所涉及,而第三点则就成了本次的一大亮点

js+css3实现动态时钟-------Day66

昨天搬家一天,宽带到最后也没有安装上,颇为恼火,但是收拾了一天新租的房屋,倒有了颇多的想法,这里先来实现一个--动态时钟(已经上传到资源里了,图片整的有些粗糙了,汗...) 这里来记录下,这个看起来简单好实现的功能,我在实现的过程中碰到了哪些问题,因为这时还没查看网上的代码,只是根据自己现阶段的学习来做的,可能会有些麻烦,有些粗糙,但是终归是实现了这个效果,心里还是小开心了下. 先来张最终实现的效果图(静态图片); 首先准备素材,我从网上搜到了一个时钟的素材,谁让我的ps还菜的菜呢,然后我有了表

tiltShift.js - CSS3 滤镜实现移轴镜头效果

tiltShift.js 是一款很棒的 jQuery 插件,使用 CSS3 图片滤镜来实现照片的移轴镜头效果.使用非常简单,使用 data 属性配置参数.温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 效果演示      插件下载 HTML 示例: <img src="url" class="tiltshift" data-position="50" data-blur=&

JS+css3实现图片画廊效果总结

最近学习一个在线小项目,用JS+css3实现图片画廊的效果,具体效果可以点击以下链接查看: http://1.danielcv.sinaapp.com/ 案例中主要用到一些新的CSS3效果比如:1.3D视图位置设置和子元素3D支持 -webkit-perspective:800px;/*若设置为0px则不支持3D透视功能*/ -webkit-transform-style:preserve-3d; 2.翻转为不可见时隐藏 -webkit-backface-visibility:hidden; 3

[应用][js+css3]3D盒子导航[PC端]

CSS3构建的3D盒子之导航应用 1.在用css3构建的盒子表面,放上iframe,来加载导航页面. 2.鼠标左键按下移动可旋转盒子,寻找想要的网址. 3.左键单机盒子表面,将全屏现实所点盒子表面的网站[iframe中],并可浏览,关闭后返回原来状态. 4.PC端,将额外显示2个css3做的旋转盒子[没什么意义] 5.移动端只显示一个导航盒子[模拟器正常,真机无效,留待以后查看,兼容开发有待提高...] 注:原本打算排列导航盒子,这样的话导航也变得比较好玩 但是,如果使用iframe来显示网站预

[读码][js,css3]能感知鼠标方向的图片遮罩效果

效果图: 无意间看到过去流行的一个效果:[能感知鼠标方向的图片遮罩效果]近来不忙,就仔细的看了一看看到后来发现,网上有好多版本,谁是原著者似乎已经无法考证.读码就要读比较全面的,读像是原著的代码.代码随然不难,不过要能想到这个创意,并成功应用却很难! 另外,对于初学者,这也是不错的学习例子.含Jquery插件写法,css3等 英文教程:http://tympanus.net/TipsTricks/DirectionAwareHoverEffect/源码下载:http://tympanus.net

GJM :JS + CSS3 打造炫酷3D相册

中秋主题的3D旋转相册 如图,这是通过Javascript和css3来实现的.整个案例只有不到80行代码,我希望通过这个案例,让正处于迷茫期的js初学者感受到学习的乐趣.我会尽可能讲得详细,不需要你对css和js有多么高深的理解,你也可以跟着一步步做出来.如果你是为了讨女票开心,那么也完全可以把图片换成对方的照片,在某个特别的时刻给对方一个惊喜哦 ~ css3的强大使得网页的展示变得空前得丰富起来,再配合简单的js代码,就可以实现这个效果.好了,话不多说,让我们开始吧. 1. 页面模板 <!do

AnimatedModal.js – CSS3 全屏模态窗口

AnimatedModal.js 是一个用来创建一个全屏模态窗口的 jQuery 插件,基于 CSS3 过渡实现.您可以利用 Animate.css 中的转换或自行创建自己的过渡效果.支持 Firefox.Chrome.Safari.Opera 和 IE 10+ 浏览器. 在线演示      源码下载 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发中很

JS+CSS3实现时钟

使用js和css3实现的时钟效果,支持firefox,chrom等标准浏览器.下载 效果如图: javascript: <script type="text/javascript" src="jquery-1.8.2.min.js"></script><script type="text/javascript">$(function () {    function rotateHand() {