#jquery #css #html
#jquery #css #HTML
Вопрос:
Итак, это должно быть довольно просто … и я это делаю, но я хотел попросить несколько разных вариантов.
Одним из вариантов является использование «Плавной прокрутки» и имен привязок… но я нахожу это довольно непоследовательным.
Это моя структура HTML:
<section id="home">
<!-- some content -->
</section>
<section id="about">
<!-- some content -->
</section>
<section id="services">
<!-- some content -->
</section>
...
У меня есть несколько «быстрых кнопок» в правой части раздела, которые в основном позволяют вам «перемещаться» вверх или вниз от раздела к разделу.
Комментарии:
1. Я думал, что это очевидно: «но я хотел попросить несколько разных вариантов». Как я уже сказал, я использую опцию под названием «Плавная прокрутка», но она немного непоследовательна.
Ответ №1:
jQuery.fn.extend({
scrollTo : function(speed, easing) {
return this.each(function() {
var targetOffset = $(this).offset().top;
$('html,body').animate({scrollTop: targetOffset}, speed, easing);
});
}
});
// Scroll to "about" section
$('#about').scrollTo('fast', 'linear');
Обновление — Для перехода от раздела к разделу используйте простой обработчик событий:
jQuery:
$('.next-section').click(function(){
var $this = $(this),
$next = $this.parent().next();
$next.scrollTo($next.offset().top, 500, 'linear');
});
$('.prev-section').click(function(){
var $this = $(this),
$prev = $this.parent().prev();
$prev.scrollTo($prev.offset().top, 500, 'linear');
});
HTML:
<section id="about">
<a href="#" class="prev-section">Previous Section</a>
<a href="#" class="next-section">Next Section</a>
<div class="section-content">
Foobar
</div>
</section>
Вот демонстрация: http://jsfiddle.net/AlienWebguy/Xdg2k /
Комментарии:
1. Спасибо за это… В дополнение к привязке функции прокрутки к определенной кнопке, мне также нужно иметь возможность просто прокручивать страницу вниз / вверх от «<раздел>» до «<раздел>»
2. Спасибо за обновленный код. Это работает хорошо, за исключением того факта, что это не облегчает…
3. Просто измените ‘linear’ на любое облегчение, которое вы хотите, lol. Включите пользовательский интерфейс jQuery для поддержки других типов упрощения: jsfiddle.net/AlienWebguy/Xdg2k/7
Ответ №2:
Загляните в плагин scrollTo
jQuery, он должен полностью соответствовать вашим потребностям.
Ответ №3:
итак, вы хотите прокручивать страницу вверх и вниз в зависимости от того, по какой ссылке нажимает пользователь?
по моему опыту, плагин jQuery.scrollTo лучше всего подходит для этого. Простота в использовании и большая поддержка
Ответ №4:
Вы могли бы попробовать просто установить scrolltop
var doc = (document.contentWindow || document).document || document.ownerDocument || document,
el = ($.browser.webkit) ? doc.body : doc.documentElement;
$(el).scrollTop($('#services').offset().top);
Ответ №5:
Мне удалось получить потрясающую плавную прокрутку, используя mootools для моего «перехода к следующему», поскольку мне не понравилась неровность jquery. Он также работает в унисон с другим jquery на странице, как только вы сделаете небольшую настройку.
http://davidwalsh.name/smooth-scroll-mootools
Сайт, на котором я его использую, в настоящее время находится в стадии разработки, но вот ссылка http://ggszabo/new/indexb.html
Щелкните раздел ленты для просмотра.