我有500w * 500h的画布1,其中包含5000w * 500h的宽背景图像。我通过设置overflow:hidden
来包装具有div 500 * 500的画布,以便首先加载背景,但仅显示背景500w,其余部分将通过使用scrollLeft属性滚动viewPort部分来显示.i添加了一个事件监听器,用于检查 - >或< - 按键并相应地滚动视口。我的问题是HTML 5画布滚动事件侦听器不工作
随着家居装和设置正确(背景图像正确加载,并在画布上绘制),当我使用下面的代码
window.onload=function(){
//images are loaded and drawn
//necessary variables defined here
//view is the element id of the viewport div and is also properly accessed
window.addEventListener("keydown",function(e){
keyPressFlag = true;
if(e.keyCode == 39) //-> key
{view.scrollLeft+=3;}
});
};
获得滚动效果。但是当我尝试按照以下方式实现相同的效果时,我得不到相同的效果。我可以看到RIGHT MOVED登录到控制台,但滚动不会发生。
window.onload=function(){
//images are loaded and drawn
//necessary variables defined here
//view is the element id of the viewport div and is also properly accessed
//keyPressFlag = false; and keyPressed = 0 initially
function move()
{
if(keyPressed == 37)
{
console.log("LEFT MOVED");
view.scrollLeft -=3;
}
if(keyPressed == 39)
{
console.log("RIGHT MOVED");
view.scrollRight +=3;
}
}
window.addEventListener("keydown",function(e){
console.log("Key Pressed");
keyPressFlag = true;
keyPressed = e.keyCode;
move();
});
window.addEventListener("keyup",function(e){
console.log("key Released");
keyPressFlag = false;
});
};
我应该怎样做,当事件被触发时通过调用move函数来做背景滚动?
我喜欢你的想法!我会尝试这种方式。尽管我在代码中发现错误,但move()函数应该具有view.scrollLeft而不是view.scrollRight。我自己愚蠢的错误 – 2014-12-03 18:38:46