Помогите решить задачу по скрипту jquery

InstantCMS 2.X
#1 12 июня 2018 в 18:49
Есть такой скрипт, он по нажатию ссылки с идентификатором #scroll_1, скроллит страницу до блока с идентификатором id=scroll_1. Все работает нормально, но хотелось добавить несколько ссылок и что бы они скроллили страницу с разными скоростями. Сейчас делаю под каждую скорость скроллинга отдельный скрипт такого типа, только меняю идентификаторы #scroll_1, #scroll_2, #scroll_3. Кто-то сможет упаковать это в один скрипт?

  1.  
  2. <script>
  3. $(document).ready(function(){
  4. $('a[href^="#scroll_1"]').on('click', function(e){
  5. e.preventDefault();
  6. var t = 100000;
  7. var d = $(this).attr('href');
  8. $('html,body').stop().animate({ scrollTop: $(d).offset().top}, t);
  9. });
  10. });
  11. </script>
#2 12 июня 2018 в 19:46
dimbons,
Так просто получайте номер ссылки и манипулируйте ею.
  1. <script>
  2. $(document).ready(function(){
  3. $('a').on('click', function(e){
  4. e.preventDefault();
  5. var n = $('a').attr('href').replace(/\D+/g,"");
  6. var t = 100000 * n;
  7. var d = $(this).attr('href');
  8. $('html,body').stop().animate({ scrollTop: $(d).offset().top}, t);
  9. });
  10. });
  11. </script>
#3 12 июня 2018 в 20:07


Так просто получайте номер ссылки и манипулируйте ею.

Ris
А как манипулировать подскажите пожалуйста. Я просто ставил идентификаторы в нужные блоки, а сейчас что нужно делать?
#4 12 июня 2018 в 20:22

А как манипулировать подскажите пожалуйста. Я просто ставил идентификаторы в нужные блоки, а сейчас что нужно делать?

dimbons
Допустим, Вы имеете несколько ссылок, которые надо скроллить с разной скоростью.
Присвойте каждой какие-нибудь атрибуты (можно просто цифровые, можно содержащие цифру), вычисляйте эту цифру (я показал выше как) и как-нибудь манипулируйте этой цифрой. Умножайте на нее время скролла, делите, прибавляйте, вычитайте…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.