2016-12-18 2 views
1

В моем документе HTML У меня есть поле ввода. Вы можете указать число, и окно должно прокручиваться до этого номера пикселя.ScrollTo() в Javascript scrolls all down

Я использовал функцию scrollTo(). Дело в том, что оно всегда прокручивается в нижней части страницы.

Если я нахожу window.scrollTo(0, 500 + 400);, он отлично работает, но с window.scrollTo(0, document.getElementById("field").value + 400); он всегда прокручивает весь путь вниз.

Вы можете увидеть проблему в этой скрипке: https://jsfiddle.net/ultraphilipp/eusq986j/

Спасибо за вашу помощь! :)

ответ

3

Есть 2 проблемы:

Во-первых, вы используете неправильный поле ID. Вместо этого используйте «глубина».

Вторая проблема заключается в том, что

document.getElementById("depth").value 

возвращает строку

Допустим, вы вводите номер 5.

Что она делает, это "5" + 400 = 5400

Чтобы исправить это, вы должны преобразовать значение в целое число

window.scrollTo(0, parseInt(document.getElementById("depth").value) + 400); 

Следует исправить вашу проблему.

+0

Это сработало, спасибо. Не знал, что я получаю от этого строку. Спасибо за объяснение, вы очень помогли мне с этим! – Philipp

0

Вы использовали неправильный идентификатор поля, вместо field вы должны использовать depth. Проверьте правильный код ниже:

window.scrollTo(0, document.getElementById("depth").value + 400); 
+0

Небольшая ошибка, когда я создал скрипку. Но он также не работает с правильным ID: https://jsfiddle.net/ultraphilipp/eusq986j/1/ – Philipp

+0

Обновлена ​​новая ссылка, я не могу увидеть обновленное имя поля. И, согласно @timon, вам также нужно сделать parseInt(). – Yogesh

+0

Я изменил имя в javascript. Он работал с решением от Timon, но большое вам спасибо за вашу помощь. – Philipp