Jump to content
  • 0

Ссылка с якорем и без.


Vicos
 Share

Question

Здравствуйте! Помогите советом.

Имеем стандартное меню с выпадающими списками. Основные пункты меню ведут на соответствующий раздел, подпункты ссылки с якорями осуществляют плавный переход к соответствующему блоку на странице.

Возникла проблема следующего типа: Находясь в своейм разделе подпункты работают как и подобает ссылке с якроем, а вот подпункты из другого раздела не работают как ссылки.

Ссылка типа:

http://temp.loc/#block-1

Работает как якорь.

Ссылка типа:

http://temp.loc/?page=2#block-2

Работает как и подобает ссылке, но как её заставить работать с плавным переходом?

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

плавный переход вы осуществляете с помощью js наверно

и обработка скорее всего привязана к клику на ссылку

скорее всего вам нужно сделать данную обработку еще и при загрузке странички

Link to comment
Share on other sites

  • 0
при загрузке странички

Идея хорошая, но не совсем понял какое событие мне нужно обрабатывать?

$(".sub-menu li a").click(function(){	 	var idscroll = $(this).attr('href');        $.scrollTo(idscroll, 500);        return false;	});

Этот код обрабатывает клик и плагин scrollTo отрабатывает.

При загрузке страницы возможно возможно ли это сделать?

Как вариант вижу сделать отдельное меню, которое будет отображаться на соответствующей странице.

Link to comment
Share on other sites

  • 0
подозреваю, что вам подойдет вот это $(document).ready(function(){ var idscroll = window.location.href; $.scrollTo(idscroll, 500); }); но возможно понадобится изменить на window.location.hash

Оба варианта выдают ошибку Syntax error, unrecognized expression: ?page_id=2/#block-2 в jQuery.

Если подправить их:

$(document).ready(function(){		var idscroll = window.location.hash;		idscroll = '#' + idscroll[1];		$.scrollTo(idscroll, 500);		console.log(idscroll);		//return false;	});

Ошибка пропадает, а вместе с ней и работоспособность ссылки, плавный скролл работает.

Может плагин с ссылкой вида ?page_id=2/#block-2 не работает?

Ага и в случае с:

console.log(window.location.hash);

Возвращается #block-2.

В случае с:

console.log(window.location.href);

http://temp.loc/?page_id=2/#block-2 - ссылка целиком.

При клике на ссылку работать будет только если вернётся

#block-2
Link to comment
Share on other sites

  • 0

window.location.href выдает ошибку из-за слэша перед хэшем
?page_id=2/#block-2
его не должно быть по идее
какого рода ссылки у вас в $(this).attr('href'):
http://temp.loc/?page_id=2/#block-2
/?page_id=2/#block-2
?page_id=2/#block-2
#block-2
по мне там должно быть что-то вроде
/?page_id=2#block-2
 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By VolKTieR
      Здравствуйте.
      Имеется данный код:
      <audio id="audio">     <source src="audio/1.mp3" type="audio/mpeg"> </audio> <div class="fixedbut" id="sebut">Звук</div> <style> div.fixedbut { position: fixed;     bottom: 93%;     right: 20px;      display: block;      background: white;      border-radius: 10px;     color: black;      text-decoration: none;      padding: 6px 23px;     font-size: 17px ;     -webkit-transition: 0.33s all ease-out;      -o-transition: 0.33s all ease-out;      transition: 0.33s all ease-out;     z-index: 999; } div.fixedbut:hover {         background: grey;         color: white; } </style> <script> document.getElementById("sebut").onclick = function()     {       var myaudio = document.getElementById("audio");       if(myaudio.paused == true)       {         document.getElementById("audio").play();  }       else if (myaudio.paused == false)       {         document.getElementById("audio").pause(); }     } </script> <script>     $(document).ready(function(){       $(window).scroll(function () {         if ($(this).scrollTop() > 200)          {             $('div.fixedbut').fadeIn();        }         else          {             $('div.fixedbut').fadeOut();         }   })     }); </script>
       
      Кнопка плавающая, останавливает звук включенный другой .
      Со звуком проблем нет, но появление и исчезание кнопки при прокрутке не работает.
      Подскажите пожалуйста как сделать))
    • By alexsanris
      При проверке на xtool обнаружил 310 забугорных спамных ссылок, в основном из швеции.Позиции в гугл сильно просели. Что можно сделать конкретно.
    • By d0ublezer0
      Edge упрямо выкрашивает телефонные номера на сайте resursmed.ru в синий цвет и добавляет подчеркивание:

      и в шапке, и в подвале, не взирая на стили.
      Как победить напасть?
       
    • By serzh82saratov
      Если в IE потянуть за ползунок скролла, то пока не выполнится процедура onscroll, визуально смещение не происходит. Это, то что нужно.
      Но, если нажать на стрелку скролла, или между стрелкой и ползунком, или колёсиком прокрутить, то сначала происходит смещение и только после происходит вызов onscroll. Как избежать такого поведения?   https://jsfiddle.net/0b9dye0j/
    • By ShumNo
      Есть такая разметка, возможно она кривая, но в силу некоторой идеи она такая. http://jsfiddle.net/8rqetnyo/
      Вложенный слой со скролом, выполняющий роль основного на странице + фиксированный слой, который перекрывает скролл.
      Как бы вы решили? Быть может оно вообще не решается... ?
      Была мысль с width: calc но в разных браузерах оно у меня выглядит по разному
       
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy