<script> $(document).ready(function(){ $('a[href^="#scroll_1"]').on('click', function(e){ e.preventDefault(); var t = 100000; var d = $(this).attr('href'); $('html,body').stop().animate({ scrollTop: $(d).offset().top}, t); }); }); </script>
InstantCMS 2.X
#1
12 июня 2018 в 18:49
Есть такой скрипт, он по нажатию ссылки с идентификатором #scroll_1, скроллит страницу до блока с идентификатором id=scroll_1. Все работает нормально, но хотелось добавить несколько ссылок и что бы они скроллили страницу с разными скоростями. Сейчас делаю под каждую скорость скроллинга отдельный скрипт такого типа, только меняю идентификаторы #scroll_1, #scroll_2, #scroll_3. Кто-то сможет упаковать это в один скрипт?
dimbons,
Так просто получайте номер ссылки и манипулируйте ею.
Так просто получайте номер ссылки и манипулируйте ею.
<script> $(document).ready(function(){ $('a').on('click', function(e){ e.preventDefault(); var n = $('a').attr('href').replace(/\D+/g,""); var t = 100000 * n; var d = $(this).attr('href'); $('html,body').stop().animate({ scrollTop: $(d).offset().top}, t); }); }); </script>
А как манипулировать подскажите пожалуйста. Я просто ставил идентификаторы в нужные блоки, а сейчас что нужно делать?
Так просто получайте номер ссылки и манипулируйте ею.
Сегодня в 09:08
#4
12 июня 2018 в 20:22
Допустим, Вы имеете несколько ссылок, которые надо скроллить с разной скоростью.А как манипулировать подскажите пожалуйста. Я просто ставил идентификаторы в нужные блоки, а сейчас что нужно делать?
Присвойте каждой какие-нибудь атрибуты (можно просто цифровые, можно содержащие цифру), вычисляйте эту цифру (я показал выше как) и как-нибудь манипулируйте этой цифрой. Умножайте на нее время скролла, делите, прибавляйте, вычитайте…