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 相关文章推荐
基于jquery的15款幻灯片插件
Apr 10 Javascript
JQuery伸缩导航练习示例
Nov 13 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
jQuery使用hide方法隐藏元素自身用法实例
Mar 30 Javascript
js操作css属性实现div层展开关闭效果的方法
May 11 Javascript
AngularJS基础 ng-dblclick 指令用法
Aug 01 Javascript
JavaScript常用代码书写规范的超全面总结
Sep 11 Javascript
Angular.js中下拉框实现渲染html的方法
Jun 18 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
vue 虚拟dom的patch源码分析
Mar 01 Javascript
VUE 3D轮播图封装实现方法
Jul 03 Javascript
vue配置接口域名方法总结
May 12 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 session处理的定制
2009/03/16 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
深入理解Python中字典的键的使用
2015/08/19 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
python math模块的基本使用教程
2021/01/16 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
Linux如何为某个操作添加别名
2013/03/01 面试题
实习护理工作自我评价
2013/09/25 职场文书
技术总监个人的自我评价范文
2013/12/18 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
焦点访谈观后感
2015/06/11 职场文书
公司宣传语大全
2015/07/13 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
利用Python实现Picgo图床工具
2021/11/23 Python
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android