js实现3D旋转相册

 更新时间:2020年08月02日 15:33:01   作者:Mr.王征  
这篇文章主要为大家详细介绍了js实现3D旋转相册,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

效果展示:

使用图片:

剩余自己随意 图片大小为133*200

代码展示:

<!DOCTYPE html>
<!--设置图片的拖拽事件 不可用-->
<html lang="en" ondragstart="return false">
<head>
 <meta charset="UTF-8">
 <title>3D效果</title>
 <style>
  * {
   background-color: #000;
 
  }
 
  .container {
   border: 1px solid yellow;
   perspective: 800px;
   overflow: hidden;
  }
 
  .box {
   position: relative;
   border: 1px solid #f00;
   width: 133px;
   height: 200px;
   margin: 300px auto;
   transform-style: preserve-3d;
   transform:rotateX(-20deg) rotateY(0deg);
  }
 
  img {
   position: absolute;
   /*设置图片倒影效果*/
   -webkit-box-reflect:below 5px -webkit-gradient(linear,left top, left bottom,from( transparent),color-stop(40%,transparent),to(rgba(250,250,250,0.4)));
  }
 
 </style>
</head>
<body>
<div class="container">
 <div class="box">
  <img src="img/1.jpg" alt="">
  <img src="img/2.jpg" alt="">
  <img src="img/3.jpg" alt="">
  <img src="img/4.jpg" alt="">
  <img src="img/5.jpg" alt="">
  <img src="img/6.jpg" alt="">
  <img src="img/7.jpg" alt="">
  <img src="img/8.jpg" alt="">
  <img src="img/9.jpg" alt="">
  <img src="img/10.jpg" alt="">
  <img src="img/11.jpg" alt="">
 </div>
</div>
 
<script>
 // a 获取所有 img 元素
  var mimg = document.querySelectorAll("img");
  var mlength = mimg.length;
 // 动态获取 图片的旋转角度
 var mdeg = 360/mlength;
 
 //获取box 容器
 var mbox = document.querySelector(".box");
 
 
 /*页面加载后执行。。效果*/
  window.onload= function () {
   // 1 图片旋转动画
   for(var i = 0;i<mlength;i++){
    // console.log(mimg);
    //每张图片 1 60 2 120 3 180 4 240  60为图片的平分角
    mimg[i].style.transform = "rotateY("+(mdeg*i)+"deg) translateZ(350px)";
   // 添加过渡效果  动画执行多长时间 多久后开始执行动画 此时的效果 从最后一张开始动画
   //  console.log(mlength-i);
    mimg[i].style.transition = "1s "+(mlength-i)*0.1+"s"; //  0.1 动画调节
    //从第一张开始动画
    // mimg[i].style.transition = "1s "+i+"s";
   }
 
 
  // 获取鼠标点的位置 获取 差值 改变 转换的rotate: x y
   var newX,newY,lastX,lastY,cvalueX,cvalueY, rotX=-20,rotY=0;
  // 鼠标滑动后改变效果 (使用鼠标 按下 替换点击事件)
   document.onmousedown = function (e) {
   // 鼠标点击
   //  console.log("点击");
    lastX = e.clientX;
    lastY = e.clientY;
   // 鼠标移动
    this.onmousemove = function (e) {
     // console.log("移动");
    newX = e.clientX;
    newY = e.clientY;
     console.log(newX +" "+newY);
 
     //获取移动的差值
     cvalueX = newX-lastX;
     cvalueY = newY-lastY;
 
     //获取旋转的角度
     rotX -= cvalueY; /*因为要向前运动所以是负值*/
     rotY += cvalueX;
 
    // 将角度添加上 img容器
     mbox.style.transform = "rotateX("+rotX*0.1+"deg) rotateY("+rotY*0.1+"deg)"
    // 差值太大(转动太快) 调节每次的差值是和上一次差 而不是之前差(初始值的差)
     lastX = newX;
     lastY = newY;
 
    }
   // 鼠标抬起
    this.onmouseup = function () {
     // console.log("抬起");
    // 要停止移动的方法
     this.onmousemove = null;
    }
 
   }
  }
 
</script>
</body>
</html>

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

相关文章

  • js字符串转json的三种简单方法举例

    js字符串转json的三种简单方法举例

    在很多时候我们都需要将数据转换为JSON的格式去进行请求,下面这篇文章主要给大家介绍了关于js字符串转json的三种简单方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Bootstrap下拉菜单Dropdowns的实现代码

    Bootstrap下拉菜单Dropdowns的实现代码

    这篇文章主要为大家详细介绍了Bootstrap下拉菜单Dropdowns的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • WPS的JS宏操作方法总结大全

    WPS的JS宏操作方法总结大全

    这篇文章主要给大家介绍了关于WPS的JS宏操作方法总结的相关资料,WPS是一款常用的办公软件,其中的JS宏功能可以帮助用户实现自动化操作和批量处理等需求,需要的朋友可以参考下
    2023-09-09
  • javascript replace()用法详解附实例代码

    javascript replace()用法详解附实例代码

    在javascript中,String的函数replace()简直太让人喜爱了。它灵活而强大的字符替换处理能力,让我不禁想向大家介绍它。
    2008-10-10
  • Openlayers学习之地图比例尺控件

    Openlayers学习之地图比例尺控件

    这篇文章主要为大家详细介绍了Openlayers学习之地图比例尺控件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • JavaScript 获取任一float型小数点后两位的小数

    JavaScript 获取任一float型小数点后两位的小数

    这篇文章主要介绍了JavaScript如何获取小数任一小数点后的位数的小数,需要的朋友可以参考下
    2014-06-06
  • 详解javascript数组去重问题

    详解javascript数组去重问题

    这篇文章主要介绍了详解javascript数组去重问题,根据面试时做的一道数组去重问题的解题思路整理的,分享给大家。
    2015-11-11
  • webpack css加载和图片加载的方法示例

    webpack css加载和图片加载的方法示例

    这篇文章主要介绍了webpack css加载和图片加载的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • JS操作JSON要领详细总结

    JS操作JSON要领详细总结

    JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包,下面与大家分享下JSON操作的相关知识
    2013-08-08
  • js css自定义分页效果

    js css自定义分页效果

    这篇文章主要为大家详细介绍了js css自定义分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论