css3圆环旋转效果动画怎么做

html-css09

css3圆环旋转效果动画怎么做,第1张

1、首先新建一个html空白文档,取名字叫做css3动画,保存一下。

2、然后写html结构,只需要一个div元素即可,class名字叫做img

3、设置其边框为不同的颜色,边框宽度设置成100px。

4、因为是圆环,所以我们用到了css3的圆角效果,设置圆角为50%,也就是border-radius:50%,看一下效果。

5、接下来就是关键的步骤了,也就是添加动画效果。输入以下代码

6、来看一下最后的效果,还是不错的。

不知道这合不合你意,,不过你这个要求,,可以搜索一下一些JQUERY效果,, <html>

 <head>

  <title>图片环形滚动</title>

<style>

html,body{background:#990000margin:0px }

#pics_3d{

position:absolute

height:300px

width:100% 

background:#000 

top:120px

border-bottom:20px solid #420000 

border-top:20px solid #420000 

}

img{

position:absolute

background:#eee 

left:0top:0

border:5px solid #00CCFF

}

</style>

 </head>

 <body>

 <div id="pics_3d">

  <img src="/jscss/demoimg/wall5.jpg" />  

  <img src="/jscss/demoimg/wall6.jpg" />  

  <img src="/jscss/demoimg/wall7.jpg" />  

 </div>

 </body>

<script >

Item=function(UI){

this.angle=0

this.UI=UI

this.update()

}

Item.ini={

axle_w:400,

axle_h:10,

cen_x:500,

cen_y:260

}

Item.prototype.update=function(){

var J=this.UI.style,C=Item.ini,W=C.axle_w,H=C.axle_h,X=C.cen_x,Y=C.cen_y

var angle=this.angle/180*Math.PI

var left=Math.cos(angle)*W+X

var top=Math.sin(angle)*H+Y

var A=this.angle>270?this.angle-360:this.angle

var size=360-Math.abs(90-A)*3

this.UI.width=Math.max(size,120)

var opacity=Math.max(10,size-180)

J.filter='alpha(opacity='+opacity+')'

J.opacity=opacity/100

J.left=(left-this.UI.offsetWidth/2)+'px'

top=(top-this.UI.offsetHeight)+'px'

J.top=top

J.zIndex=parseInt(size*100)

}

Nav_3D={

items:[],

dir:1,

index:0,

hover:false,

add:function(item){

this.items.push(item)

item.index=this.items.length-1

item.UI.onclick=function (){

var J=item.angle,M=Nav_3D

if(M.uping)return

if(J==90){

return alert('goto new url..')

}

M.wheel_90(item)

M.index=item.index

}

item.UI.onmouseover=function (){

if(item.angle==90){

Nav_3D.hover=true

clearTimeout(Nav_3D.autoTimer)

}

}

item.UI.onmouseout=function (){

if(item.angle==90){

Nav_3D.hover=false

Nav_3D.auto()

}

}

return this

},

wheel_90:function(hot){

if(this.uping)return

this.uping=true

var This=this

this.timer=setInterval(function (){

clearTimeout(This.autoTimer)

var A=hot.angle

This.dir=A<270&&A>90?-1:1

if(A==90){

clearInterval(This.timer)

This.uping=false

This.onEnd(hot)

}

if(A>270)A-=360

var set=Math.ceil(Math.abs((90-A)*0.1))

for (var i=0i<This.items.lengthi++ ) {

var J=This.items[i]

J.angle+= (set*This.dir)

J.update()

if(J.angle>360)J.angle-=360

if(J.angle<0)J.angle +=360

}

},15)

},

ready:function(){

var J=this.items,step=parseInt(360/J.length)

for (var i=0i<J.lengthi++) {J[i].angle=i*step+90}

this.wheel_90(this.items[0])

Nav_3D.prevHot=this.items[0].UI

Nav_3D.setHot()

},

setHot:function(isHot){

if(!this.prevHot)return

with(this.prevHot.style){

borderColor=isHot!==false?'#CC0000':'#00CCFF'

cursor=isHot!==false?'default':"pointer"

}

return this

},

auto:function(){

this.index--

if(this.index<0)this.index=this.items.length-1

var J=this.items[this.index]

this.setHot(false).prevHot=J.UI

this.setHot()

this.wheel_90(J)

},

onEnd:function(hot){

if(this.hover){

return setTimeout(function(){Nav_3D.onEnd()},100)

}

this.autoTimer=setTimeout(function(){Nav_3D.auto()},1500)

}

}

var imgs=document.getElementById("pics_3d").getElementsByTagName("IMG")

for (var i=0i<imgs.lengthi++ ) {

Nav_3D.add(new Item(imgs[i]))

}

Nav_3D.ready()

</script>

</html>