2015-07-09 2 views
-3

У меня есть страница, в которой есть якорная бирка: <a href="tut.html#div2">jump to div2</a>.Как изменить свойство отображения CSS с помощью метки привязки?

Этот якорь тег открывает tut.html, который имеет div с id=div2:

<div class="container"> 
    <div class="row"> 
     <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> 
      <div id="div1"> 
       --some content-- 
      </div> 
      <div id="div2" style="display:none;"> 
       --some content-- 
      </div> 
     </div> 
    </div> 
</div> 

По умолчанию содержимое div2 скрыты. Как я могу отображать или исчезать в своем содержании, когда пользователь нажимает на гиперссылку на другой странице?

+3

Если вы ищете CSS-единственное решение: протокол HTTPS : //developer.mozilla.org/en-US/docs/Web/CSS/%3Atarget – CBroe

+0

@CBroe waw Я не знал, что даже существовал. Круто. – somethinghere

+0

Вы пробовали что-нибудь? Возможно, начиная с [изучения «хэш»] (http://stackoverflow.com/questions/13344221/get-hash-value-from-url) при загрузке страницы? –

ответ

1

Вы можете легко проверить hash, который передается в и использовать, чтобы отобразить соответствующий блок:

window.onload = function(){ 
    var element = document.querySelector(location.hash); 
    if(element) element.style.display = "block"; 
} 
+0

Не могли бы вы рассказать мне больше, как я могу использовать в моем примере выше. Я не знаю о «хэш». –

+0

Хэш является частью URL-адреса, который представляет элемент в этом случае. Код работает так, как есть. Для получения дополнительной информации google 'location.hash MDN' – somethinghere

+0

Спасибо, сэр. Я смог сделать то, что хотел. –

1

ваш HREF ссылка не должна содержать ссылку на страницу, только на якорь:

<a class="myButton" href="#div2">link</a> 
<div class="container"> 
    <div class="row"> 
     <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> 
      <div id="div1"> 
       --some content-- 
      </div> 
      <div id="div2" style="display:none;"> 
       --some content-- 
      </div> 
     </div> 
    </div> 
</div> 

Использование JQuery, вы должны иметь функцию в нижней части документа, который будет обрабатывать ваш щелчок, как это:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script> 
<script> 
    $(function() { 
     $('a.myButton').on('click', function(event){ 
      event.preventDefault(); 
      $('div2').fadeIn('slow'); 
      return false; 
     }) 
    }); 
</script> 
+0

Но это будет работать только в том случае, если у меня есть якорный тег на той же странице. В этом случае тег привязки лежит на другой странице. –

+0

Хорошо тогда, если ваша ссылка на другую страницу, а затем сохранить вашу HREF, как вы сказали: jump to div2 и на странице tut.html добавить этот скрипт: $ (функция() { вар хэш = window.location. hash; if (hash == '# div2') $ (hash) .fadeIn ('slow'); }); –

1

Если ссылка идет на новую страницу:

<a href="tut.html#div2">link</a> 

В нижней части новой страницы «tut.html»:

<script> 
    $(function() { 
    var hash = window.location.hash; 
    if(hash == '#div2') $(hash).fadeIn('slow'); 
    }); 
</script> 
+0

Предположим, вы используете библиотеку jQuery. –

Смежные вопросы