-webkit-transition 带显示

Posted

技术标签:

【中文标题】-webkit-transition 带显示【英文标题】:-webkit-transition with display 【发布时间】:2011-05-09 21:05:00 【问题描述】:

有没有办法将-webkit-transitiondisplay 一起使用?

我正在使用 CSS display 来隐藏和显示第二级导航……但只有 :hover 上的 display: nonedisplay: block 有点不性感……ease 会很棒(比如 @ 987654328@)

我知道使用 jQuery 很容易做到这一点,但我目前正在尝试使用 CSS3 设置所有内容(我知道:并非所有浏览器都支持它,但这与我目前正在从事的这个项目无关)

这里有一些代码和结构:(li.menu1 有一个 :hoversection.nav-menu1 display: block;

<ul>
    <li class="menu1"><a href="#">Menu 1</a>
        <section class="nav-menu1">
            <h1 class="none">Level 2 Overlay</h1>
            <nav>
                <h2 class="none">Menu 1 Navigation</h2>
                <ul>
                    <li><a href="#">Menu 1 Level 2-1</a></li>
                    <li><a href="#">Menu 1 Level 2-2</a></li>
                    <li><a href="#">Menu 1 Level 2-3</a></li>
                </ul>
            </nav>
        </section>
    </li>
</ul>

【问题讨论】:

你能显示导航结构吗?甚至是例子。 【参考方案1】:

您应该为此使用不透明过渡,而不是显示过渡。 Display:none 完全从布局中删除一个元素 - 我认为您希望它在那里,但不可见。

【讨论】:

hmm,如果我使用不透明度,则 :hover 存在重大问题(因为元素存在但不可见,因此 :hover'able/clickable):-/【参考方案2】:

您应该使用heightwidth 转换来显示和隐藏二级菜单。转换不支持Display 属性。

ODC 有一篇文章,something similar 可以满足您的需求。另外,我modified it a bit 是为了看起来更像菜单项。在 Opera 10.7 中完美运行,在 Firefox 3.6.12 中没有过渡,在 Chrome 7.0.517.41 中根本没有。

我希望这将作为您自己的动画菜单的起点。

更新 1: Your menu with ease-in transitions。可能,我的结构有问题。问题是过渡不适用于auto,因此您必须手动指定最终高度。

更新 2: 使用不透明度作为过渡属性。在不可见元素上设置可见性:隐藏和可见性:可见上可见。这将防止不可见的可点击链接。另外,可见-不可见过渡不起作用,不知道为什么。必须加倍努力。

Example.

【讨论】:

是的!谢谢! ……隐藏: 和可见: ...谢谢! 唯一有效的关键字是颜色。不幸的是,中心、左、右、自动等没有转换(但是,我会添加)。 淡入很好,但不幸的是淡入 out 不适用于此。 如果您想同时淡出和淡入,您可以使用此要点中的解决方法:gist.github.com/2933815 应该注意的是,如果您希望它在 ios 设备上运行,据我所知 必须 使用 display: block;并显示:无;隐藏,这有点令人沮丧。当需要动画和平板电脑/手机支持时,可能是 jQuery 或类似的解决方案提供了最强大的解决方案。【参考方案3】:

所以我不确定我是否在这里看到了所有的部分。您想要动画不透明度和可见性,可见性有延迟,因此不透明度在触发之前完成;

opacity: 0;
-moz-transition: opacity .25s linear, visibility .1s linear .5s;
-webkit-transition: opacity .25s linear, visibility .1s linear .5s;
-o-transition: opacity .25s linear, visibility .1s linear .5s;
transition: opacity .25s linear, visibility .1s linear .5s;
visibility: hidden;

opacity: 1;
visibility: visible;

可见性将等待 0.5 秒,然后切换到隐藏。如果您希望它双向淡出,您甚至可以关闭一侧的可见性过渡。 (这样在淡入时,元素立即可见,而不是等待 0.5 秒和过渡。)

【讨论】:

【参考方案4】:

使用overflow:hidden &gt; overflow:visible,效果更好,我这样使用:

example 
 #menu ul li ul 

    background-color:#fe1c1c;
    width:85px;
    height:0px;
    opacity:0;
    box-shadow:1px 3px 10px #000000;
    border-radius:3px;
    z-index:1;
    -webkit-transition:all 0.5s ease;
    -moz-transition:all 0.6s ease;



 #menu ul li:hover ul  

        overflow:visible;
    opacity:1;
    height:140px;

比可见更好,因为overflow:hidden 的行为与display:none 完全一样,

【讨论】:

首先:请更正您的代码,它无效。第二:不支持溢出作为过渡。

以上是关于-webkit-transition 带显示的主要内容,如果未能解决你的问题,请参考以下文章

提取TRA文件的TRA配置

vue2前端导出带背景色表格 xlsx xlsx-style

vbscript WMI - 获取事件日志tra截止日期

text Confronto报告anche tra ambienti diversi SE39

Tips for traing DNN

数据库使用数据泵迁移遇到LOB字段