2016-08-26 3 views
0

У меня есть следующий кодСкрыть/показать анкерные метки на небольшом экране

<div id="contact-buttons-bar" class="slide-on-scroll" data-top="250px" style="left: 0px;"> 
<button class="contact-button-link show-hide-contact-bar" style="left: 0px;"> 
<a class="contact-button-link cb-ancor facebook" target="_blank" title="Follow on Facebook" href="https://www.facebook.com/" style="left: 0px;"> 
<a class="contact-button-link cb-ancor linkedin" target="_blank" title="Visit on LinkedIn" href="https://www.linkedin.com/" style="left: 0px;"> 
<a class="contact-button-link cb-ancor twitter" target="_blank" title="Follow on Twitter" href="https://www.twitter.com" style="left: 0px;"> 
<a class="contact-button-link cb-ancor youtube" target="_blank" title="Follow us on YouTube" href="https://www.youtube.com" style="left: 0px;"> 
</div> 

на замковое случае show-hide-contact-bar кнопки я скрыть все теги anchor переключая класс cb.hidden. Эта функция выглядит так:

$('body').on('click', '.show-hide-contact-bar', function(e){ 
    e.preventDefault(); 
    e.stopImmediatePropagation(); 
    $('.show-hide-contact-bar').find('.fa').toggleClass('fa-angle-right fa-angle-left'); 
    oContainer.find('.cb-ancor').toggleClass('cb-hidden'); 
    }); 

который работает на месте.

Теперь то, что я пытаюсь достичь, состоит в том, что если размер экрана меньше 768, я хочу скрыть все привязывающие теги до начала и только показать событие click. Я пробовал

var width = $(window).width() 
if (width < 768) { 
    $('.show-hide-contact-bar').find('.fa').removeClass('fa-angle-left').addClass('fa-angle-right'); 
    $('.show-hide-contact-bar').find('.cb-ancor').toggleClass('cb-hidden'); 
} 

Но он не работает. Социальный бар не скрыт для начала.

Изначально я анимировать DIV как:

setTimeout(function(){ 
    $('#contact-buttons-bar').animate({ left : 0 }); 
}, 200); 

Как упомянуто @ edisoni.1337, я должен использовать toggle(). Я пытался использовать его, но моделирование тегов анкерных идет действительно странно:

enter image description here

+0

Почему бы не использовать запросы css media? – eisbehr

+0

@eisbehr Я не рассматривал это как еще tbh, было бы возможно, если вы можете предоставить пример, пожалуйста, – Code

+0

https://developer.mozilla.org/de/docs/Web/CSS/Media_Queries/Using_media_queries –

ответ

2

Вы можете использовать медиа-запросы для этого только с помощью CSS.

@media (max-width: 768px) { 
    .cb-ancor { 
     display:none; 
    } 
} 

Также здесь есть обновленный jsfiddle для щелчка кнопки затруднительного Я использовал .toggle() с JQuery, так это позволит сэкономить много работы для вас. У вас есть сообщение от w3schools page, чтобы вы могли лучше понять, как это работает

+0

Спасибо за это, я просто попробовал ваше предложение, но теперь мое событие show-hide-contact-bar не показывает скрытые теги привязки – Code

+0

Это не отображается, потому что вы используете неправильную функцию jquery, потому что вы переключите класс , Вы должны использовать oContainer.find ('.cb-ancor'). Toggle(); –

+0

Если я использую 'toggle()' стиль привязки тега, это действительно странно. Я обновлю OP, чтобы показать, что я имею в виду. – Code

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