Доброго дня!
Такая проблема: есть два абсолютно подобных события на jQuery (прокрутка до якоря при нажатии по ссылке). Сейчас я каждый раз при добавлении ссылки на сайт, добавляю по новой этот скрипт. Получается много кода, подобного кода. Чувствую что это как то возможно сократить. Просто добавляя новый линк в этот скрипт. Но не могу. Помогите пожалуйста.
Вот пример:
$('a[href^="#advantages"]').bind('click.smoothscroll',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 1200, 'swing', function () {
window.location.hash = target;
});
});
$('a[href^="#application"]').bind('click.smoothscroll',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 1200, 'swing', function () {
window.location.hash = target;
});
});
Для того чтобы не дублировался код можно добавить общий класс для ссылок такого типа.
$('a.anchor').bind('click.smoothscroll',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 1200, 'swing', function () {
window.location.hash = target;
});
});
Либо как предложили в комментариях. Если у вас для всех ссылок такого типа будет одинаковая анимация проще использовать селектор a[href^="#"]. Или даже без указания тега a. Вот так [href^="#"].
Сборка персонального компьютера от Artline: умный выбор для современных пользователей