亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > HTML5 Canvas實現360度全景圖的示例代碼

HTML5 Canvas實現360度全景圖的示例代碼

熱門標簽:江蘇智能電銷機器人哪家好 電銷機器人電話用什么卡 四川點撥外呼系統 成都智能外呼系統平臺 當涂高德地圖標注 鎮江智能外呼系統有效果嗎 南寧點撥外呼系統哪家公司做的好 云南大理400電話申請官方 黃島區地圖標注

很多購物網站現在都支持360實物全景圖像,可以360度任意選擇查看樣品,這樣對購買者來說是一個很好的消費體驗,網上有很多這樣的插件都是基于jQuery實現的有收費的也有免費的,其實很好用的一個叫3deye.js的插件。該插件支持桌面與移動終端iOS與Android, 它的demo程序:http://www.voidcanvas.com/demo/28823deye/

自己玩了玩這個Demo以后,照著它的思路,用HTML5 Canvas也實現了類似的功能。

所以先說一下它的360度全景圖的原理

1. 首先需要對實物拍照,間隔是每張照片旋轉15度,所以需要23張照片。
2.照片準備好了以后,盡量選擇JPG格式,裁剪到適當大小。
3.JavaScript中預加載所有照片,可以配合進度條顯示加載精度
4.創建/獲取Canvas對象,加上鼠標監聽事件,當鼠標左右移動時候,適度的繪制不同幀。大致的原理就是這樣,簡單吧!

實現代碼:

<!DOCTYPE html>  
<html>  
<head>  
  <meta charset=utf-8">  
  <title>Full 360 degree View</title>  
  <script>  
        var ctx = null; // global variable 2d context  
        var frame = 1; // 23  
        var width = 0;  
        var height = 0;  
        var started = false;  
        var images = new Array();  
        var startedX = -1;  
      window.onload = function() {  
        var canvas = document.getElementById("fullview_canvas");  
        canvas.width = 440;// window.innerWidth;  
        canvas.height = 691;//window.innerHeight;  
        width = canvas.width;  
        height = canvas.height;  
        var bar = document.getElementById('loadProgressBar');  
        for(var i=1; i<24; i++)  
        {  
            bar.value = i;  
            if(i<10)  
            {  
                images[i] = new Image();  
                images[i].src = "0" + i + ".jpg";  
            }  
            else   
            {  
                images[i] = new Image();  
                images[i].src = i + ".jpg";  
            }  
        }  
        ctx = canvas.getContext("2d");  
          
        // mouse event  
        canvas.addEventListener("mousedown", doMouseDown, false);  
        canvas.addEventListener('mousemove', doMouseMove, false);  
        canvas.addEventListener('mouseup',   doMouseUp, false);  
        // loaded();  
          
        // frame = 1  
        frame = 1;  
        images[frame].onload = function() {  
            redraw();  
            bar.style.display = 'none';  
        }  
    }  
    function doMouseDown(event) {  
        var x = event.pageX;  
        var y = event.pageY;  
        var canvas = event.target;  
        var loc = getPointOnCanvas(canvas, x, y);  
        console.log("mouse down at point( x:" + loc.x + ", y:" + loc.y + ")");  
        startedX = loc.x;  
        started = true;  
    }  
      
    function doMouseMove(event) {  
        var x = event.pageX;  
        var y = event.pageY;  
        var canvas = event.target;  
        var loc = getPointOnCanvas(canvas, x, y);  
        if (started) {  
            var count = Math.floor(Math.abs((startedX - loc.x)/30));  
            var frameIndex = Math.floor((startedX - loc.x)/30);  
            while(count > 0)  
            {                 
                console.log("frameIndex = " + frameIndex);  
                count--;      
                if(frameIndex > 0)  
                {  
                    frameIndex--;  
                    frame++;  
                } else if(frameIndex < 0)  
                {  
                    frameIndex++;  
                    frame--;  
                }  
                else if(frameIndex == 0)  
                {  
                    break;  
                }  
                                  
                if(frame >= 24)  
                {  
                    frame = 1;  
                }  
                if(frame <= 0)  
                {  
                    frame = 23;  
                }  
                redraw();  
            }  
        }  
    }  
      
    function doMouseUp(event) {  
        console.log("mouse up now");  
        if (started) {  
            doMouseMove(event);  
            startedX = -1;  
            started = false;  
        }  
    }  
  
    function getPointOnCanvas(canvas, x, y) {  
        var bbox = canvas.getBoundingClientRect();  
        return { x: x - bbox.left * (canvas.width  / bbox.width),  
                y: y - bbox.top  * (canvas.height / bbox.height)  
                };  
    }  
      
    function loaded() {  
        setTimeout( update, 1000/8);  
    }  
    function redraw()  
    {  
        // var imageObj = document.createElement("img");  
        // var imageObj = new Image();  
        var imageObj = images[frame];  
        ctx.clearRect(0, 0, width, height)  
        ctx.drawImage(imageObj, 0, 0, width, height);  
    }  
    function update() {  
        redraw();  
        frame++;  
        if (frame >= 23) frame = 1;  
        setTimeout( update, 1000/8);  
    }  
  </script>  
