Я ищу способ включить эффект слайда, когда вы нажимаете ссылку на локальный якорь вверх или вниз по странице.
Я хотел бы что-то, где у вас есть ссылка, например:
<a href="#nameofdivetc">link text, img etc.</a>
возможно, с добавлением класса, чтобы вы знали, что эта ссылка должна быть скользящей:
<a href="#nameofdivetc" class="sliding-link">link text, img etc.</a>
Затем, если щелкнуть эту ссылку, страница переместится вверх или вниз в нужное место (это может быть div, заголовок, верх страницы и т. Д.).
Это то, что я имел ранее:
$(document).ready(function(){
$(".scroll").click(function(event){
//prevent the default action for the click event
event.preventDefault();
//get the full url - like mysitecom/index.htm#home
var full_url = this.href;
//split the url by # and get the anchor target name - home in mysitecom/index.htm#home
var parts = full_url.split("#");
var trgt = parts[1];
//get the top offset of the target anchor
var target_offset = $("#"+trgt).offset();
var target_top = target_offset.top;
//goto that anchor by setting the body scroll top to anchor top
$('html, body').animate({scrollTop:target_top}, 1500, 'easeInSine');
});
});
jquery
jquery-plugins
anchor
slide
ade123
источник
источник
$("a[href^=#]").click(function(e) { e.preventDefault(); var dest = $(this).attr('href'); console.log(dest); $('html,body').animate({ scrollTop: $(dest).offset().top }, 'slow'); });
history.pushState(null, null, dest);
поскольку вы предотвращаете изменение хэша местоположения по умолчаниюЕсли предположить , что ваш HREF атрибута ссылки на DIV с тегом идентификатором с таким же именем (как обычно), вы можете использовать этот код:
HTML
JAVASCRIPT - (Jquery)
источник
name
. Когда вы используете<a name="something"></a>
, вы также можете ссылаться на него извне, однако ваше решение этого не обеспечивает.Это сделало мою жизнь намного проще. Вы в основном вставляете тэг id элементов и его прокрутки к нему без большого количества кода
http://balupton.github.io/jquery-scrollto/
В JavaScript
В вашем HTML
Здесь я весь путь вниз по странице
источник
источник
+
со строками или вары сцепляет их, как:"#some_anchor"
. Действительно, второй конкатanchor_id + ""
не нужен, я считаю.Вам также следует учитывать, что у цели есть отступы и, следовательно, использовать
position
вместоoffset
. Вы также можете учесть потенциальную навигационную панель, которую вы не хотите перекрывать с целью.источник
history.pushState({}, "", this.href);
чтобы держать URL обновленнымМой подход с jQuery просто сделать так, чтобы все встроенные якорные ссылки скользили, а не переходили мгновенно
Это действительно похоже на ответ Санти Нуньес, но это более надежно .
Служба поддержки
источник
Я придерживался своего оригинального кода, а также включил ссылку «исчезновение» в начало страницы, используя этот код, а также немного отсюда:
http://webdesignerwall.com/tutorials/animated-scroll-to-top
Работает хорошо :)
источник
Возможно, вы захотите добавить значения offsetTop и scrollTop в случае, если вы анимируете не всю страницу, а скорее некоторое вложенное содержимое.
например:
источник
SS Slow Scroll
Это решение не требует привязки тегов, но вам, конечно, нужно сопоставить кнопку меню (например, произвольный атрибут, 'ss') с идентификатором целевого элемента в html.
ss="about"
берет вас кid="about"
скрипка
https://jsfiddle.net/Hastig/stcstmph/4/
источник
Вот решение, которое сработало для меня. Это универсальная функция, которая работает для всех
a
тегов, относящихся к именованнымa
Примечание 1: убедитесь, что вы используете двойные кавычки
"
в своем HTML. Если вы используете одинарные кавычки, измените приведенную выше часть кода наvar target = $("a[name='" + name.substring(1) + "']");
Примечание 2: В некоторых случаях, особенно когда вы используете липкую панель из начальной загрузки, имя
a
будет скрыто под панелью навигации. В этих случаях (или в любом другом подобном случае) вы можете уменьшить количество пикселей от прокрутки для достижения оптимального местоположения. Например:$('html,body').animate({ scrollTop: $(target).offset().top - 15 }, 'slow');
вы попадете наtarget
15 пикселей слева вверху.источник
Я наткнулся на этот пример на https://css-tricks.com/snippets/jquery/smooth-scrolling/, объясняя каждую строку кода. Я нашел это лучшим вариантом.
https://css-tricks.com/snippets/jquery/smooth-scrolling/
Вы можете перейти на родную:
или с помощью jquery:
источник
Хорошо, самый простой способ:
В функции щелчка (Jquery): -
HTML
источник
Проверьте это здесь:
http://jsbin.com/ucati4
источник
у меня сработало следующее решение:
источник