2016-10-10 1 views
0

я создал эту рабочую скрипку: https://jsfiddle.net/35wkv1yj/12/JQuery scrollLeft не работает

, когда я пытаюсь преобразовать это в мой собственный файл HTML функция scrollLeft не работает, и начинается прокрутка влево, как всегда.

вот мой HTML-файл:

<!doctype html> 
<html> 
    <head> 
    <link rel="stylesheet" href="css/style.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    </head> 

<body> 
    <div class="map">map</div> 
    <script> 
     $("body").scrollLeft(500); 
    </script> 
</body> 
</html> 

CSS

body, html { 
    margin: 0; 
    padding: 0; 
} 

.map { 
    width: 2000px; 
    background: grey; 
} 

я уже diffrent нагрузка подходит для сценария. но ничего не работает: /.

благодарит за любую помощь!

+0

скрипки работает OnLoad, делает ваш код а не – epascarello

ответ

0

Ваш scrollLeftIS работает ...

Но, может быть, вы не заметили горизонтальную полосу прокрутки не очень осталось в Fiddle?

Это updated fiddle, чтобы сделать его более очевидным.
Я добавил только 200px divs под ваш 2000px div ...
И сконцентрировал текст «здесь центр».

EDIT

скроллинг пользователя хранится в памяти в браузере.
Таким образом, если пользователь прокручивается до x = 0 (в полном левом) или x = 780 (где-то еще), при обновлении (используя [F5]), эффект scrollLeft(500) не является «взятым автомобилем» браузером и jquery .scrollLeft() не выглядит работоспособным ...

Но если вы нажмете [enter] в конце адреса в адресной строке браузера, все в порядке.
scrollLeft(500) работ.

Так что, если вам это нужно, чтобы работать на [F5] тоже, ходить вокруг, я только что нашел, чтобы установить небольшую задержку 10 миллисекунд к прокрутке ...

setTimeout(function(){ 
    $("body").scrollLeft(500); 
},10); 
+0

Да, он работает в скрипке, но не в моем sperate .html файле. В html-файле это похоже на то, что у него нет 'scrollLeft' - полоса прокрутки находится слева, без« поля ». –

+0

Вы загрузили jQuery? –

+0

есть. и я пробовал разные версии этого. –