2013-07-26 5 views
1

ShareThis - это социальный виджет для веб-сайтов, в котором «боковая панель» для каждого пользователя создается на дальнем краю страницы, а при нажатии - прокручивается и отображает меню параметров совместного доступа. Мне нужно найти плагин jQuery или javascript, который позволит мне издеваться над этой функцией.sticky flyout sidebar, как ShareThis

Пример того, что я пытаюсь сделать, можно найти здесь: http://support.sharethis.com/customer/portal/articles/475260#sthash.iBn1ZGqT.dpbs в левой части страницы.

Кто-нибудь знает о плагине jQuery, который позволит мне сделать это с помощью div по моему выбору? Конечно, мне придется добавить к нему некоторые стили, но библиотека/скрипт/плагин для начала была бы полезна.

EDIT: Я создал пользовательское решение js, но теперь я хочу закрыть элемент при повторном нажатии. Ниже мой JS, чтобы открыть элемент по щелчку:

jQuery(function() { 
    jQuery('.contact-flyout').bind('click', function() { 
     jQuery('.contact-flyout-menu').animate({ marginRight: '0px'}, 500); 
     jQuery('.contact-flyout').animate({ marginRight: '150px'}, 500); 
    }); 
}); 

ответ

1

Вы можете сделать это с помощью css. На основании этой статьи здесь: http://dbushell.github.io/Responsive-Off-Canvas-Menu/step2.html

С немного модификации вы можете добиться этого: http://jsfiddle.net/SrTH4/1/

<!-- I am collapsed by default --> 
<nav id="main-navigation" class="navigation"> 
    <a href="#">Nav Links</a> 
    <a href="#">Nav Links</a> 
    <a href="#">Nav Links</a> 
    <br><br> 
    <a href="#">Close</a> 
    <!-- more --> 
</nav> 

<!-- I am full width by default --> 
<div class="page-wrap"> 
    <header> 
    <a href="#main-navigation">Menu</a> 
    <h1>Title</h1> 

    <p>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</p> 

    <p>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</p> 

    <p>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</p> 
    </header> 

    <!-- content --> 
</div> 

CSS:

.navigation { 
    background: #ccc; 
    width: 60px; 
    overflow: hidden; 
    position: fixed; 
    top: 200px; 
    left: -60px; 
    height: auto; 
    -webkit-transition: left 1s ease; 
    transition: left 1s ease; 
    z-index: 2; 
} 

.page-wrap { 
    width: 100%; 
    float: right; 
} 

.page-wrap a { 
    background: black; 
    color: white; 
    padding: 5px; 
    position: fixed; 
    top: 210px; 
    left: -10px; 
    text-decoration: none; 
    z-index: 1; 

    -webkit-transform:rotate(90deg); 
    transform:rotate(90deg); 
} 

#main-navigation:target { 
    left: 0; 
} 
+0

спасибо за это, но мне нужно, чтобы он был совместим для всех браузеров. Я ищу решение JS, как указано в вопросе –

0

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

jQuery(function() { 
    jQuery('.contact-flyout').bind('click', function() { 

     if(jQuery('.contact-flyout-menu').css('margin-right') == "-152px") { 
      jQuery('.contact-flyout-menu').animate({ marginRight: '0px'}, 500); 
      jQuery('.contact-flyout').animate({ marginRight: '150px'}, 500); 
     } else { 
      jQuery('.contact-flyout-menu').animate({ marginRight: '-152px'}, 500); 
      jQuery('.contact-flyout').animate({ marginRight: '0px'}, 500); 
     } 

    }); 
}); 
Смежные вопросы