jquery - 显示时给元素一个宽度 :none;

标签 jquery css

我有一个小的 CSS 过渡,我想用它来让一个元素从其父元素后面滑出。

元素:

#contact-form{
    background: #f2f2f2;
    text-align: center;
    top:-20em;
    display:none;
    position: relative;
    padding: 2em 0;
    width:100%;

    -webkit-transition: top 0.2s ease;
    -moz-transition: top 0.2s ease;
    -ms-transition: top 0.2s ease;
    -o-transition: top 0.2s ease;
    transition: top 0.2s ease;
}

jQuery:

$('#contactBtn').click(function(){
    $('#contact-form').css('top', 0).toggle('display');
});

您可能已经猜到了,这会导致元素从左上角滑入,而不是仅仅从顶部滑入(因为当元素“不显示”时,它没有宽度)。

确保过渡仅针对元素的高度而不是宽度的最佳方法是什么?它需要从顶部开始:-20,因为它附加到出现在页面中间的导航栏。

最佳答案

你可以试试

$("#contact-form").slideToggle();

也许这个例子会有所帮助:http://jsfiddle.net/dJS4g/

关于jquery - 显示时给元素一个宽度 :none;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16117008/

相关文章:

javascript - jQuery Ajax POST JSON 问题

jquery - 如果用户未在表单中输入任何内容,如何避免服务器回复

css - 这个通配符是什么意思?

android - 适用于 Android 设备的纯媒体屏幕

javascript - 点击按钮切换div位置

javascript - 在angularjs中对表格日期列进行排序

jquery - jQuery 1.3.1 中的 "elems.sort is not a function"

javascript - 我的网站在不同的分辨率下看起来不正确

javascript - 如何设置由 javascript 动态创建的元素的样式

css - 如何在 Bootstrap 中覆盖左/右箭头图像(和一般图像)?