jQuery显示/隐藏 - 使其他元素具有更平滑的过渡

时间:2013-04-29 04:39:31

标签: javascript jquery user-interface

当我隐藏/显示时,'myContent'div下方的标签/表单是否有办法让转换更顺畅?

目前,当切换myContent div时,其下方的其他元素会“跳”到位 - 如果我能想出一种将它们滑动到正确位置的方法,那将会很棒。你觉得怎么样?

的JavaScript

function toggleDiv(divId) {
    jQuery("#" + divId).toggle("slide", {
        direction: "up"
    });
}

function ShowThing(divID) {
    jQuery("#" + divID).show("slide", {
        direction: "up"
    }, 500);
}

function HideThing(divID) {
    jQuery("#" + divID).hide("slide", {
        direction: "up"
    }, 500);
}

HTML

<a href="javascript:toggleDiv('myContent');" style="background-color: #ccc; padding: 5px 10px;">Toggle Button</a>

<button onclick="ShowThing('myContent');">Show</button>
<button onclick="HideThing('myContent');">Hide</button>
<div>
    <div id="myContent" style="background-color: #aaa; padding: 5px 10px;">The content in this div will hide and show (toggle) when the toggle is pressed.
    </div>
</div>
<div>
    <label for="cool-field">Name</label>
    <input type="text" name="cool-field" id="cool-field" />
</div>

2 个答案:

答案 0 :(得分:1)

Click Here for jsFiddle

优化了javascript,以便所有代码都基于jQuery。

HTML代码

<a href="#" style="background-color: #ccc; padding: 5px 10px;" class="togglebtn">Toggle Button</a>

<button id="showthing">Show</button>
<button id="hidething">Hide</button>
<div>
    <div id="myContent" style="background-color: #aaa; padding: 5px 10px;">The content in this div will hide and show (toggle) when the toggle is pressed.
    </div>
</div>
<div>
    <label for="cool-field">Name</label>
    <input type="text" name="cool-field" id="cool-field" />
</div>

jQuery代码:

$(function(){
    $('a.togglebtn').click(function(){
        $('#myContent').stop().slideToggle(500);
        return false;
    });
    $('#showthing').click(function(){
        $('#myContent').slideDown(500);
    });
    $('#hidething').click(function(){
        $('#myContent').stop().slideUp(500);
    });    
});

答案 1 :(得分:0)

您的Jsfiddle空白。

而不是show()您可以使用slideDown('slow'); 对于hide,您可以使用slideUp('slow');您也可以设置方向。

否则您可以使用JQuery Animate