• Доброго времени суток. У меня возникла проблемка с якорями в навигационном меню. В формате ссылка_на_страницу#якорь — все работает, но в таком случае страница каждый раз перезагружется. Ну а в варианте произвольная ссылка — просто #якорь — ничего не работает. В html коде стоит href=»#якорь»

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Поменяй jquery.
    Здесь поищите себе подходящий якорь
    https://codepen.io/search/pens?q=Anchor&limit=all&type=type-pens

    • Ответ изменён 3 года назад пользователем eeonesy.
    • Ответ изменён 3 года назад пользователем eeonesy.

    Проблема не в самой анимации, а в том что якорь вообще не работает.
    Но при этом если я создаю на странице произвельноый елемент с ссылкой на якорь — он работает.

    вы ссылку то дайте, иначе никто вам не поможет.

    вы ссылку то дайте, иначе никто вам не поможет.

    http://yeeeha.pp.ua/site8

    у вас там скрипт висит на анкор-ссылке.
    сами вешали то его?

    
    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()
    }
    

    у вас там скрипт висит на анкор-ссылке.
    сами вешали то его?

    Нет, это не мой. Но без него ничего не изменилось.

    • Ответ изменён 3 года назад пользователем 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 тему, где все скрипты заточены под листание экранов. на вашем месте я бы изучил документацию к теме — там наверняка есть штатные механизмы плавного скролла к якорю.

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Якоря» закрыта для новых ответов.