Итак, я создаю сайт для друга, и я хочу, чтобы он прокручивал href-щелчки, что было легко, мне удалось сделать это с плавной анимацией. Но проблема в том, что, когда я загружаю страницу и нажимаю ссылку FIRST, прокрутка не является точной, и после того, как я нажму на что-либо после нажатия Test1, она снова не будет точной. Так как мне сложно объяснить, так что вы можете проверить его.Проблема с прокруткой jQuery
$(document).ready(function() {
$('.click').click(function(e){
// prevent default action
e.preventDefault();
scrollToElement($(this).attr('href'), 1000);
});
var scrollToElement = function(el, ms){
var speed = (ms) ? ms : 600;
$('html,body').animate({
scrollTop: $(el).offset().top-102
}, speed);
}
});
Полный код здесь: http://jsfiddle.net/pxmfs78k/
Как проверить мою проблему:
Нажмите любую ссылку в первый раз, и тогда вы увидите, что DIV не позиционируется, где я хотел, чтобы это было, и если вы снова нажмете ту же ссылку, она будет правильно позиционировать, и после этого нет проблем при нажатии, пока вы не перезагрузите или не нажмете ссылку test1, первую.
Значит, любая идея, что может вызвать проблему?
И я прочитал эту https://stackoverflow.com/questions/19750702/jquery-scrolling-issues-with-scrolltop нить, и я не мог исправить свою проблему с объяснениями, приведенными там.
Я хотел бы предложить пропускание конкретного идентификатора элемента – user2879041
Это из-за липким нав. Когда страница загружается, она не липкая, но как только вы начинаете прокрутку. Я предлагаю вам удалить липкую вещь или добавить класс в организм, чтобы знать, когда он липкий или нет, и вы соответствующим образом корректируете свой расчет. Проблема не в вашем скрипте scrollTo –
Или просто дайте прокладку телу, когда оно липкое. Я напишу ответ –