css と通常の html を使用して単純に見えることを行うには、余分なコードがたくさんあるようです。ただし、前述のように、読み込まれた各画像のコードを使用してキャンバスのサイズを変更する必要があります。jQueryを介してキャンバスを画像サイズに設定するのと同じことをしています。
ラッパー div の幅を設定するときは、スクロールバーの幅を考慮する必要があります。また、ブラウザに基づいてコードでこの幅を設定する必要があります。唯一の問題は、ブラウザのレンダリング エンジンによってスクロールバーの幅が異なることです。
それについて話しているリンクは次のとおりです。 http://www.sitepoint.com/rwd-scrollbars-is-chrome-better/
html と css だけを使用してスクロールを簡素化するコードを次に示します。
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" /> <!-- reset css -->
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<style>
body{ background-color: ivory; }
div, canvas {
position:absolute;
}
.wrapper {
top:10px;
left:10px;
width: 318px; /* adjusted hard-coded scrollbar width; you should set this with js */
height: 300px;
border: 2px solid black;
margin:30px 0 2;
overflow-y: scroll; /* scrolling vertical only */
overflow-x: hidden; /* hiding horizontal scrollbar */
background-color: green;
}
#mycanvas {
left:0px;
top:0px;
}
</style>
<script>
$(function(){
var canvas = document.getElementById("mycanvas");
var ctx = canvas.getContext("2d");
var wrapper;
var canvasHeight;
var img = new Image();
img.onload = function () {
canvas.width = this.width;
canvas.height = this.height;
ctx.drawImage(this, 260, 0, 300, this.height, 0, 0, 300, this.height);
}
img.src = "http://sciencedude.blog.ocregister.com/files/2008/02/zot1-copy.jpg";
}); // end $(function(){});
</script>
</head>
<div class="wrapper" id="canvaswrapper">
<canvas id="mycanvas" width="300px" height="300px" />
</div>
</body>
</html>