</head>  
<body>  
<progress id="loadProgressBar" value="0" max="23"></progress>   
<canvas id="fullview_canvas"></canvas>  
<button onclick="loaded()">Auto Play</button>  
</body>  
</html>  

Demo演示文件下載地址-> fullview_jb51.rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:廣西 佳木斯 淮安 西寧 咸寧 十堰 酒泉 南京

巨人網絡通訊聲明:本文標題《HTML5 Canvas實現360度全景圖的示例代碼》,本文關鍵詞  HTML5,Canvas,實現,360度,全景,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 Canvas實現360度全景圖的示例代碼》相關的同類信息!
  • 本頁收集關于HTML5 Canvas實現360度全景圖的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 毛片的网站| 91麻豆国产福利精品| 九九精品久久| 日韩专区亚洲综合久久| 国产精品自拍在线观看| 韩国妈妈的朋友在线播放| 欧美18性精品| 精品国产亚洲人成在线| 日韩av片免费播放| 99色精品| 国产视频一区在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚洲天堂免费观看| 午夜激情视频在线观看| 久久久久久久免费视频| 四虎论坛| 国产麻豆精品| 精品国产一区二区三区久| 亚洲不卡一区二区三区在线| 99热热久久| 亚飞与亚基在线观看| 高清一级毛片一本到免费观看| 日本免费区| 精品视频在线看| 精品视频免费在线| 成人a大片高清在线观看| 国产一级生活片| 国产a免费观看| 成人免费网站视频ww| 国产网站免费视频| 成人免费观看的视频黄页| 日韩免费在线观看视频| 美女免费精品视频在线观看| 美女免费精品高清毛片在线视| 国产激情视频在线观看| 精品国产三级a| 国产一区二区精品久久91| 国产91丝袜在线播放0| 午夜激情视频在线观看| 国产网站在线| 国产福利免费视频| 国产视频久久久| 日本免费乱理伦片在线观看2018| 欧美一级视| 国产极品精频在线观看| 精品视频一区二区三区免费| 精品视频在线观看一区二区三区| 麻豆网站在线免费观看| 欧美激情一区二区三区视频| 欧美激情一区二区三区在线播放| 午夜在线亚洲| 午夜久久网| 一级毛片视频播放| 99色精品| 成人免费观看视频| 欧美日本免费| 午夜在线观看视频免费 成人| 国产亚洲男人的天堂在线观看| 成人在激情在线视频| 韩国毛片免费| 99久久网站| 午夜在线影院| 99热热久久| 四虎久久精品国产| 欧美大片一区| 日韩专区亚洲综合久久| 欧美一区二区三区性| 久久国产精品只做精品| 国产一区精品| 夜夜操网| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 99热精品在线| 99色视频在线| 久久精品成人一区二区三区| 免费国产在线观看| 国产视频久久久| 国产一区免费在线观看| 色综合久久手机在线| 国产亚洲男人的天堂在线观看| 成人免费观看网欧美片| 欧美电影免费看大全| 青青久久精品国产免费看| 国产一区二区福利久久| 日本在线不卡视频| 成人高清视频免费观看| 亚洲爆爽| 国产网站免费在线观看| 日韩一级精品视频在线观看| 亚欧成人毛片一区二区三区四区| 99久久精品国产国产毛片| 欧美日本国产| 中文字幕一区二区三区精彩视频 | 韩国妈妈的朋友在线播放| 色综合久久天天综线观看| 九九干| 91麻豆国产福利精品| 欧美日本免费| 亚飞与亚基在线观看| 尤物视频网站在线| 日韩免费在线视频| 国产亚洲精品aaa大片| 日本特黄特黄aaaaa大片| 久久精品免视看国产成人2021| 欧美爱色| 91麻豆精品国产自产在线| 久久成人亚洲| 黄色免费网站在线| 成人免费网站视频ww| 日韩在线观看视频黄| 欧美电影免费| 亚州视频一区二区| 国产极品精频在线观看| 一级女性全黄久久生活片| 日本在线www| 九九干| 成人高清视频免费观看| 国产亚洲精品aaa大片| 色综合久久天天综合| 久久99爰这里有精品国产| 久久99青青久久99久久| 成人免费观看视频| 精品国产亚洲一区二区三区| 一级女性全黄久久生活片| 九九久久99| 99色精品| 国产视频一区二区在线观看| 国产伦精品一区三区视频 | 日韩一级精品视频在线观看| 日本免费区| 青青青草影院| 日韩专区一区| 国产原创视频在线| 韩国毛片 免费| 国产成人啪精品视频免费软件| 成人高清视频免费观看| 国产精品自拍在线观看| 精品国产一区二区三区国产馆| 一级毛片视频播放| 久久精品店| 国产91精品系列在线观看| 亚欧乱色一区二区三区| 国产视频在线免费观看| 精品视频在线观看一区二区 | 99热精品在线| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 尤物视频网站在线观看| 色综合久久天天综线观看| 欧美爱爱动态| 日韩av片免费播放| 国产亚洲男人的天堂在线观看| 国产麻豆精品高清在线播放| 免费的黄视频| 美女免费精品视频在线观看| 99热精品在线| 九九国产| 国产网站在线| 九九久久99综合一区二区| 色综合久久天天综合绕观看| 欧美a级成人淫片免费看| 国产成人女人在线视频观看| a级黄色毛片免费播放视频| 亚洲不卡一区二区三区在线| 国产视频久久久| 99久久精品费精品国产一区二区| 九九精品久久| 国产麻豆精品hdvideoss| 精品视频免费看| 99热精品在线| 国产成人精品影视| 国产视频一区二区在线观看| 一本伊大人香蕉高清在线观看| 国产麻豆精品视频| 欧美激情一区二区三区视频高清| 精品国产香蕉在线播出| 精品视频一区二区三区| 亚洲第一视频在线播放| 国产一区二区精品久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚洲 欧美 成人日韩| 久久国产一久久高清| 精品视频免费在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产精品1024永久免费视频 | 91麻豆精品国产片在线观看| 99热精品在线| 日韩免费在线视频| 精品视频在线观看视频免费视频| 久久精品欧美一区二区| 一级毛片视频在线观看| 国产麻豆精品视频| 日韩女人做爰大片| 亚洲wwwwww| 久久精品店| 日本特黄特黄aaaaa大片| 99久久精品国产片| 国产国产人免费视频成69堂| 91麻豆精品国产自产在线观看一区 | 国产一区二区精品| 成人a大片在线观看|