在fadetoggle之前滑动div

时间:2014-05-18 02:26:11

标签: javascript jquery

目前主要使用php进行网站工作,当谈到javascript jquery时,我真的知之甚少。我确实有一些工作,我按下一个按钮,我淡入一个div。但它突然移动它下面的div ..有没有办法,我可以在淡入之前滑下它下面的div?继承了我当前的代码..以及该页面的链接。点击发送消息即可开始淡入淡出。

http://www.mxbempire.com/?page=rider&riderid=17&id=1#

$(document).ready(function(){   
    $('#composemsg').hide();

    $('.msgdwn').click(function(){
        $('#composemsg').fadeToggle("slow");
    });

    $('.msgdwn').click(function(e){
        e.stopPropagation();
    });

});

和divs

<div class="lowerhalf">

    <div class="card2" id="composemsg">
        <div class="heading">Send Message to <?php echo $ridertag ?></div>
        <textarea name="message" id="compose"></textarea>
        <input type="submit" id="message" value="Send PM" />
    </div>
    </form>
    <div class="card2">
        <div class="heading">Wall Comments</div>

    </div>
    <div class="card2">
        <div class="heading">Screenshots</div>
    </div>
    <div class="card2">
        <div class="heading">Statistics</div>
    </div>
</div>

2 个答案:

答案 0 :(得分:1)

这可能就是你要找的东西。

$(function(){

    $('.msgdwn').click(function(){
        $('#composemsg').slideDown(500, function(){
            $('#composemsg').animate({ opacity : 1 }, 1000);
        });
    });    

});

此外还有一些像这样的CSS:

.composemsg {
  display: none;
  opacity: 0;
}

在此处查看示例: http://jsfiddle.net/Cp6mx/

答案 1 :(得分:0)

首先,你想把2个点击处理程序加入到一个函数中......没有必要在这里有2个不同

$('.msgdwn').click(function(){
   e.stopPropagation();
   $('#composemsg').fadeToggle("slow");
});

然后我不确定你想做什么...标题说幻灯片,但你没有在你的问题中指明它......所以假设你想要滑出盒子(这使得没有多大意义,因为如果你先将它滑出来然后淡出它就没有人能看到淡出了......)

但是只是为了解释你在标题中提到的内容...如果你想在另一个动作完成后执行一个动作,你只需要使用一个回调函数,这对jQuery很容易 例如

$('#composemsg').fadeToggle("slow",function(){
   alert('now disappeared');
});

or 
$('#composemsg').slideToggle("slow",function(){
   $(this).fadeToggle("slow");  // This now referring to the object the first function was attached to
});

如果你想同时做两件事,你可以使用animate同时同时使用两者:

$('#composemsg').animate({
  height: "toggle",
  opacity: "toggle"
});