0

如何在页面上的opera mini移动浏览器中向下或向上滚动到特定的Y-px位置,而不使用任何纯js的第三个库?尝试了从 scrollTo 到 SCrollInto 的所有可能视图,但没有任何效果。请帮忙。

4

2 回答 2

2

滚动行为在每个现代浏览器中都是正确的。

当您只是打开新窗口/选项卡并且不触摸屏幕时,javascript 滚动 API 可以正常window.scrollTo(x,y)工作,因为您没有向浏览器发出要滚动的信号。

但是,如果您在页面加载时初始化滚动事件(例如滑动),浏览器将忽略 javascript 滚动 API,例如scrollTo。如果您刷新页面,javascript 滚动 API 将不起作用。因为在刷新之前用户所在的页面位置返回用户是一个好习惯。

哈希书签也可以滚动页面。如果您将 a 设置#bookmark为页面 URL,则页面将滚动到书签,直到您滚动页面为止。然后你滚动所有内容,就像我在上面写的一样:javascript scroll API 将被忽略。

但是在任何情况下都有一种滚动方式 -使用哈希书签进行操作:

window.scrollTo(0, 500);//will not work if the user scroll the page
location.hash = '';//reset hash
setTimeout(function () {
    location.hash = 'bookmark';//will scroll to bookmark in any case
}, 1000)//remember about operamini timers limit

它之所以有效,是因为使用必须控制页面,而不是代码。

于 2014-01-17T11:39:03.673 回答
1

Opera 文档中,在Unsupported DOM events部分下方,您会发现:

如您所见,不支持 keypress 和 keyup 等按键事件。触摸和滚动事件都不是。

因此scrollOpera Mini 不支持事件。查看其他参考资料

于 2015-06-03T21:09:10.137 回答