1

ShareThis 是一个用于网站的社交分享小部件,其中在页面的远端创建了一个“侧边栏”,当单击它时,它会滚动并显示一个共享选项菜单。我需要找到一个 jQuery 插件或 javascript 来模拟这个功能。

我正在尝试做的一个例子可以在这里找到:http: //support.sharethis.com/customer/portal/articles/475260#sthash.iBn1ZGqT.dpbs在页面的最左侧。

有谁知道一个 jQuery 插件可以让我用我选择的 div 做到这一点?当然,我必须自己添加一些样式,但要启动的库/脚本/插件会有所帮助。

编辑: 我已经制作了一个自定义 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);
    });
});
4

2 回答 2

1

You can do this with straight up css. Based on this article here: http://dbushell.github.io/Responsive-Off-Canvas-Menu/step2.html

With a bit of modification you can achieve this: 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;
}
于 2013-07-26T16:55:44.120 回答
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);
        }

    });
});
于 2013-07-26T20:59:21.790 回答