html - Opera 将页面滚动到不可见元素

标签 html css height overflow opera

我正在使用 Javascript 开发一个简单的游戏引擎(我知道这很疯狂。)Opera 的屏幕截图: http://img406.imageshack.us/img406/5818/gamek.jpg 虽然它看起来像一个瓦片引擎,但它实际上是基于对象的;每行或每列灰色 block 都是一个

,相对于查看区域(带红色边框的框)定位。查看区域已溢出:隐藏,因此对象不会显示在它之外。

但是,Opera 仍在将这些对象的完整高度添加到总页面高度中,即使其中大部分已被裁剪。这很好奇,因为没有显示滚动条, 元素周围的蓝色轮廓没有向下移动(如果我把它放在 元素上也没有)。但是当我按下向下箭头时,页面会向下滚动,直到这些对象的底部出现在屏幕上,即使它们被剪裁了。 我可以说是这种情况,因为删除这些对象可以解决问题,并且当我在游戏中向南移动时,页面会向上滚动,因为对象正在向上移动,从而降低了页面高度。

我正在使用 Opera 10,但在使用 9 时遇到了同样的问题。Firefox 处理得很好。我将如何解决或解决这个问题?没有我能想到的 CSS 技巧可以做到这一点,每帧调用 scroll(0,0) 更糟糕 - 页面跳转到“底部”,然后回到顶部。

最佳答案

这是 Opera 中的一个已知错误,您可以滚动到本应溢出的内容:隐藏。

现在,如果您使用 JavaScript 处理 keypress 事件并为箭头键按下调用 event.preventDefault(),它将阻止滚动。 (不能阻止 keydown 事件的默认操作,必须是按键)。这有帮助吗?

关于html - Opera 将页面滚动到不可见元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1413983/

相关文章:

php - 将 BACK 与 CHROME 结合使用时页面底部出现空白

javascript - 导航栏上的 Jquery 下拉菜单不起作用

html - 将字符串从 html 转换为列表

html - 100% 高度的 float 元素

jquery - 设置侧边栏的高度以匹配容器

javascript - 隐藏在面板后面的下拉菜单

javascript - 如何添加外部链接到 react-bootstrap Navbar?

html - 未知的 CSS 折叠边距,导航栏/正文与第一个 div

apache-flex - Flex 4 文件引用选定的图像文件尺寸(宽度和高度)

html - 如何在 Jinja2 中执行加法?