Якоря
-
Доброго времени суток. У меня возникла проблемка с якорями в навигационном меню. В формате ссылка_на_страницу#якорь — все работает, но в таком случае страница каждый раз перезагружется. Ну а в варианте произвольная ссылка — просто #якорь — ничего не работает. В html коде стоит href=»#якорь»
-
Поменяй jquery.
Здесь поищите себе подходящий якорь
https://codepen.io/search/pens?q=Anchor&limit=all&type=type-pensПроблема не в самой анимации, а в том что якорь вообще не работает.
Но при этом если я создаю на странице произвельноый елемент с ссылкой на якорь — он работает.вы ссылку то дайте, иначе никто вам не поможет.
вы ссылку то дайте, иначе никто вам не поможет.
у вас там скрипт висит на анкор-ссылке.
сами вешали то его?function smoothScrollToAnchor(evt) { var anchor = MK.utils.detectAnchor(this), $this = $(evt.currentTarget), loc = window.location, currentPage = loc.origin + loc.pathname, href = $this.attr("href"), linkSplit = href ? href.split("#") : "", hrefPage = linkSplit[0] ? linkSplit[0] : ""; linkSplit[1] && linkSplit[1]; anchor.length ? (hrefPage !== currentPage && "" !== hrefPage || evt.preventDefault(), MK.utils.scrollToAnchor(anchor)) : "#" === $this.attr("href") && evt.preventDefault() }
у вас там скрипт висит на анкор-ссылке.
сами вешали то его?Нет, это не мой. Но без него ничего не изменилось.
-
Ответ изменён 7 лет, 6 месяцев назад пользователем
BohdanchukVL.
скрипт я там по-прежнему вижу.
и вообще — на demo-сайте этой темы якоря в меню используются для вывода под-меню. поэтому, видимо, этот скрипт там и запилили.скрипт я там по-прежнему вижу.
и вообще — на demo-сайте этой темы якоря в меню используются для вывода под-меню. поэтому, видимо, этот скрипт там и запилили.И какое решение подобной проблемы? Может есть вариант как-то обойти якоря? Что-то другое использовать.
у вас там скрипт висит на анкор-ссылке.
сами вешали то его?function smoothScrollToAnchor(evt) {
var anchor = MK.utils.detectAnchor(this),
$this = $(evt.currentTarget),
loc = window.location,
currentPage = loc.origin + loc.pathname,
href = $this.attr(«href»),
linkSplit = href ? href.split(«#») : «»,
hrefPage = linkSplit[0] ? linkSplit[0] : «»;
linkSplit[1] && linkSplit[1];
anchor.length ? (hrefPage !== currentPage && «» !== hrefPage || evt.preventDefault(), MK.utils.scrollToAnchor(anchor)) : «#» === $this.attr(«href») && evt.preventDefault()
}Без этого фрагмента кода якорь действительно заработал. Но эффект перехода меня не радовал. Я взял небольшой js для плавного скрола к якорю и он перестали работать.
jQuery(document).ready(function(){ jQuery('a[href^="#"]').bind('click.smoothscroll',function (e) { e.preventDefault(); var target = this.hash, $target = $(target); $('html, body').stop().animate({ 'scrollTop': $target.offset().top }, 600, 'swing', function () { window.location.hash = target; }); }); });
ну а что вы хотели то?
вы берете тему с кучей своих собственных скриптов и эффектов и пытаетесь вклиниться в их работу. получается криво и это вполне естественно.ну а что вы хотели то?
вы берете тему с кучей своих собственных скриптов и эффектов и пытаетесь вклиниться в их работу. получается криво и это вполне естественно.Якорь вполне себе адекватная фича, не вижу никакого сверх каприза в желании ее сделать.
но этот якорь вы хотите впилить в one-page тему, где все скрипты заточены под листание экранов. на вашем месте я бы изучил документацию к теме — там наверняка есть штатные механизмы плавного скролла к якорю.
-
Ответ изменён 7 лет, 6 месяцев назад пользователем
- Тема «Якоря» закрыта для новых ответов.