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 相关文章推荐
Javascript算符的优先级介绍
Mar 20 Javascript
jQuery的观察者模式详解
Dec 22 Javascript
JQuery包裹DOM节点的方法
Jun 11 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
Javascript中document.referrer隐藏来源的方法
Jan 16 Javascript
简单易懂的天气插件(代码分享)
Feb 04 Javascript
JS设置时间无效问题的解决办法
Feb 18 Javascript
Vue.directive()的用法和实例详解
Mar 04 Javascript
vue.js中toast用法及使用toast弹框的实例代码
Aug 27 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 Javascript
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
微信小程序工具函数封装
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中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
PHP实现适用于文件内容操作的分页类
2016/06/15 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
js实现打字小游戏
2019/12/17 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
python如何查看系统网络流量的信息
2016/09/12 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
python 实现单通道转3通道
2019/12/03 Python
python绘制玫瑰的实现代码
2020/03/02 Python
Python实现扫码工具的示例代码
2020/10/09 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
购买一个高级域名:BuyDomains
2018/03/11 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
英语自荐信常用语句
2013/12/13 职场文书
《月迹》教学反思
2014/02/19 职场文书
学徒工职责
2014/03/06 职场文书
争做文明公民倡议书
2014/08/29 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python