#javascript #html #jquery
#язык JavaScript #HTML #jquery
Вопрос:
Первоначально, чтобы быстро перейти к другому блоку, я использовал
lt;a href="#comments"gt;
И код javascript для прокрутки
$(document).ready(function() { $('a[href*="#"]').on('click', function (e) { e.preventDefault(); $('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top }, 500, 'linear'); }); });
Но так получилось, что в одном из случаев я не могу использовать a href
на странице, и я ищу альтернативу
Я использую это
lt;span onclick="window.location.href='#comments';"gt;
Это работает нормально, но код прокрутки применяется только к a href
Чтобы сделать прокрутку в моем случае, нужно ли мне писать для этого отдельный код или я могу закончить существующий? Внезапно мне также понадобился старый код, и мне не нужно его полностью переписывать.
Комментарии:
1. Та же логика JS может работать для любого элемента. Просто измените
$('a[href*="#"')
на$('span')
, я бы предложил добавить к вам классspan
, чтобы избежать жадных совпадений. Еще одно замечание заключается в том, что использованиеspan
элемента для перенаправления страницы не рекомендуется по причинам доступности.2. @RoryMcCrossan и что можно использовать вместо
span
этого ?3. Практически любой элемент, который получает
click
событие.4. в любом случае, я просто попробовал так
$('span')
и получил ошибкуUncaught TypeError: Cannot read properties of undefined (reading 'top')
в этой строкеscrollTop: $($(this).attr('href')).offset().top
@RoryMcCrossan5. Ну, это потому
span
, что у а нетhref
атрибута… используйтеdata-href
вместо этого, например.,