Триггер прокрутки в опере мини

Как прокрутить вниз или вверх до определенной позиции Y-px в мобильном браузере Opera Mini на странице без использования каких-либо третьих библиотек, только чистый js??? Пробовал все возможное от scrollTo до SCrollInto View ничего не работает. Помогите, пожалуйста.


person Karen Grigoryan    schedule 16.01.2014    source источник


Ответы (2)


Из документа Opera, ниже раздела Неподдерживаемые события DOM. вы найдете:

Как видите, ключевые события, такие как нажатие клавиши и нажатие клавиши, не поддерживаются. Также нет событий касания и прокрутки.

Таким образом, события scroll не поддерживаются в Opera Mini. См. другие ссылки.

person hexalys    schedule 03.06.2015

Поведение прокрутки верно, как и в любом современном браузере.

Когда вы просто открываете новое окно/вкладку и не касаетесь экрана, API прокрутки javascript через window.scrollTo(x,y) работает отлично потому что вы не указали браузеру, куда вы хотите прокручивать.

Но если вы инициируете событие прокрутки (например, пролистывание), когда ваша страница загружается, браузер будет игнорировать API прокрутки javascript, например scrollTo. И если вы обновите страницу, API прокрутки javascript не будет работать. Потому что рекомендуется возвращать пользователя на то место страницы, где он был до обновления.

Также хэш-закладки могут прокручивать страницу. Если вы установите #bookmark для URL-адреса страницы, страница будет прокручиваться до закладки, пока вы не прокрутите страницу. И тогда вы будете прокручивать все, как я написал выше: API прокрутки javascript будет игнорироваться.

Но в любом случае есть один способ прокрутки — манипуляция с хеш-закладками:

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

Это работает так, потому что использование должно управлять страницей, а не ее кодом.

person Pinal    schedule 17.01.2014
comment
очень полезный комментарий, спасибо, но он не решает основную проблему, потому что window.scroll вообще не работает даже без прокрутки, когда я просто загружаю свою страницу, имеющую в коде что-то вроде window.onload = function() { setTimeout(window.scroll(0,50),100); } Прокрутка не происходит :(. - person Karen Grigoryan; 17.01.2014
comment
Мой ответ о том, что scrollTo не будет работать как ваш аспект и это нормально. И мой пример кода с #bookmark показывает, как вы можете это сымитировать (это работает в операмини) - person Pinal; 17.01.2014