JQuery плавная прокрутка и поле URL - PullRequest
0 голосов
/ 17 марта 2012

Я получил этот скрипт ...

$(function(){
$('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'#') 
        || location.hostname == this.hostname) {
        var target = $(this.hash);
        target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
           if (target.length) {
            $('html,body').animate({ scrollTop: target.offset().top }, 1000);
            location.hash = (this.hash);
            return false;
        }
    }
});
});

... Но у меня проблема с переходом страницы вверх, когда она прокручивается, но если я уберу строку ...

location.hash = (this.hash);

Он будет работать нормально, а прокрутка - это хорошо, но URL не добавляется к ссылкам привязки.

Мне нужен URL, чтобы показать: http://www.example.com/#home <- обратите внимание на хеш. </p>

Заранее спасибо!

1 Ответ

0 голосов
/ 09 октября 2012

Используйте обратный вызов для .animate

$(function(){
$('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'#') 
        || location.hostname == this.hostname) {
        var target = $(this.hash);
        target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
           if (target.length) {
            var hash = this.hash; // 'this' will not be in scope in callback
            $('html,body').animate({ scrollTop: target.offset().top }, 1000, function() {
                location.hash = hash;
            });
            return false;
        }
    }
});
});

http://api.jquery.com/animate/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...