在HTML5画布中滚动(不移动图像)图像

Scroll(Not moving a image) image in HTML5 canvas

本文关键字:图像 移动 滚动 HTML5 布中      更新时间:2023-09-26

我是画布游戏开发的初学者,所以请原谅我一个愚蠢的问题。

我有一个宽度为 2048px 和高度为 1536px 的图像,我需要将其放置在画布中(宽度和高度因设备而异)。我能够滚动图像,但问题是图像从屏幕中出来(在所有边缘显示空白)。假设设备宽度为 430,高度为 300,那么用户可以滚动图像以查看。如果我滑动屏幕进行滚动,那么图像就会从画布中出来,就像拉橡胶一样,如果我停止滑动图像将放置在画布边框上。滚动图像未使用画布边框固定。我从几天开始就一直在尝试这个..请有人帮助我..

<html>
<head>
<style>
body {
    margin: 0px;
    padding: 0px;
}
#container {
    width: 100%;
    height: 100%;
    z-index:-1;
}
#inner {
    width: 1000px;
    height: 1000px;
    overflow: scroll;
}
</style>

<!-- Adding viewport -->
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="viewport" content="width=device-width, user-scalable=no">
 <script type="text/javascript" src="js/jquery_v1.9.1.js"></script>
 <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
 <script type="text/javascript" src="js/index.js"></script>
 <script type="text/javascript" src="js/cityPrototype.js"></script>
 </head>
 <body>
<div id="container">
    <div id="inner">
        <canvas id="can1"> </canvas>
    </div>
</div>
 </body>
  </html>
Here is Javascript function
function init(){  
can = document.getElementById('can');
cxt = can.getContext('2d');
can.width = can.parentNode.clientWidth;
can.height = can.parentNode.clientHeight;
 bg.onload=function(){
 alert("Onload");  
cxt.drawImage(bg,0,0,can.width,can.height);
width, height);
};
bg.src = "img/01.jpg";  
  }

我在提问之前已经搜索过,但无法找到完美的东西。我正在使用Canvas,JavaScript和CSS在PhoneGap框架中运行该应用程序。

哎呀,我终于找到了答案,我们可以通过在配置中修改来停止弹跳屏幕.xml 在这里找到答案 如何防止在手机间隙中运行的应用程序垂直滚动?

 #container {
width: 100%;
z-index:-1;
}
#inner {
overflow: auto;
}

不要将宽度和高度用于内部。只需将您的图像放入内部即可。

演示:

http://jsfiddle.net/WY7fE/