【问题标题】:css3 transition dropdown onclickcss3过渡下拉onclick
【发布时间】:2014-02-11 19:47:46
【问题描述】:

在以下示例中,当您单击 点击我 时,会打开一个导航菜单。

Example

有谁知道如何对 navigation-dropdown 应用 css3 过渡下拉效果,因为没有 :onclick 在 CSS 中?*

* 同时将 navigation-dropdown 保持在自动高度(我不想要固定高度用于下拉菜单)。

代码:(完整代码见示例)

<div id="navigation">
  <div id="navigation-sub">Click me</div>
</div>

<div id="navigation-dropdown">
  <ul>
    <li><a href="#">link one</a></li>
    <li><a href="#">link two</a></li>
    <li><a href="#">link three</a></li>
    <li><a href="#">link four</a></li>
  </ul>
  <ul>
    <li><a href="#">link five</a></li>
    <li><a href="#">link six</a></li>
    <li><a href="#">link seven</a></li>
    <li><a href="#">link eight</a></li>
  </ul>
  <ul>
    <li><a href="#">link nine</a></li>
    <li><a href="#">link ten</a></li>
    <li><a href="#">link eleven</a></li>
    <li><a href="#">link twelve</a></li>
  </ul>
  <input type="button" value="X"/>
</div>

【问题讨论】:

    标签: javascript css drop-down-menu onclick transition


    【解决方案1】:

    您应该只在点击时切换一个类并使用转换。

    CSS

    #navigation-dropdown {
        transition: 3s ease-out;
    }
    .hide {
        opacity: 0;
        height: 0 !important;
    }
    

    JS

    function dropIt() {
        toggleClass(document.getElementById('navigation-dropdown'), "hide");
    }
    

    Demo

    【讨论】:

    • 这似乎可行,但只有一个问题:navigation-dropdown需要在点击之前隐藏,现在它从一开始就在那里.
    • 只需将 hide 类添加到您的 HTML 中?
    • 将隐藏类添加到 navigation-dropdown 但现在它不再正常工作了link
    • 这是因为高度是在启动时测量的,以便过渡到工作。您可以定义一个高度或在它展开后测量一次。
    • 你可以使用自动高度吗?还是没有固定的东西?如果是这样,你能在例子中告诉我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2012-03-26
    • 2023-04-01
    相关资源
    最近更新 更多