我正在设计一个完全在浏览器中进行的交互式网页游戏。它使用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. */
});