#javascript #mobile #scroll
#javascript #Мобильный #прокрутка
Вопрос:
Я хочу заставить мобильное устройство прокручивать до определенной позиции, а затем выводить ее в виде предупреждения. Мой код отлично работает в Chrome на моем ПК, но не на мобильных устройствах. Когда я запускаю инструменты разработчика в Chrome на своем ПК и выбираю просмотр на мобильных устройствах, он не работает, хотя он отлично работает в режиме просмотра на ПК. Если я установлю положение, скажем, на 30 пикселей, экран вообще не перемещается в режиме просмотра с мобильного устройства, и предупреждение возвращается с нулевым значением. Что я делаю не так?
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link href="//fonts.googleapis.com/css?family=Open Sans:400,400i,300,700" rel="stylesheet" type="text/css">
<script src="crafty/crafty_postcode.class.js"></script>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript" src="https://cc-cdn.com/generic/scripts/v1/cc_c2a.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js">
</script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js">
</script>
</head>
<body id="mainBodyId" style="margin-left:0.25cm;height: 1500px;width:1200px;" >'
<script language="JavaScript" type="text/javascript">
window.scrollTo(0,30);
alert('Current scroll from the top: ' window.pageYOffset);
</script>
<form>
<span>
1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>3<br>4
<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6<br>7
<button>test</button>
<br>8<br>9<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>
1<br>2<br>3<br>4<br>5<br>6<br>6<br>
<button>test</button>
1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>3<br>4<br>
5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>
8<br>9<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>
2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>
<button>test</button>
<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>3
<br>4<br>5<br>
<button>test</button>
6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>
9<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>
3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6
<br>7<br>8<br>9
<button>test</button>
<br>10<br>1<br>2<br>3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>1<br>2<br>
3<br>4<br>5<br>6<br>6<br>7<br>8<br>9<br>10<br>
<button>test</button>
</span>
</form>
</body>
</html>
Я ожидаю, что экран переместится на 30 пикселей по вертикали, а предупреждение будет выводиться на 30 в Chrome developer tools, просмотр с мобильного устройства.
Ответ №1:
Попробуйте это вместо window.scrollTo(0, 30)
window.addEventListener('load', function(){
window.scrollTo(0,30);
});
Комментарии:
1. Ваше предложение работает в режиме просмотра на рабочем столе (в инструментах разработчика), но не тогда, когда я переключаюсь на просмотр в режиме мобильного устройства.
2. Привет, @JamesCurrie, я обновил код, и он работает и на мобильном устройстве. Я не уверен, почему это не работает с chorme mobile view, но я протестировал это на реальном мобильном устройстве, и это точно работает.