我正在设计一个完全在浏览器中进行的交互式网络游戏。它使用了HTML5,所有元素都是游戏世界的一部分。因此,我需要对我的元素位置、滚动位置、缩放等拥有相当严格的控制。
其中一个特定的层级需要将一个元素放置在屏幕外(视口之外),以便用户必须滚动页面才能找到它。不幸的是,在滚动后,页面似乎记录了包括未看到的元素在内的新页面宽度。当刷新页面时,缩放级别会调整以适应整个屏幕并将隐藏的元素带入视口。这暴露了谜题并破坏了该层级。
我知道浏览器会存储诸如滚动位置之类的信息,以便用户重新访问页面时可以继续上次的进度。这对某些事情很好,但对我来说很糟糕。有没有办法防止浏览器缓存我的行为?有没有办法使用JavaScript获取或设置页面的缩放级别?
目前,我正在使用以下代码在用户离开页面之前重置滚动位置。它运作得很好,但用户可以看到页面在离开前滚动。
其中一个特定的层级需要将一个元素放置在屏幕外(视口之外),以便用户必须滚动页面才能找到它。不幸的是,在滚动后,页面似乎记录了包括未看到的元素在内的新页面宽度。当刷新页面时,缩放级别会调整以适应整个屏幕并将隐藏的元素带入视口。这暴露了谜题并破坏了该层级。
我知道浏览器会存储诸如滚动位置之类的信息,以便用户重新访问页面时可以继续上次的进度。这对某些事情很好,但对我来说很糟糕。有没有办法防止浏览器缓存我的行为?有没有办法使用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. */
});