纯JS实现旋转图片3D展示效果
CSS:
#show{position:relative;margin:20px auto;width:800px;}
.item{position:absolute;height:40px;width:60px;background:#999999;border:1px solid #eeeeee;cursor:pointer;}
Html:
input id="l" type="button" value="left" />
JS
var len;
var showerObj;
var listObj;
var showerWidth=800;
var showerHeight=400;
var r;
var cR=0;
var ccR=0;
var timer=0;
window.οnlοad=function(){
showerObj=document.getElementById("show");
listObj=showerObj.getElementsByTagName("div");
len=listObj.length;
r=Math.PI/180*360/len;
for(var i=0;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.οnclick=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
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))
ccR=cR;
clearInterval(timer);
timer=0;
}
for(var i=0;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").οnclick=function(){
cR=(cR+r+2*Math.PI)%(2*Math.PI);
timer || (timer=setInterval(rotate,10));
}
document.getElementById("r").οnclick=function(){
cR=(cR-r+2*Math.PI)%(2*Math.PI);
timer || (timer=setInterval(rotate,10));
}
rotate();
}
以上所述就是本文的全部内容了,希望大家能够喜欢。相关阅读:
MySQL删除数据库的两种方法
Linux中安装sosreport和supportconfig来收集系统信息
PHP面向对象程序设计之接口用法
CSS3 滤镜 webkit-filter详细介绍及使用方法
javascript实现详细时间提醒信息效果的方法
Win7开机自动跳出desktop.ini记事本怎么办?Desktop.ini删除方法
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
C#用递归算法解决经典背包问题
android 网络连接处理分析
在CentOS系统中安装SVN版本控制软件的教程
详解HTML中table表格的frame和rules属性
win10自带MSN天气可以设置到到区县地区天气吗?
Linux系统下tar命令的使用技巧总结
Win10 RS1预览版中Edge浏览器扩展官网曝光