1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | <!DOCTYPE html> <html> <head> <meta charset= "utf-8" > <title>Full 360 degree View - HoverTree</title> <style> .hvtholder { margin: 0px auto; width: 789px; text-align: center; } a { color: blue; } </style> <script type= "text/javascript" src= "http://hovertree.com/ziyuan/jquery/jquery-1.11.3.min.js" ></script> <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; $( function () { var canvas = document.getElementById( "hov" + "ertree_canvas" ); canvas.width = 440; // window.innerWidth; canvas.height = 691; //window.innerHeight; width = canvas.width; height = canvas.height; var bar = document.getElementById( 'loadHove' + 'rTreeBar' ); for ( var i = 1; i < 24; i++) { bar.value = i; if (i < 10) { images[i] = new Image(); images[i].src = "10/hovertree0" + i + ".jpg" ; } else { images[i] = new Image(); images[i].src = "10/hovert" + "ree" + 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' ; } $( "#goHovertr" + "ee" ).on( "click" , function () { gohovertree();}) }) 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 gohovertree() { 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> <div class = "hvtholder" > <h3>360度旋转产品展示</h3><a href= "http://hovertree.com" >首页</a> <a href= "http://hovertree.com/texiao/" >特效</a> <a href= "http://hovertree.com/hvtart/bjae/49kk0ib8.htm" >原文</a> <a href= "http://hovertree.com/texiao/html5/10.htm" >效果</a> <br />点击下面按钮旋转<br /><button id= "goHovertree" >点击旋转</button> <br /> </div> <div style= "width:640px;margin:0 auto;" > <progress id= "loadHoverTreeBar" value= "0" max= "23" ></progress> <canvas id= "hovertree_canvas" >您的浏览器不支持HTML5,使用支持HTTML5的浏览器,何问起,hovertree.com</canvas> </div> </body> </html> |