<!DOCTYPE html>
<!--设置图片的拖拽事件 不可用-->
<html lang="en" ondragstart="return false"><head><meta charset="UTF-8"><title>3D效果</title><style>body {background-color: #000;}.container {/* perspective 属性定义 3D 元素距视图的距离,以像素计 */perspective: 800px;overflow: hidden;}.box {position: relative;width: 133px;height: 200px;margin: 300px auto;/*搭建3D效果必须的两个属性:一个变换风格变3d,一个场景景深800px*/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)));box-shadow: 0 0 8px #f9f;}p {width: 1200px;height: 1200px;background: -webkit-radial-gradient(center center, 600px 600px, rgba(244, 23, 234, 0.2), rgba(0, 0, 0, 0));border-radius: 100%;position: absolute;left: 50%;top: 102%;margin-left: -600px;margin-top: -600px;transform: rotateX(90deg);}</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=""><p></p></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 yvar 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 实现拖拽旋转相册相关推荐

  1. js实现拖拽+碰撞+重力

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  2. html5 原生拖拽,原生JS实现拖拽效果

    这篇文章主要为大家详细介绍了原生JS实现拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了JS实现拖拽效果的具体代码,供大家参考,具体内容如下 ...

  3. 李炎恢 js教程 拖拽上 思路解析

    李炎恢再讲js教程 拖拽上 讲到一个登录框,通过鼠标移动登录框到浏览器各个地方,我们现在对李炎恢的怎么想出进行分析: 问题期望是什么? 1.我们通过鼠标点击登录框,然后登录框被移动,松开鼠标,停止移动 ...

  4. js 鼠标拖拽改变div宽度高度

    js 鼠标拖拽改变div宽度高度, <!DOCTYPE html> <html><head><meta charset="UTF-8" / ...

  5. 原生js实现拖拽上传文件

    原生js实现拖拽上传文件 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...

  6. 原生JS实现拖拽进度条、滚动鼠标显示相应的内容

    今天要分享的是运用原生JS实现拖拽进度条.滚动鼠标显示相应的内容,实现效果如下: 以下是代码实现,欢迎大家复制粘贴. <!DOCTYPE html> <html><hea ...

  7. 原生JS实现拖拽垂直进度条

    先看效果图 代码如下 <!DOCTYPE html> <html><head><meta http-equiv="Content-Type" ...

  8. Unity3D实现 UI图片拖拽旋转和拖拽移动

    拖拽UI旋转 using UnityEngine; using System.Collections; using UnityEngine.EventSystems; public class Rot ...

  9. 原生JS实现拖拽翻书特效

    给大家分享一个用原生JS实现的拖拽翻书效果图,效果如下: 效果还不错吧,当然还需要两个图片. 1.书本封面. 2.书页 实现代码如下,欢迎大家复制粘贴. <!DOCTYPE html> & ...

最新文章

  1. Windows Phone版微信,在朋友圈发送仅文本内容
  2. Android GoogleMap 谷歌地图从零开始
  3. hashMap死循环
  4. GBDT和随机森林的区别
  5. c语言选择排序_C语言——选择排序
  6. 设置dns_网络速度缓慢怎么办?轻松一键修改DNS设置让网速提升五倍
  7. Apache httpd 配置HTTPS SSL访问 443
  8. 人工智能 | 元学习与图神经网络逻辑推导与理解
  9. 弹出页面,弹出框,$(‘‘).modal({});模态框
  10. 微信小程序微商城(二):电商首页轮播、分类导航和新品特卖实现
  11. Week 5 Linux 目录与文件
  12. 微信小程序cover-image手机上不显示问题
  13. 俄勒冈大学计算机科学专业,俄勒冈大学计算机与信息科学专业怎么样?高薪热门专业等你来...
  14. 自动化测试概述/自动化工具
  15. 聊一聊龙蜥硬件兼容性 SIG 那些事儿 | 龙蜥 SIG
  16. 利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏...
  17. 机器学习算法------3.3 案例:癌症分类预测-良/恶性乳腺癌肿瘤预测
  18. 【PAT甲级】A1101-A1155刷题记录
  19. 潘麟-打通周天不稀奇
  20. 台积电10nm工艺第四季度量产 追上英特尔

热门文章

  1. sql中特殊字符串的截取
  2. 达人评测 r5 5600g和R5 5700g核显性能差距大不大
  3. 计算机应用专业英语求职信,计算机专业英语求职信
  4. Java面试题十四(RabbitMQ模块)
  5. 一篇短文学习 MySQL(1)
  6. NVIDIA重新铺货GT 1030/GTX 1650来解市场燃眉之急
  7. FLUKE 9500B示波器校准软件 必坑
  8. 【面试】insta360面试-12-26
  9. 如何解决html页面文字无法被选中,进而复制粘贴复用
  10. PAT A 1002,最后一个格式错误