css - 使用 CSS3 Transition 淡出然后淡入元素

标签 css responsive-design css-transitions

我的问题

是否可以使用 CSS3 暂时隐藏一个元素,然后在 X 毫秒后再次显示它?

简要说明...

我目前正在构建一个响应式网站,边栏会根据屏幕大小更改大小,边栏上的导航图标也是如此。

在侧边栏调整其宽度之前,我想淡出我的导航图标,然后在侧边栏完成动画后将它们淡出。

看这个例子:

Sidebar Example

我有以下步骤:

  1. 屏幕大小调整
  2. 导航图标淡出
  3. 一旦导航图标不可见,侧边栏就会调整大小
  4. 侧边栏调整大小后,导航图标会淡出,但这次应用了不同的样式,因此它们变小了......(不确定如何做这部分......)

我设置侧边栏大小动画的方式如下:

@media all and (max-width: 1060px) {

    /* Define the Sidebar */
    #sidebar {width:60px !important;}

    /* Define the Sidebar Animation */
    /* The delay ensures it does not resize until the icons have disappeared */
    #sidebar {transition: width 300ms ease 300ms;}

}

最佳答案

按照@Mr.Alien 的想法,我能够实现您想要的作为侧边栏和导航的最终动画。您可以查看 JS FIDDLE DEMO看到它在行动。显然,我没有太多地玩值(value)观,所以总有改进的地方。但我想,你会明白的,@Ben。请检查 chrome 或 Safari,因为除了 -webkit,我没有放置任何其他供应商前缀。您可以调整 fiddle 窗口的大小来检查它。 :)

#sidebar {
    width: 250px;
    -webkit-transition: width 1s ease;
}

#nav img {
    width: 100px;
}

@media all and (max-width: 700px) {
    #sidebar {
        width:100px;
    } 
    #nav img {
         width: 50px;
        -webkit-animation-name: comeBackSmaller;
        -webkit-animation-duration: 0.8s;
        -webkit-animation-timing-function: linear;
        -webkit-animation-iteration-count: 1;
    }  
    @-webkit-keyframes comeBackSmaller {  
        0% { opacity: 1.0; width: 100px; }
        25% { opacity: 0.0; width: 75px; }
        50% { opacity: 0.0; width: 25px; }
        100% { opacity: 1.0; width: 50px; }
    }
}

关于css - 使用 CSS3 Transition 淡出然后淡入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21882723/

相关文章:

javascript - 我如何使用 Jquery 通过它的属性值显示 DIV

html - 连续 10 个 div,每个 10%

html - 位于网站两个部分之间的图片

css - Bootstrap 警报右边距问题?

html - 尝试使用 css flexbox 创建 View ,结合行和列

twitter-bootstrap - Bootstrap 响应式菜单不可点击

css - 如何在考虑滚动条宽度的同时使用 Bootstrap 网格布局

CSS 颜色过渡在加载网站时触发多个动画

html - 如何在删除上层 div 时进行转换

html - 如何在 html/css 中淡入淡出动画图像图标