JavaScript制作3D旋转相册


Posted in Javascript onAugust 02, 2020

本文实例为大家分享了js 3D旋转相册展示的具体代码,供大家参考,具体内容如下

源代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
 *{padding:0;margin:0; font-family: "Proxima Nova","proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif !important;}
 html body{overflow: hidden;}
 body{background:#ccc;}
 .box{width:140px; height:200px; -webkit-transform-style:preserve-3d; -webkit-transform: perspective(800px) rotateY(0deg) rotateX(0deg); position:relative; margin:400px auto;}
 .box span{width:140px; height:200px; position: absolute; background:deepskyblue; font-size:20px;
 text-align: center; line-height:200px; color:white;}
 </style>
 <script>
 function r2n(n){
 return n*Math.PI/180
 }
 window.onload=function(){
 var oBox=document.getElementsByClassName('box')[0];
 var aS=document.getElementsByTagName('span');
 for(var i=0;i<aS.length;i++){
 aS[i].style.WebkitTransition='1s all ease '+(aS.length-i)*.1+'s';
 aS[i].style.WebkitTransform='rotateY('+i*360/aS.length+'deg)'+' translateZ(500px) '
 }
 var pos=[];
 var x=0;
 var y=0;
 var timer=null;
 var timer2=null;
 document.onmousedown=function(ev){
 timer=setInterval(function(){
  pos[0]=pos[2];
  pos[1]=pos[3];
  pos[2]=x;
  pos[3]=y;
 },30);
 var disx=ev.pageX-x;
 var disy=ev.pageY-y;
 document.onmousemove=function(ev){
  x=ev.pageX-disx;
  y=ev.pageY-disy;
  oBox.style.WebkitTransform=' perspective(800px)'+' rotateY('+x/3+'deg)'+'rotateX('+-y/3+'deg)';
 };
 document.onmouseup=function(){
  clearInterval(timer);
  var speedx=pos[2]-pos[0];
  var speedy=pos[3]-pos[1];
  timer2=setInterval(function(){
  x+=speedx;
  y+=speedy;
  oBox.style.WebkitTransform=' perspective(800px)'+' rotateY('+x/3+'deg)'+'rotateX('+-y/3+'deg)';
  speedx*=0.94;
  speedy*=0.94;
  if(Math.abs(speedx)<1)speedx=0;
  if(Math.abs(speedy)<1)speedy=0;
  if(speedx==0&&speedy==0){
  clearInterval(timer2)
  }
  },30);
  document.onmousemove=null;
  document.onmouseup=null;
 }
 };
 return false
 }
 </script>
</head>
<body>
<div class="box">
 <span>1</span>
 <span>2</span>
 <span>3</span>
 <span>4</span>
 <span>5</span>
 <span>6</span>
 <span>7</span>
 <span>8</span>
 <span>9</span>
 <span>10</span>
 <span>11</span>
 <span>12</span>
</div>
</body>
</html>

效果图:

JavaScript制作3D旋转相册

可用鼠标拖动。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js调用flash的效果代码
Apr 26 Javascript
js 动态为textbox添加下拉框数据源的方法
Apr 24 Javascript
JavaScript设置获取和设置属性的方法
Mar 04 Javascript
详解Angular中$cacheFactory缓存的使用
Aug 19 Javascript
JavaScript中数组Array方法详解
Feb 27 Javascript
ionic2 tabs 图标自定义实例
Mar 08 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
May 09 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 jQuery
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
angular学习之动态创建表单的方法
Dec 07 Javascript
Vuex实现数据共享的方法
Dec 20 Javascript
基于JavaScript实现省市联动效果
Jun 22 Javascript
微信小程序工具函数封装
Oct 28 #Javascript
js实现3D照片墙效果
Oct 28 #Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 #Javascript
使用Vue调取接口,并渲染数据的示例代码
Oct 28 #Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 #Javascript
vue 解决数组赋值无法渲染在页面的问题
Oct 28 #Javascript
在vue中把含有html标签转为html渲染页面的实例
Oct 28 #Javascript
You might like
学习php笔记 字符串处理
2010/10/19 PHP
PHP分页函数代码(简单实用型)
2010/12/02 PHP
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
javascript打印输出json实例
2013/11/11 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
python 循环遍历字典元素的简单方法
2016/09/11 Python
python实现按任意键继续执行程序
2016/12/30 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python实现石头剪刀布程序
2021/01/20 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
pandas按条件筛选数据的实现
2021/02/20 Python
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
优秀学生干部个人事迹材料
2014/06/02 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
Python机器学习之PCA降维算法详解
2021/05/19 Python
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android