[英]Scrollable canvas inside div
我有一個html5畫布。 我需要在div( Div1
)中顯示它的固定部分。 當我在Div1
滑動時,我需要滾動畫布。 所以當我滾動時,我會看到畫布的相應部分。
我試過這樣的事情:
<div id="Div1" style=" float: left; width: 50px; overflow:hidden; ">
<canvas id="myCanvas1" width="200px" style="border: 1px solid #ff0000; position: absolute;">
</canvas>
</div>
它不起作用(在某些“設計”條件下從div內部滾動畫布),首先隱藏溢出。 嘗試滾動畫布內的內容 。
或者,試試這個: http : //jsfiddle.net/9g3GG/2/
<div id="Div1" style=" float: left; width: 150px; overflow:scroll; "> <canvas id="myCanvas1" width="200" style="border:1px solid #ff0000;">asdf asd as asfqwe asd asdfasdf asd as asfqwe asd asdfasdf asd as asfqwe asd asdf</canvas> </div>
這是一個使用超大畫布的演示,並通過調整CSS邊距滾動鼠標移動: https : //jsfiddle.net/ax7n8944/
HTML:
<div id="canvasdiv" style="width: 500px; height: 250px; overflow: hidden">
<canvas id="canvas" width="10000px" height="250px"></canvas>
</div>
JS:
var canvas = document.getElementById("canvas");
var context = canvas.getContext('2d');
var dragging = false;
var lastX;
var marginLeft = 0;
for (var i = 0; i < 1000; i++) {
context.beginPath();
context.arc(Math.random() * 10000, Math.random() * 250, 20.0, 0, 2 * Math.PI, false);
context.stroke();
}
canvas.addEventListener('mousedown', function(e) {
var evt = e || event;
dragging = true;
lastX = evt.clientX;
e.preventDefault();
}, false);
window.addEventListener('mousemove', function(e) {
var evt = e || event;
if (dragging) {
var delta = evt.clientX - lastX;
lastX = evt.clientX;
marginLeft += delta;
canvas.style.marginLeft = marginLeft + "px";
}
e.preventDefault();
}, false);
window.addEventListener('mouseup', function() {
dragging = false;
}, false);
最好在畫布內滾動,看看這個Phaser插件來做到這一點https://jdnichollsc.github.io/Phaser-Kinetic-Scrolling-Plugin/
希望它能幫到你
繪制了div的行。 將行大小設置為0:
DIVofCanvas {
line-height: 0px;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.