3d照片环效果(修改版--添加了x轴y轴双向转动和修复模糊度的bug)

 今天用用前两天总结的css3新效果写了一个3d照片环的效果,其中还有些bug大家可以看一看,一起改进。

 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>*{padding:0;margin:0;list-style:none;}body{background:#000;}#box{width:133px;height:200px;position:absolute;top:40%;left:50%;color:red;margin:-100px 0 0 -67px;transform-style:preserve-3d;transform:perspective(800px) rotateX(-20deg);}#box li{width:100%;height:100%;position:absolute;top:0;left:0;border-radius:10px;background:url('images/img2/1.jpg') no-repeat;transition:1s all ease;-webkit-box-shadow:0 0 5px #fff;-webkit-box-reflect:below 10px -webkit-linear-gradient(rgba(0,0,0,0) 40%,rgba(0,0,0,0.4));transform:rotateY(0deg) translateZ(0px);}</style><script>window.οnlοad=function(){var oUl=document.getElementById('box');var N=11;for(var i=0;i<N;i++){var oLi=document.createElement('li');oLi.style.backgroundImage='url(images/img2/'+(i+1)+'.jpg)';oUl.appendChild(oLi);(function(oLi,i){setTimeout(function(){oLi.style.transition='1s all ease '+(200*(N-i))+'ms';oLi.style.transform='rotateY('+(360/N*i)+'deg) translateZ(300px)';},0);})(oLi,i);}var aLi=oUl.children;var y=0;aLi[0].addEventListener('transitionend',function(){document.οnkeydοwn=function(ev){if(ev.keyCode==37){y-=360/N;keyChange();}else if(ev.keyCode==39){y+=360/N;keyChange();}};},false);aLi[0].addEventListener('transitionend',function(){document.οnmοusedοwn=function(ev){var disX=ev.clientX-y;document.οnmοusemοve=function(ev){y=ev.clientX-disX;for(var i=0;i<aLi.length;i++){keyChange();}};document.οnmοuseup=function(){document.οnmοusemοve=null;document.οnmοuseup=null;};return false;};},false);function keyChange(){for(var i=0;i<aLi.length;i++){aLi[i].style.transition='1s all ease';aLi[i].style.transform='rotateY('+(360/N*i+y)+'deg) translateZ(300px)';var scale=Math.abs((Math.abs(360/N*i+y)-180)/180);//aLi[i].innerHTML=scale;//console.log(scale);aLi[i].style.opacity=scale;}}};</script>
</head>
<body><ul id="box"></ul>
</body>
</html>

  

今天对着效果进行了修复:修复了模糊度旋转时的bug,添加了ul的转动,使转动在x轴和y轴上都可以进行

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>*{padding:0;margin:0;list-style:none;}body{background:#000;}#box{width:133px;height:200px;position:absolute;top:40%;left:50%;color:red;margin:-100px 0 0 -67px;transform-style:preserve-3d;transform:perspective(800px) rotateX(-20deg);}#box li{width:100%;height:100%;position:absolute;top:0;left:0;border-radius:10px;background:url('images/img2/1.jpg') no-repeat;transition:1s all ease;-webkit-box-shadow:0 0 5px #fff;-webkit-box-reflect:below 10px -webkit-linear-gradient(rgba(0,0,0,0) 40%,rgba(0,0,0,0.4));transform:rotateY(0deg) translateZ(0px);}</style><script>window.οnlοad=function(){var oUl=document.getElementById('box');var N=11;for(var i=0;i<N;i++){var oLi=document.createElement('li');oLi.style.backgroundImage='url(images/img2/'+(i+1)+'.jpg)';oUl.appendChild(oLi);(function(oLi,i){setTimeout(function(){oLi.style.transition='1s all ease '+(200*(N-i))+'ms';oLi.style.transform='rotateY('+(360/N*i)+'deg) translateZ(300px)';},0);})(oLi,i);}var aLi=oUl.children;var y=0;var x=-10;aLi[0].addEventListener('transitionend',function(){document.οnkeydοwn=function(ev){if(ev.keyCode==37){y-=360/N;change(y,x);}else if(ev.keyCode==39){y+=360/N;change(y,x);}};},false);aLi[0].addEventListener('transitionend',function(){change(y,-x);document.οnmοusedοwn=function(ev){var disX=ev.clientX-y;var disY=ev.clientY-x;document.οnmοusemοve=function(ev){y=ev.clientX-disX;x=ev.clientY-disY;change(y/3,x/3);};document.οnmοuseup=function(){document.οnmοusemοve=null;document.οnmοuseup=null;};return false;};},false);function change(y,x){for(var i=0;i<aLi.length;i++){aLi[i].style.transition='0s all ease';aLi[i].style.transform='rotateY('+(360/N*i+y)+'deg) translateZ(300px)';oUl.style.transform='perspective(800px) rotateX('+-x+'deg)';var scale=Math.abs(Math.abs((360/N*i+y)%360)-180)/180;//aLi[i].innerHTML=scale;//console.log(scale);scale<0.3&&(scale=0.3);aLi[i].style.opacity=scale;}}};</script>
</head>
<body><ul id="box"></ul>
</body>
</html>

  

转载于:https://www.cnblogs.com/jasonwang2y60/p/5975770.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

h5离线应用

h5离线应用 所谓离线应用&#xff0c;就是断网之后还可以运行的应用。h5提供了application cache&#xff0c;可以保存网页的离线数据。CSDN的Markdown编辑器就运用了application cache&#xff0c;在没有网络的情况下&#xff0c;一样可以正常使用&#xff0c;这就是一个很好…

[deviceone开发]-do_RichLabel的简单示例

一、简介 do_RichLabel支持html格式的文本内容&#xff0c;但是只支持部分标签&#xff0c;这个示例列出了一些支持的常用标签&#xff0c;android能支持的标签相对ios更少 二、效果图 三、相关下载 https://github.com/do-project/code4do/tree/master/richlabel_demo 四、相关…

使用rpm包升级ntpd服务_服务器准备升级,小程序将暂停使用

今天说3件事情&#xff1a;一、由于用户增速超出了我们的预期&#xff0c;为确保法助攻小程序的使用体验&#xff0c;我们购买了更高配置的服务器&#xff0c;目前&#xff0c;内部测试已完成&#xff0c;现决定对服务器进行正式升级。服务器升级时间&#xff1a;8月7日(本周五…

重装Nodejs后,webstorm代码报错问题

项描述现象之前没有问题的代码&#xff0c;突然出现很多奇怪的错误原因没有更新webstorm的Nodejs路径设置造成的解决办法重新设置webstorm的Nodejs路径&#xff0c;见下图 重新选择Nodejs安装目录&#xff0c;点击应用

java peek函数_基础篇:JAVA.Stream函数,优雅的数据流操作

写在开头&#xff1a;本文是转载于掘金上的一篇文章&#xff0c;已获得原作者授权&#xff0c;我会在文章最后放上原作者和原文链接。前言平时操作集合数据&#xff0c;我们一般都是for或者iterator去遍历&#xff0c;不是很好看。java提供了Stream的概念&#xff0c;它可以让我…

ESlint静态代码检测工具安装

安装eslint&#xff0c;根目录下执行&#xff1a; F:\my\temp> npm install eslint --save-dev 初始化eslint&#xff0c;会生成一个.eslintrc.js配置文件&#xff0c;执行&#xff1a; F:\my\temp> F:\my\temp\node_modules\.bin\eslint --init 运行&#xff0c;对某…

python随机划分数据集_Python之机器学习-sklearn生成随机数据

sklearn-生成随机数据import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontPropertiesfrom sklearn import datasets%matplotlib inlinefont FontProperties(fname/Library/Fonts/Heiti.ttc)多标签分类数据X1, y1 …

DocumentFragment使用

DocumentFragment相当于一份脱离document的文档&#xff0c;所以往其中添加元素&#xff0c;对其中元素做各种操作都不会影响到document文档&#xff0c;不会触发回流、重绘和重组等。使用它的好处在于&#xff0c;你可以合并多个dom操作&#xff0c;减少操作dom的次数。 var …

这几天都是在公司慢待

待会还要把伞缝好&#xff0c;对于现在是不是要重新买米和油今天晚上给出结果。 转载于:https://www.cnblogs.com/bkchengzheng/p/5979404.html

mongodb 数组添加_NoSQL之MongoDB——简介

MongoDB是一种开源文档型数据库&#xff0c;它具有高性能&#xff0c;高可用性&#xff0c;自动扩展性1.文档数据库MongoDB用一个文档来表示一条记录&#xff0c;文档的数据结构由键值对组成。MongoDB文档类似于JSON对象&#xff0c;字段值可能是文档&#xff0c;数组&#xff…

A-Frame WEB VR框架初体验

aFrame是一个Web VR框架&#xff0c;底层是基于threejs的&#xff0c;刚好项目也用到了threejs&#xff0c;就用aFrame试了下效果。在网页上看起来&#xff0c;aFrame就是把threejs的的实现包装成一个实体标签。 代码&#xff1a; <!DOCTYPE html> <html> <he…

Buying Feed, 2010 Nov (单调队列优化DP)

约翰开车回家&#xff0c;又准备顺路买点饲料了&#xff08;咦&#xff1f;为啥要说“又”字&#xff1f;&#xff09;回家的路程一共有 E 公里&#xff0c;这一路上会经过 K 家商店&#xff0c;第 i 家店里有 Fi 吨饲料&#xff0c;售价为每吨 Ci 元。约翰打算买 N 吨饲料&…

python django部署docker_centos利用docker部署django项目

1.Docker 要求 CentOS 系统的内核版本高于 3.10 &#xff0c;验证你的CentOS 版本是否支持 Dockeruname -r2.安装各种依赖包yum install -y yum-utils device-mapper-persistent-data lvm23.设置yum源yum-config-manager --add-repo https://download.docker.com/linux/centos/…

一次真实的XXS攻击

这是一个真实的事&#xff0c;一家比较大的公司举办的一个全国性的投票&#xff0c;然而&#xff0c;页面确实写得很烂&#xff0c;做假太容易。 首先&#xff0c;找到投票按钮的源代码&#xff1a; 这个”tp”类就是投票事件的定位关键字。 然后&#xff0c;打开source下的源…

【WPF学习笔记】[转]周银辉之WPF中的动画 晓风影天之wpf动画——new PropertyPath属性链...

&#xff08;一&#xff09;WPF中的动画 动画无疑是WPF中最吸引人的特色之一&#xff0c;其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互。这里我们讨论一下故事板。在WPF中我们采用Storyboard&#xff08;故事板&#xff09;的方式来编写动画&#xff0c;为了对Story…

python无法使用1号gpu_详解tensorflow2.x版本无法调用gpu的一种解决方法

最近学校给了一个服务器账号用来训练神经网络使用&#xff0c;服务器本身配置是十路titan V&#xff0c;然后在上面装了tensorflow2.2&#xff0c;对应的python版本是3.6.2&#xff0c;装好之后用tf.test.is_gpu_available()查看是否能调用gpu&#xff0c;结果返回结果是false&…

使用Chrome Dev Tools, deb.js调试Javascript小技巧

本文讲介绍一些基于 Chrome Dev Tools 的实用的客户端Javascript 调试小技巧。我将重点关注那些无从下手&#xff0c;不知道该在哪儿添加断点的情景。 首先看下本文主题&#xff1a; 找出哪段代码正在修改了页面找出谁发送了某个ajax请求在抛出异常时触发断点条件断点事件断点…

jenkins Auth fail验证失败

重新设置密码转载于:https://www.cnblogs.com/cocoat/p/5982931.html

CSS3 Perspective

一 、在元素的父元素上使用 在父元素上使用Perspective属性可以使用透视投影视图&#xff0c;在父元素上加上&#xff1a; perspective:400px 表示相机距离屏幕位置为400px。默认相机对准父元素的中心&#xff0c;要重设相机的焦点可以使用&#xff1a; perspective-origin…

在ASP.NET Core使用Middleware模拟Custom Error Page功能

一、使用场景 在传统的ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute特性,那么默认的,当这个Action抛出了异常时MVC将会显示Error视图,该视图位于~/Views/Shared目录下。 自定义错误页面的…