案例: 360度全景照片 鼠标在页面上滑动时图片表现的物体会随着移动方向进行旋转,从而呈现360度物体旋转效果

思路: 将所有的图片都放入指定容器内,通过切换相应的照片隐藏与显示来实现旋转效果

代码:

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><meta id="viewport" name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"><title>Document</title><script type="text/javascript" src="360.js"></script></head><body><div class="container" id="page750"><img src="img/1.png"></div></body>
</html>

html,body{margin: 0;padding: 0;
}
.container{display: flex;
}
img{display: block;margin: auto;
}

window.onload = function(){var container = document.getElementById("page750");/*一次性将所有的图片标签加入*/var imgCount = 40;var lastStartX = 0;var iSpeed = 0;var timer;var _disX;for(var i = 2; i <= imgCount; i++){(function(i){var img = new Image();var imgNode = document.createElement("img");img.onload = function(){imgNode.src = this.src;imgNode.style.display = "none";container.appendChild(imgNode);};img.src = "img/"+i+".png";})(i);}var imgNodes = container.getElementsByTagName("img");var lastImgNode = container.getElementsByTagName("img")[0];var startX = 0;function mouseDownHandler(event){console.log("mouse down");clearInterval(timer);startX = event.clientX;document.addEventListener("mousemove", mouseMoveHandler);document.addEventListener("mouseup", mouseUpHandler);return false;}function mouseMoveHandler(event){console.log("mouse move");disX = event.clientX - startX;move();iSpeed = _disX - lastStartX;lastStartX = _disX;document.title = _disX;return false;}function mouseUpHandler(event){console.log("mouse up");document.removeEventListener("mousemove", mouseMoveHandler);document.removeEventListener("mouseup", mouseUpHandler);document.title = iSpeed;timer = setInterval(function(){if(iSpeed>0){iSpeed--;}else{iSpeed++;}if(iSpeed==0){clearInterval(timer);}disX += iSpeed;move();}, 20);}function move(){_disX = parseInt(disX/20);if(_disX>0){_disX = disX%imgCount;}else{_disX = disX - Math.floor(disX/imgCount)*imgCount;
        }if(lastImgNode != imgNodes[_disX]){lastImgNode.style.display = "none";imgNodes[_disX].style.display = "block";lastImgNode = imgNodes[_disX];}}document.addEventListener("mousedown", mouseDownHandler);
};

转载于:https://www.cnblogs.com/joyjoe/p/6538666.html

[JavaScript案例]360度全景照片相关推荐

  1. 怎样做360度全景照片

    怎样做360度全景照片举例 Panorama Maker4软件使用方法    怎样使用Panorama Maker4软件制作360度全景照片.按照软件的要求,制作所用的素材照片至少6张,但是要得到较  ...

  2. Unity显示360度全景照片

    Unity显示360度全景,其实就是把全景图片贴到一个球上,只不过,这个球是从里往外看. 先把摄像机移动到坐标(0,0,0). 添加一个球体,坐标也是(0,0,0) 把全景图片拖到球体上, 这个时候, ...

  3. Android 360度全景照片展示

    小弟初次写blog,文笔很普通,如有不当之处请多多谅解.话不多说,直接进入正题. 转载请标明出处:http://blog.csdn.net/x498980642/article/details/118 ...

  4. 360度全景照片拍照

    一.什么是360度全景? 全景又被称为3D实景,是指将拍摄的水平方向360度,垂直方向180度的多张照片拼接成一张全景图像.通过后期漫游制作,让浏览者能用鼠标控制浏览的方向,可左可右.可上可下观看物体 ...

  5. JavaScript实现360度全景图片展示效果

    全景拍摄:所谓"全景拍摄"就是将所有拍摄的多张图片拼成一张全景图片.它的基本拍摄原理是搜索两张图片的边缘部分,并将成像效果最为接近的区域加以重合,以完成图片的自动拼接.现在的智能手 ...

  6. 360度全景图片怎么拍摄?

    对于新手来说,拍摄360全景图片最重要的就是技术和器材,所以学习一些必要的360全景知识是非常重要的,那么360度全景图片怎么拍摄?今天就给大家介绍一下. 如何拍摄360度全景照片? 一:专业级拍摄制 ...

  7. android 手机 拍 全景 java_Android 4.2系统360度全景图拍摄试玩

    上周,谷歌开始销售第一批采用Android 4.2系统的Nexus4手机和Nexus7平板电脑.在全新代号为JellyBean的Android系统中,包括了一个全新的Photo Sphere的拍摄功能 ...

  8. 使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果

    在线演示  本地下载 360度的全景图片效果常常可以用到给客户做产品展示,今天这里我们推荐一个非常不错的来自Robert Pataki的360全景幻灯实现教程,这里教程中将使用javascript来打 ...

  9. java全景图片生成_[Java教程]使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果...

    [Java教程]使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果 0 2015-07-23 18:00:14 360度的全景图片效果常常可以用到给客户做产品展示,今天这里我们 ...

最新文章

  1. php两个按钮左右怎么做,css布局两个button在同父标签中左右两侧分布的方法
  2. .NET:动态代理的 “5 + 1” 模式
  3. Spring FactoryBean的开发1
  4. Error和Exception(异常)
  5. php 开发环境配置,开发环境配置
  6. iOS移动开发周报-第18期
  7. Linux下部署Java,Tomcat环境
  8. 测试u盘容量的软件哪家好,U盘容量检测工具
  9. linux dstat io,linux dstat工具
  10. 基于PHP+MySQL客户信息管理系统的设计与实现
  11. C语言编程>第二十三周 ② 请补充fun函数,该函数的功能是:交换数组a中最大和最小两个元素的位置,结果重新保存在原数组中,其它元素位置不变。注意数组a中没有相同元素。
  12. 有道单词导入 大量有道单词 生词本 批量导入 添加 有道单词XML 背单词
  13. wpsa4排版_WPS如何快速排版
  14. Java综合项目----开发团队分配管理软件
  15. 由 An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution 引起的思考
  16. jenkins配置qq邮箱
  17. Linux设备模型剖析系列一(基本概念、kobject、kset、kobj_type)
  18. pe系统下读不到服务器硬盘,WinPE系统里找不到硬盘怎么办 WinPE系统里找不到硬盘解决【详解】...
  19. VISIO 流程图和UML类共用后,UML类变形
  20. 序列线性卷积matlab,有限长序列的线性卷积和圆周卷积

热门文章

  1. 生日悖论是啥?我用它省了上百G的内存
  2. 严重性代码说明项目文件行禁止显示状态错误项目 Common 的 NuGet 包还原失败: 找不到“X.X.X”版本的程序包“XXXXXX”。
  3. k线图的几点外汇知识解析
  4. w8服务器dns修改,Win8 怎么修改dns地址 win8电脑修改dns服务器地址的方法
  5. XP下岗,忽悠方案不靠谱
  6. 内网渗透(十五)之内网信息收集-域环境中定位域管理员
  7. 如果有人读,每个人都可以是一本书 —— 我的2020年度总结
  8. ElasticSearch全文检索原理及过程
  9. 基于vue解决 100vw 和 100vh出现滚动条的问题
  10. Android 实现计时器功能