[JavaScript案例]360度全景照片

案例: 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);
};
时间: 2024-10-25 02:18:05

[JavaScript案例]360度全景照片的相关文章

ROS 学习系列 -- Roomba, Xtion Pro live 实现360度全景照片panorama 无法启动的解决方案

turtlebot 有个实现iPhone360全景照相功能的应用 panorama.  官方使用Create底座和Kinnect,  在使用Roomba底座和Xtion Pro Live配套时发现,按照教程的方式启动不了. 1.  启动 roslaunch turtlebot_bringup minimal.launch \\加载轮子驱动 <pre>roslaunch turtlebot_panorama panorama.launch \\启动 panorama 打开另一个shell窗口 r

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

360度的全景图片效果常常可以用到给客户做产品展示,今天这里我们推荐一个非常不错的来自Robert Pataki的360全景幻灯实现教程,这里教程中将使用javascript来打造一个超酷的全景幻灯实现,相信大家一定会喜欢的! 在这个教程中没有使用到任何插件,我们将使用HTML,css和javascript来实现,当然,也使用是jQuery这个框架! 如何实现? 我们将使用预先按照360生成的图片进行轮播来实现动画展示效果.包含了180个图片.所以加载时间可能比较长. 代码实现 我们将在css代

html5人物图片360度立体旋转

体验效果:http://hovertree.com/texiao/html5/10.htm 下载:http://hovertree.com/hvtart/bjae/t16oddyt.htm 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Full 360 degree View - HoverTree</title> <sty

360度旋转图片小特效

现在,在这个网络发达的时代,一些电子商务公司,需要将自己线上的产品给买家或用户看,为了能让用户了解的更全面,那么把一个物件的产品要展示到方方面面,就要运用到360度旋转图片特效,因为上次有朋友叫我帮她弄这样一个效果,然后结合网上的资源,就小试牛刀了,觉得还挺好玩的,效果还是可以看的吧. 首先呢,需要在HTML文档中引入3deye.min.js文件和jq.js,这些可以在网上下载到免费的,另外,要展示到方方面面的,就要做这件物品的各个角度的图片,我这里是36张图片,每10度一张图片,好了,我就贴出

threesixty.min.js 和jquery.threesixty.js使用总结----实现360度展示

最近公司做一个项目需要360度展示汽车的外观,就用到了threesixty.min.js,自己总结一下使用方法: treesixty.min.js 源码: /*! threesixty-slider 2015-01-06 verison 2.0.5 */ /* http://github.com/vml-webdev/threesixty-slider.git */ !function (a) { "use strict"; a.ThreeSixty = function (b, c)

transition过度效果 + transform旋转360度

css样式: .animate{ width:65px; height:40px; background:#92B901; color:#ffffff; position:absolute; font-weight:bold; font:12px '微软雅黑', Verdana, Arial, Helvetica, sans-serif; padding:20px 10px 0px 10px; display:blcok; margin:5px; -webkit-transition:-webk

使用 ThreeSixty 创建可拖动的 360 度全景图片预览效果

ThreeSixty 是生成可拖动的360度预览图像序列的 jQuery 插件.只需要在你的 HTML 页面包引入最新的 jQuery 和 threesixty.js 文件就可以使用了,支持键盘上的箭头键,也支持触摸和移动设备.可以使用 nextFrame() 和 prevFrame() 绑定 UI 控件. 官方网站     在线演示     插件下载 示例 HTML: 1 <div class="threesixty" data-path="assets/img/sr

怎么样拍摄360度全景?

360全景不是凭空生成的,要制作一个360全景,我们需要有原始的图像素材,原始图像素材的来源可以是: A.在现实的场景中,使用相机的全景拍摄功能得到的鱼眼图像 B.通过建模渲染得到的虚拟图像 下文中的表格对比了在不同的设备.拍摄机位.拼合模式.拍摄难度下所能获得到的鱼眼图像 要拍摄全景素材我们需要用到一些专业设备,如下: 数码单反相机 360全景拍摄硬件配备-数码单反相机 首先让我们来认识一下什么是数码单反相机.说白了,数码单反相机就是使用了单反新技术的数码相机.作为专业级的数码相机,用其拍摄出

政府展示360全景应用,虚拟馆360度展示解决方案

政府需求分析: 1.数字城市.360全景城市风采展示 2.园区规划,招商引资,打造城市和产业园区的电子名片 3.大力发展在线城市管理体系:城市应急系统.城管.消防.安全等电子系统 4.大型经济和文化招商会.博览会.运动会宣传展示 5.非物质文化遗产宣传展示 6.名胜古迹宣传展示,打造低碳绿色旅游产业 360全景的特点: 1.水平垂直各360全景,一共360度视角,没有任何视线盲点,想看哪里就看哪儿; 2.全部是实景拍摄,真实立体; 3.高清晰度,采用专业自改制高像素相机; 4.互动性强,鼠标随意