Плавная прокрутка при нажатии на ссылку привязки

CREATE TABLE tbl_master
    (`id` int, `email` varchar(15));

INSERT INTO tbl_master
    (`id`, `email`) VALUES
    (1, 'test1@gmail.com'),
    (2, 'test2@gmail.com'),
    (3, 'test1@gmail.com'),
    (4, 'test2@gmail.com'),
    (5, 'test5@gmail.com');

QUERY : SELECT id, email FROM tbl_master
WHERE email IN (SELECT email FROM tbl_master GROUP BY email HAVING COUNT(id) > 1)
421
задан Fred Rocha 14 March 2017 в 17:49
поделиться

1 ответ

Требует jQuery и анимирует к тегу привязки с указанным именем вместо идентификатора, при добавлении хеша к URL браузера. Также фиксирует ошибку в большинстве ответов с jQuery, где знак # не снабжается префиксом обратную косую черту выхода. Кнопка "Назад", к сожалению, не перешла назад правильно к предыдущим ссылкам хеша...

$('a[href*=\\#]').click(function (event)
{
    let hashValue = $(this).attr('href');
    let name = hashValue.substring(1);
    let target = $('[name="' + name + '"]');
    $('html, body').animate({ scrollTop: target.offset().top }, 500);
    event.preventDefault();
    history.pushState(null, null, hashValue);
});
0
ответ дан jjxtra 17 September 2019 в 07:12
поделиться
  • 1
    Вот в чем разница меньше чем одного цикла на повторение цикла. Вероятно, не значительный. – Tom Hawtin - tackline 20 January 2010 в 18:14
Другие вопросы по тегам:

Похожие вопросы: