【问题标题】:making jQuery .show() AND .hide() run side by side with UI effect使 jQuery .show() AND .hide() 与 UI 效果并排运行
【发布时间】:2014-05-03 01:19:38
【问题描述】:

我正在尝试在 jquery 中制作一个带有滑动效果的漂亮菜单: http://jsfiddle.net/rXjMV/5/

$(".goBack").click(function() {
    $(this).parent().hide('slide', {
        direction: 'right'
    });
    $("#parentSidebar").show('slide', {
        direction: 'left'
    });
});
$(".sidebarMover").click(function() {
    var newmenu = $(this).attr('name');
    $(this).parent().hide('slide', {
        direction: 'left'
    });
    $("#" + newmenu + "Sidebar").show('slide', {
        direction: 'right'
    });
});

请注意,如果您单击足球,菜单会向左滑动,而另一个菜单会从右侧滑出,但它们会在另一个下方而不是并排出现。..

尝试了很多东西,显示:内联并使用带有 jQ​​uery 队列的 delay(),但我认为问题是 CSS,坚果 jQuery...有什么想法吗?

【问题讨论】:

  • 这是因为 div 需要宽度 100% ,你现在必须考虑宽度和向左浮动

标签: jquery css jquery-ui slide


【解决方案1】:

添加 位置:绝对;宽度:100%; 在这样的容器中:

<div id="sideBar">
    <div id="sideHead">TICKET MENU</div>
    <hr id="sideHeadSeperator">
       <div class="sideItemContainer" id="parentSidebar" style="position:absolute;width:100%; ">
          <div class="sideItem sidebarMover" name="football">Football<i class="fa fa-caret-right"></i></div>
          <div class="sideItem sidebarMover" name="tennis">Tennis<i class="fa fa-caret-right"></i></div>
          <div class="sideItem">Rugby<i class="fa fa-caret-right"></i></div>
          <div class="sideItem">Basketball<i class="fa fa-caret-right"></i></div>
       </div>
       <div class="sideItemContainer" id="footballSidebar" style="display: none;position:absolute; ;width:100%;" >
          <div class="sideItem">Arsenal<i class="fa fa-caret-right"></i></div>
          <div class="sideItem">Chelsea<i class="fa fa-caret-right"></i></div>
          <div class="sideItem">Liverpool<i class="fa fa-caret-right"></i></div>
          <div class="sideItem">Manchester Utd<i class="fa fa-caret-right"></i></div>
          <div class="sideItem">Manchester City<i class="fa fa-caret-right"></i></div>
          <div class="goBack"><i class="fa fa-caret-left fa-inverse"></i> go back</div>
        </div>
        <div class="sideItemContainer" id="tennisSidebar" style="display: none;">
           <div class="sideItem">Wimbledon<i class="fa fa-caret-right"></i></div>
           <div class="sideItem">Rome Masters<i class="fa fa-caret-right"></i></div>
           <div class="sideItem">US Open<i class="fa fa-caret-right"></i></div>
           <div class="sideItem">Roland Garros<i class="fa fa-caret-right"></i></div>
           <div class="sideItem">Madrid Masters<i class="fa fa-caret-right"></i></div>
           <div class="goBack"><i class="fa fa-caret-left fa-inverse"></i> go back</div>
      </div>
</div>

【讨论】:

  • 好吧,太棒了,效果很好,但是:它下面的 div 现在覆盖了这个菜单,知道吗?
  • 如果主题已解决,请输入 1 并表示该主题已解决。我不太明白你的新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多