+ -
当前位置:首页 → 问答吧 → 发个旋转展示效果

发个旋转展示效果

时间:2010-05-06

来源:互联网


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> #show{position:relative;margin:20px auto;width:800px;border:1px solid #999999;} .item{position:absolute;height:40px;width:60px;background:#999999;border:1px solid #eeeeee;cursor:pointer;} </style> <script> var len; var showerObj; var listObj; var showerWidth=800; var showerHeight=400; var r; var cR=0; var ccR=0; var timer=0; window.onload=function(){ showerObj=document.getElementById("show"); listObj=showerObj.getElementsByTagName("div"); len=listObj.length; r=Math.PI/180*360/len; for(var i=0;i<len;i++){ var item=listObj[i]; item.style.top=showerHeight/2+Math.sin(r*i)*showerWidth/2-20+"px"; item.style.left=showerWidth/2+Math.cos(r*i)*showerWidth/2-30+"px"; item.rotate=(r*i+2*Math.PI)%(2*Math.PI); item.onclick=function(){ cR=Math.PI/2-this.rotate; timer || (timer=setInterval(rotate,10)); } } var rX=showerObj.offsetLeft+showerWidth/2; var ry=showerObj.offsetTop+showerHeight/2; var rotate=function(){ ccR=(ccR+2*Math.PI)%(2*Math.PI); if(cR-ccR<0) cR=cR+2*Math.PI; if(cR-ccR<Math.PI){ ccR=ccR+(cR-ccR)/19; }else{ ccR=ccR-(2*Math.PI+ccR-cR)/19; } if(Math.abs((cR+2*Math.PI)%(2*Math.PI)-(ccR+2*Math.PI)%(2*Math.PI))<Math.PI/720){ ccR=cR; clearInterval(timer); timer=0; } for(var i=0;i<len;i++){ var item=listObj[i]; var w,h; var sinR=Math.sin(r*i+ccR); var cosR=Math.cos(r*i+ccR); w=60+0.6*60*sinR; h=(40+0.6*40*sinR); item.style.cssText +=";width:"+w+"px;height:"+h+"px;top:"+parseInt(showerHeight/2+sinR*showerWidth/2/3-w/2)+"px;left:"+parseInt(showerWidth/2+cosR*showerWidth/2-h/2)+"px;z-index:"+parseInt(showerHeight/2+sinR*showerWidth/2/3-w/2)+";"; } } document.getElementById("l").onclick=function(){ cR=(cR+r+2*Math.PI)%(2*Math.PI); timer || (timer=setInterval(rotate,10)); } document.getElementById("r").onclick=function(){ cR=(cR-r+2*Math.PI)%(2*Math.PI); timer || (timer=setInterval(rotate,10)); } rotate(); } </script> </head> <body> <input id="l" type="button" value="left" > <input id="r" type="button" value="right" > <div id="show"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> <div class="item">7</div> <div class="item">8</div> <div class="item">9</div> <div class="item">0</div> <div class="item">a</div> <div class="item">b</div> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> </div> </body> </html>
 提示:您可以先修改部分代码再运行

作者: jiangliuhuo   发布时间: 2010-05-06

厉害,顶一个

作者: sevenu   发布时间: 2010-05-06

很好的玩意,提个小建议:
1、点击如果按住可以一直转;
2、鼠标划向旁边的图片可以自动转到中间的焦点位置。

作者: KOEN301   发布时间: 2010-05-06

很有意思。收藏一个

可以考虑再做一些特效,例如点击正中的是否放大,再点一次缩小之类的

作者: luoluohouse   发布时间: 2010-05-06

又个实用新特效诞生了

作者: hotcrab2008   发布时间: 2010-05-06

大家的意见不错 有时间在发一个加强的版本

作者: jiangliuhuo   发布时间: 2010-05-06

算法:运动轨迹算法又可以学习一下,非常不错。
js :写成闭包的js,减少代码冗余。

作者: michaelzhouh   发布时间: 2010-05-07

实用 有效 可以放到站上做产品展示

作者: cielkong   发布时间: 2010-05-08

透视不对,近处的图片间隔比远处的还小些....不过做的还是很不错
收藏~

作者: sunritz   发布时间: 2010-05-08

嗯这个效果好像一般是用在图片展示的

作者: zhqy   发布时间: 2010-05-08

looks like this one: http://bbs.blueidea.com/viewthread.php?tid=2802468

作者: ariex   发布时间: 2010-05-08

GOOD,MARK IT

作者: i12fly   发布时间: 2010-05-08

强大

作者: TFshigepangzi   发布时间: 2010-05-10

喜欢上了,这效果之前在FS中见过,现在升级到JS了

作者: bmcsy   发布时间: 2010-05-10

不错不错

作者: kelanshe   发布时间: 2010-05-10

这个功能有帮助   

作者: 297227938   发布时间: 2010-05-24

厉害

作者: zhiye   发布时间: 2010-05-29

要是自动转的 放在网页上 就好看了

作者: taohao001   发布时间: 2010-05-31

收藏了,楼主辛苦了

作者: dmpy   发布时间: 2010-05-31

很有意思。收藏一个

作者: doudadou   发布时间: 2010-06-01

做得很不错,支持一下

作者: shbijiben   发布时间: 2010-06-01

很好的效果。以前一直以为这种效果最好用flash。。没想到楼主用JS写得这么好

作者: iaw2001200   发布时间: 2010-06-01

高手,顶一个

作者: KQQQQK   发布时间: 2010-06-07

很不错的效果呢~谢谢楼主了~

作者: rll8119421   发布时间: 2010-06-07

很强的效果  至少我现在还做不出来  研究一下

作者: AyumiHamasaki   发布时间: 2010-06-08

算法很强  数学不好还真做不出来

作者: AyumiHamasaki   发布时间: 2010-06-08

very good

作者: wuchj   发布时间: 2010-06-08

厉害厉害,我们这样的小鸟只剩下崇拜

作者: hntzh   发布时间: 2010-06-09

牛人,效果很流畅

作者: haiofly   发布时间: 2010-06-09