非常酷炫漂亮的3D立体照片展示墙 纯JAVASCRIPT显示
今天主要给大家分享下一个3d显示照片墙的纯JavaScript效果demo,效果很酷炫。可以通过鼠标上下左右拉动,从而把照片墙进行360°展示。
鼠标停止后,在操作过程中,会发现,照片会以某角度轴,继续滑动一段距离。核心JavaScript代码见如下,下方链接有百度网盘分享链接,大家有兴趣可以down下来玩玩。先上图:
<script type="text/javascript"> /*rotateX/rotateY/rotateZ可以帮助理解三维坐标,*/web前端中文站 /*则translateZ则可以帮你理解透视位置(translateZ的功能就是让元素在自己的眼前或近或远)*/ window.onload=function(){ var oUl=document.getElementById("ul1"); var aImg=document.getElementsByTagName("img"); var aLi=oUl.getElementsByTagName("li"); var deg=360/aLi.length; for(var i=0;i<aLi.length;i++){ //每张图片缩放的时间 aLi[i].style.transition='all 0.5s '+((aLi.length-1-i)*0.2)+'s'; aLi[i].style.WebkitTransform='rotateY('+deg*i+'deg) translateZ(450px)'; aLi[i].style.MozTransform='rotateY('+deg*i+'deg) translateZ(450px)'; } //禁止拖动照片 www.lisa33xiaoq.net document.onselectstart=function(){ return false; } for(var i=0;i<aImg.length;i++){ aImg[i].setAttribute("ondragstart", "return false") } var roY=0; var roX=-10; var xN=0; var yN=0; var timer=null; document.onmousedown=function(ev){ var ev=ev||event; var disX_=ev.clientX; var disY_=ev.clientY; document.onmousemove=function(ev){ var ev=ev||event; var disX=ev.clientX; var disY=ev.clientY; xN=disX-disX_; yN=disY-disY_; roY+=xN*0.1; roX-=yN*0.1; oUl.style.WebkitTransform='perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'; oUl.style.MozTransform='perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'; disX_=ev.clientX; disY_=ev.clientY; } //实现鼠标按着滑动后,松开鼠标,画面继续跟进 差值 进行滑动 document.onmouseup=function(){ document.onmousemove=null; timer=setInterval(function(){ xN=xN*0.99; yN=yN*0.99; if(Math.abs(xN)<=0.5 && Math.abs(yN)<=0.5){ //决定滑动的周期,如果乘以 1.0,则一直滑动下去不停止 clearInterval(timer); } roY+=xN*0.5; roX-=yN*0.5; oUl.style.WebkitTransform='perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'; //360 浏览器适用这个 //oUl.style.MozTransform='perspective(800px) rotateX('+roX+'deg) rotateY('+roY+'deg)'; },30) } } //取消鼠标右键 document.oncontextmenu=function(){ return false; } document.onkeydown=function(ev){ var ev=ev||event; if(ev.keyCode==123){ return false } } } </script>
原文链接:https://www.lisa33xiaoq.net/1190.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
java下划线转换为驼峰,首字母可以设置大写或者小写
/** * 下划线转换为驼峰 * * @param line 下划线字符串 * @param firstIsUpperCase 首字母是否转换为大写 * @return */ private static String underline2Camel(String line, boolean ... firstIsUpperCase) { String str = ""; if(StringUtils.isBlank(line)){ return str; } else { StringBuilder sb = new StringBuilder(); String [] strArr; // 不包含下划线,且第二个参数是空的 if(!line.contains("_") && firstIsUpperCase.length == 0){ sb.append(line.substring(0, 1).toLowerCase()).append(line.substring(1)); str = sb.toString(); } else if (!line.contai...
- 下一篇
为什么C++比C要麻烦?程序员这样回答,终于知道他为什么单身了
听过一个笑话,程序员们互相聊天,程序员A问到:为什么C++比C麻烦那么多?” 程序员B回答道:“有了对象能不麻烦么。” 同样衍生出来的还有一个小故事:情人节,有人看到C一个人喝酒,便问:你的好哥们C++、Java、Python他们呢? C说:都过情人节去了。 问:你为什么不过呢? C说:因为我没有对象。 计算机行业的人都知道C、C++、C#,但对很多想要入行的人来说可能就有点迷茫了,就好像不知道java和JavaScript的关系一样,面对这个多个C,如何选择成为了他们的一个小问题。 先简单的说一下三个语言 C语言是一种结构化编程语言。 它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。具有丰富的运算符和数据类型,便于实现各类复杂的数据结 构。而且还可以直接访问内存的物理地址,进行位(bit)一级的操作。 小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程 c语言的最大的特点就是效率高、可移植性强,...
相关文章
文章评论
共有0条评论来说两句吧...