【问题标题】:Getting a smooth transition effect in CSS when toggling from a visually hidden element从视觉隐藏的元素切换时在 CSS 中获得平滑的过渡效果
【发布时间】:2016-04-02 10:44:25
【问题描述】:

我正在尝试将一个元素从视觉上隐藏并返回,但效果不太好。

CodePen: http://codepen.io/gutterboy/pen/VemYrL

我正在寻找的效果类似于 jQuery 的slidedown 效果......就像这样:http://codepen.io/gutterboy/pen/adBGar

编辑:这个问题不是关于如何从display: none; 状态转换,而是如何从下面的代码转换,因为这是一种更人性化的隐藏内容以实现可访问性的方法目的。

HTML:

<div class="foo visuallyhidden">Lorem ipsum dolor sit amet, consectetur adipiscing elit. An tu me de L. Dat enim intervalla et relaxat. Zenonis est, inquam, hoc Stoici. At certe gravius. Quid, de quo nulla dissensio est? Duo Reges: constructio interrete. Nulla erit controversia.</div>

<div class="button">
    <button id="show">Show Box</button>
</div>

CSS:

.foo {
    margin: 0px auto;
    margin-top: 30px;
    border: 1px solid gray;
    padding: 15px;
    max-width: 500px;
    transition: 0.3s ease-in-out;
}

.button {
    text-align: center;
}

button {
    position: absolute;
    top: 300px;
}

.visuallyhidden {
    position: absolute;
    overflow: hidden;
    clip: rect(0 0 0 0);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    transition: 0.3s ease-in-out;
}

JS:

$('#show').on('click', function(e) {
    $('.foo').toggleClass('visuallyhidden');
});

【问题讨论】:

标签: css css-transitions transition


【解决方案1】:

我不确定这是不是你要找的东西

示例:CODEPEN

我加border-box: content-box;在 div 上,如在某些可能导致延迟、冻结等的过渡情况下 并添加border: 1px solid transparent;,以便边框动画而不是显示/不显示

【讨论】:

    猜你喜欢
    • 2013-07-01
    • 2017-03-14
    • 1970-01-01
    • 2016-06-06
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2021-09-09
    相关资源
    最近更新 更多