有没有办法防止浏览器缓存滚动位置和缩放级别等值
Is there a way to prevent browsers from caching values like scroll position and zoom level?
我正在设计一款完全在浏览器中进行的交互式网络游戏。它使用了html5,所有的东西(包括元素)都是游戏世界的一部分。既然是这样,我需要对元素的定位、滚动位置、缩放等进行一些非常严格的控制
一个特定级别要求将元素放置在屏幕外(就在视口外),这样用户必须滚动页面才能找到它。不幸的是,滚动后,页面似乎记录了页面的新宽度,包括最初看不见的元素。刷新页面时,会调整缩放级别,以使带有隐藏元素的整个屏幕适合视口。这就泄露了谜题,破坏了关卡。
我知道浏览器会存储滚动位置等信息,这样当用户重新访问页面时,他们就可以从停止的地方开始。这对某些事情来说很好,但对我来说不好。有没有办法防止我的浏览器出现这种缓存行为?有没有一种方法可以使用JavaScript获取或设置页面的缩放级别?
目前,我正在使用下面的代码在用户离开页面之前重置滚动位置。它运行得很好,但用户可以在离开前看到页面滚动。
window.addEventListener("beforeunload",function(event_){
window.scrollTo(0,0);
/* What I would love is if there were a way to do this: */
// window.zoomTo(1.0);
/* But I'm sure that's asking for too much. */
});
我通过将其css position
属性设置为fixed
,将隐藏元素一起排除在html流之外,从而解决了我的问题。我通过使用一些自定义触摸事件处理程序更改元素style.left
值来模拟页面滚动。页面不需要通过添加屏幕外元素来调整大小或缩放,因为固定位置元素不会影响布局。
然而,这并不能回答我关于重置缩放级别的问题,我仍然希望任何人都能有所了解。
相关文章:
- 传单缩放控制位置错误
- 计算CSS3缩放框在另一个框中的最高位置
- 当涉及css缩放时,如何获得页面上的点击位置
- 谷歌地图 v3 缩放特定位置
- 有没有办法防止浏览器缓存滚动位置和缩放级别等值
- 如果地理位置成功,请调整缩放级别
- 传单使用多个链接缩放位置
- 如何使用滑动、缩放和裁剪在 jquery 中操作图像的大小或位置
- CSS 缩放与绝对位置
- 如何在不同浏览器中以及缩放时使单词始终保持在当前行上的位置
- 为什么鼠标光标和红线在将缩放 0.5 添加到正文标签时位置不同
- 缩放后确定鼠标在 HTML5 画布上的位置
- 背景大小设置为包含的正文标签上的位置和缩放元素
- 自动缩放的 SVG 中的鼠标位置
- 使用 jQuery 滑块缩放图像的位置不正确
- 缩放时保留元素大小和位置
- Raphael JS:IE中缩放路径后的错误位置
- 获取CSS位置转换,以不对窗口缩放做出反应
- 在缩放图像上获得正确的单击位置
- HTML5画布缩放位置