<!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旋转相册的实现的更多相关文章

  1. 3D旋转相册(适合新手)

    <!DOCTYPE HTML> <html onselectstart="return false"> <head> <meta char ...

  2. css3+jquery制作3d旋转相册

    首先来看一下今天的炫酷效果: 首先分析一下这张图片: 1.每张图片都有倒影 2.这11张图片呈圆形均匀排列 3.可旋转,上下移动(当然这是效果做出来以后,图片是分析不出来的) 那下面就开始吧. 一.准 ...

  3. css3制作3d旋转相册

    此处只是记录,解析可见原文:http://www.cnblogs.com/skyblue-li/p/6092799.html <!DOCTYPE html> <html xmlns= ...

  4. CSS3实现3D旋转相册

    静态效果图: 代码如下: <!doctype html><html lang="en"><head> <meta charset=&quo ...

  5. Flash相册-------3D旋转应用

    1.图层一,图片1,转换为元件 2.3D旋转工具,变形--->y->180

  6. 解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果

    解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果 一.前言 最初还是在抖音上看到可以使用简单地代码实现炫酷的网页效果的,但是想要找到可以运行的代码还是比较困难的,最近突然想起就在 ...

  7. 【CSS3进阶】酷炫的3D旋转透视

    之前学习 react+webpack ,偶然路过 webpack 官网 ,看到顶部的 LOGO ,就很感兴趣. 最近觉得自己 CSS3 过于薄弱,想着深入学习一番,遂以这个 LOGO 为切入口,好好研 ...

  8. 3D旋转菜单

    今天来个3D旋转菜单,是纯css3实现的,主要用到transform,transition,backface-visibility. 主要是transform这个变换,它是今天猪脚. transfor ...

  9. 低调奢华 CSS3 transform-style 3D旋转

    点击这里查看效果:http://keleyi.com/a/bjad/s89uo4t1.htm 效果图: CSS3 transform-style 属性 以下是代码: <!DOCTYPE html ...

随机推荐

  1. Hive初始

    一.Hive概念 二.为什么要是用Hive 三.Hive优缺点 四.hive架构 一.Hive概念 Hive最初是应Facebook每天产生的海量新兴社会网络数据进行管理和机器学习的需求而产生和发展的 ...

  2. [转载]二叉树(BST,AVT,RBT)

    二叉查找树(Binary Search Tree)是满足如下性质的二叉树:①若它的左子树非空,则左子树上所有结点的值均小于根结点的值:②若它的右子树非空,则右子树上所有结点的值均大于根结点的值:③左. ...

  3. jQuery中hover与mouseover和mouseout的区别分析

    本文实例分析了jQuery中hover与mouseover和mouseout的区别.分享给大家供大家参考,具体如下: 以前一直以为在jquery中其实mouseover和mouseout两个事件等于h ...

  4. JVM内存模型和垃圾回收

    Java开发有个很基础的问题,虽然我们平时接触的不多,但是了解它却成为Java开发的必备基础——这就是JVM.在C++中我们需要手动申请内存然后释放内存,否则就会出现对象已经不再使用内存却仍被占用的情 ...

  5. IOS仿微信朋友圈好友展示

    前几天小伙伴要帮他做一个群聊功能,里面有好友列表,要求和微信的差不多(见下图),让小伙伴自己实现了下,他将CollectionView放在tableView的tableHead中,可是当添加好友或删除 ...

  6. shell脚本生成服务器密码

    #!/bin/bash len=90 str=(a b c d e f g h i j k l m n o p q r s t u vw x y z A B C D E F G H I J K L M ...

  7. SQL Serever学习12——数据库的备份和还原

    公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...

  8. HTML5--(2)属性选择器+结构性伪类+伪类

    一.属性选择器 [att] 匹配所有具有att属性的 [att=val] 匹配所有att属性等于“val”的 [att~=val] 匹配所有att属性包含“val”或者等于“val”的(val必须是一 ...

  9. WPF 用户控件嵌入网页

    WPF使用用户控件嵌入网页,直接使用WebBrowser或Frame会产生报错,报错信息如下: 1.使用WebBrowser,<WebBrowser Source="http://19 ...

  10. java 基础 --- servlet

    问题 : servlet 这个类是有什么作用 概述 servlet 是个接口,这个接口的作用是规范了接收请求的处理类.而最终的实现交给了 servlet 容器去实现. servlet 接口 接口方法如 ...