3D旋转相册的实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name = "JiangLiang" Date = "2017/11/23">
<title>回忆无痕</title>
</head>
<style>
*{
margin:0;
padding:0;
}
body{
background-color: #000;
overflow: hidden;
}
#show{
perspective:1000px;/* 景深 */
}
#warp{
position:relative;
width:230px;
height:330px;
margin:250px auto;
transform-style: preserve-3d;/* 3d效果 */
transform: rotateX(-15deg);/* 按照X轴旋转 */
}
#warp img{
position:absolute;
top:0px;
-webkit-box-reflect:below 5px -webkit-linear-gradient(top,rgba(0,0,0,0) 50%,rgba(0,0,0,0.8) 100%);
}
audio{
display:none;
}
</style>
<body>
<div id = "show">
<div id = "warp">
<img src="./images/jiangliang (1).jpg" alt="" width="100%" height="100%">
<img src="./images/jiangliang (2).jpg" alt="" width="100%" height="100%">
<img src="./images/jiangliang (3).jpg" alt="" width="100%" height="100%">
<img src="./images/jiangliang (4).jpg" alt="" width="100%" height="100%">
<img src="./images/jiangliang (5).jpg" alt="" width="100%" height="100%">
<img src="./images/jiangliang (6).jpg" alt="" width="100%" height="100%">
<img src="./images/jiangliang (7).jpg" alt="" width="100%" height="100%"> </div>
</div>
<audio src="./mp3/Westlife - Beautiful In White.mp3" controls="controls" autoplay = "auto" loop = "loop"></audio>
</body>
<script>
var oimg = document.getElementsByTagName("img");
var nowX , nowY , lastX , lastY , minusX , minusY , roX = -5 , roY = 0 ;
var oWarp = document.getElementById("warp");
var timer = null; (function(i){
var Ilenth = oimg.length;
var deg = 360/Ilenth;
for(;i < Ilenth; i++){
oimg[i].style.transform = "rotateY("+deg*i+"deg) translateZ(400px)";
}
})(0); document.onmousedown = function (e){/*鼠标按下时事件*/
var e = e || window.event ;/*event对象*/ lastX = e.clientX;
lastY = e.clientY; this.onmousemove = function(e){/*鼠标移动时事件*/
var e = e || window.event ;
nowX = e.clientX;
nowY = e.clientY; minusX = nowX - lastX;
minusY = nowY - lastY; roY += minusX *0.2;
roX += minusY *0.1; oWarp.style.transform = "rotateX("+roX+"deg) rotateY("+roY+"deg)"; lastX = nowX;
lastY = nowY; this.onmouseout = function(){/*鼠标离开时事件*/
this.onmousemove = null;
timer = setInterval(function(){
minusX *=0.9;
minusY *=0.9; roY += minusX *0.2;
roX += minusY *0.1; oWarp.style.transform = "rotateX("+roX+"deg) rotateY("+roY+"deg)"; if(Math.abs(minusX) < 0.1 || Math.abs(minusY) < 0.1){ clearInterval(timer);/*停止当时定时器*/
}
}, 1000/60); }
}
} </script>
</html>
预览图:
3D旋转相册的实现的更多相关文章
- 3D旋转相册(适合新手)
<!DOCTYPE HTML> <html onselectstart="return false"> <head> <meta char ...
- css3+jquery制作3d旋转相册
首先来看一下今天的炫酷效果: 首先分析一下这张图片: 1.每张图片都有倒影 2.这11张图片呈圆形均匀排列 3.可旋转,上下移动(当然这是效果做出来以后,图片是分析不出来的) 那下面就开始吧. 一.准 ...
- css3制作3d旋转相册
此处只是记录,解析可见原文:http://www.cnblogs.com/skyblue-li/p/6092799.html <!DOCTYPE html> <html xmlns= ...
- CSS3实现3D旋转相册
静态效果图: 代码如下: <!doctype html><html lang="en"><head> <meta charset=&quo ...
- Flash相册-------3D旋转应用
1.图层一,图片1,转换为元件 2.3D旋转工具,变形--->y->180
- 解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果
解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果 一.前言 最初还是在抖音上看到可以使用简单地代码实现炫酷的网页效果的,但是想要找到可以运行的代码还是比较困难的,最近突然想起就在 ...
- 【CSS3进阶】酷炫的3D旋转透视
之前学习 react+webpack ,偶然路过 webpack 官网 ,看到顶部的 LOGO ,就很感兴趣. 最近觉得自己 CSS3 过于薄弱,想着深入学习一番,遂以这个 LOGO 为切入口,好好研 ...
- 3D旋转菜单
今天来个3D旋转菜单,是纯css3实现的,主要用到transform,transition,backface-visibility. 主要是transform这个变换,它是今天猪脚. transfor ...
- 低调奢华 CSS3 transform-style 3D旋转
点击这里查看效果:http://keleyi.com/a/bjad/s89uo4t1.htm 效果图: CSS3 transform-style 属性 以下是代码: <!DOCTYPE html ...
随机推荐
- javac符号名字的管理
在符号表中,很重要的一项内容就是符号的名字.名字的管理,要解决的主要问题就是名字的变长问题.在javac中,所有的符号名字放到了一个公用字符池中,对于相同的名字只保存一个. 其中涉及到的主要类及关系如 ...
- JavaScript设计模式-11.桥梁模式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 深度学习(二)BP求解过程和梯度下降
一.原理 重点:明白偏导数含义,是该函数在该点的切线,就是变化率,一定要理解变化率. 1)什么是梯度 梯度本意是一个向量(矢量),当某一函数在某点处沿着该方向的方向导数取得该点处的最大值,即函数在该点 ...
- 剑指offer(1-10)编程题
二维数组中的查找 替换空格 从尾到头打印链表 重建二叉树 用两个栈实现队列 旋转数组的最小数字 斐波那契数列 跳台阶 变态跳台阶 矩形覆盖 1 .在一个二维数组中,每一行都按照从左到右递增的顺序排序, ...
- [转载]VS2010怎样打开VS2013或者VS2015建立的工程
VS2010怎样打开VS2013或者VS2015建立的工程 作用:解决vs低版本无法直接打开高版本的工程文件问题. 一.转载出处 http://blog.csdn.net/qq2399431200/a ...
- linux下perforce(p4)的使用方法和命令
环境变量: export P4PASSWD=abcdefg export P4CLIENT=dyoldfish.com export P4USER=dyoldfish export P4PORT=19 ...
- e.pageX、e.clientX、e.screenX、e.offsetX的区别以及元素的一些CSS属性
e.pageX,e.pageY:返回的值是相对于文档的定位,文档的左上角为(0,0),向右为正,向下为正,IE不支持: e.clientX,e.clientY:返回的值是相对于屏幕可见区域的坐标,如果 ...
- MySQL学习基础
MySQL是被Sun公司收购了,所以也有热咖啡图标,不过MySQL的作者后来又做了一个MariaDB,小海豚图标,也很好用. MySQL学习: <MySQL网络数据库设计与开发>(电子工业 ...
- 小白学习之Code First(一)
1.根据自己的理解,Code First :通过实体类和相关配置生成对应的数据库,实现实体和数据库的映射关系,或通过实体类和相关配置与已经生成的实体与已经存在的数据库搭建映射关系 例: 实体类:Stu ...
- 关于C#委托和Lambda表达式
关于C#委托和Lambda表达式 1.C#委托和Lambda表达式结合定义方法非常方便 在定一次性方法有很好的应用 delegate void getProductNoReturn(int a); d ...