【问题标题】:Sliding Right Submenu向右滑动子菜单
【发布时间】:2014-04-01 15:11:12
【问题描述】:

我正在尝试开发“向右滑动”功能。

我有一组主菜单class="menu-heading",当点击它们时,它们对应的子菜单class="menu-body" 应该向右滑出。这些子菜单中的每一个都可以展开/折叠以显示信息。

我已经能够开发子菜单的展开和折叠,但是如果不使用 jQuery UI,向右滑动是很困难的

HTML:

<ul>
    <li>
        <div class="menu-heading">
            <label>Top Ten Questions</label>
        </div>
        <div class="menu-body">
            <div>
                <label class="menu-body-heading bold">Question 1</label>
                <label class="visuallyhidden">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, nesciunt, adipisci consequuntur consectetur praesentium quaerat dolorem mollitia doloremque modi ullam!</label>
            </div>
            <div>
                <label class="bold">Question 2</label>
                <label>Lorem ipsum dolor sit amet, consectetur adipisicing elit</label>
            </div>
            <div>
                <label class="bold">Question 3</label>
                <label>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</label>
            </div>
        </div>
    </li>
    <li>
        <div class="menu-heading">
            <label>Contact Us</label>
        </div>
        <div class="menu-body">
            <div>
                <label class="bold">Whats your email?</label>
                <label>test@test.com</label>
            </div>
            <div>
                <label class="bold">Whats your telephone?</label>
                <label>0000000001</label>
            </div>
        </div>
    </li>
    <li>
        <div class="menu-heading">
            <label>Products</label>
        </div>
        <div class="menu-body">
            <div>
                <label class="bold">Tables</label>
                <label>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</label>
            </div>
            <div>
                <label class="bold">Chairs</label>
                <label>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</label>
            </div>
        </div>
    </li>
</ul>

jQuery:

$(".menu-body").hide();

$(".menu-heading").click(function () {
    var $this = $(this);
    $this.next(".menu-body").slideToggle(400);
});

这是我的小提琴:http://jsfiddle.net/oampz/8stR4/1/

我正在尝试实现这个没有 jQuery UI

类似于我想要实现的目标:http://jsfiddle.net/hcmLw/2/light/(当从下拉列表中选择 Right 时)

任何帮助表示赞赏

【问题讨论】:

    标签: jquery html css jquery-animate toggle


    【解决方案1】:

    A great tutorial for sliding elements

    $('#yourDiv').animate({
      marginLeft: parseInt($('#yourDiv').css('marginLeft'),10) == 0 ?
        $('#yourDiv').outerWidth() : 0
    });
    

    【讨论】:

    • 提供链接作为答案的唯一部分是一种不好的做法。请参阅此元帖子以了解为什么 meta.stackexchange.com/questions/8231/…
    • 哦,对不起。我应该删除它并将其作为评论发布吗?
    • @LCH - 谢谢,但是你有一个基于我的例子的工作小提琴吗?
    • @LCH - 谢谢,但有两个问题.. 菜单似乎无法关闭,而且,子菜单如何与主菜单在同一行高.. 它显示下面。
    • 要关闭subMenu,只需为margin-left:0display:none 设置动画即可。您可以向元素添加data-status 属性,以便检查它是否打开/关闭以应用当前动画。至于行高,你应该锻炼你的css,并制作两列,一列是标题,另一列是内容。顺便说一句,在 HTML 中,有很多元素是不需要的,例如 label 标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多