Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Gibt es eine gute Lösung zum Ein- und Ausblenden von Animationen?

Beispiel

Es hat den gleichen Effekt wie diese Animation. Nach dem Klicken auf die Schaltfläche wird sie angezeigt und hat den gleichen Animationseffekt. Aber ich habe es definitiv zu kompliziert geschrieben. Gibt es eine einfachere Lösung (keine Notwendigkeit für Bibliotheken von Drittanbietern)?

阿神阿神2641 Tage vor965

Antworte allen(5)Ich werde antworten

  • 漂亮男人

    漂亮男人2017-06-30 10:01:55

    试试用transition:
    demo

    Antwort
    0
  • 为情所困

    为情所困2017-06-30 10:01:55

    比较简单的思路是:

    1. 方块无需隐藏,只需要设置高度为0就看不见了

    2. transition实现动画效果

    3. 不需要使用hiddenshow两个类名来控制,其实它就只有两种状态,所以可以认为无show就是隐藏了

    4. 另外无需写一个show()hide()分开绑定,其实你这个按钮点一下是展开,再点一下隐藏,用一个toggle()切换显示状态就可以了

    我在你的代码上做了点修改,如下:
    https://jsfiddle.net/boxsnake...

    Antwort
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-30 10:01:55

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <style type="text/css">
            .box{
                background: red;
                height: 200px;
                width: 200px;
                transition: height 0.8s;
            }
        </style>
        <body>
            <button onclick="changeHeight()">click me</button>
            <p class="box" style="height: 0;"></p>
        </body>
        <script src="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            function changeHeight(){
                var box=$('.box')
                if($('.box').height()!=0){
                    $('.box').height(0)
                }else{
                    $('.box').height(200)
                }
                
            }
        </script>
    </html>

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-06-30 10:01:55

    题主可以配合CSS3解决(如果不需要兼容IE的话)

    Antwort
    0
  • 高洛峰

    高洛峰2017-06-30 10:01:55

    可以用jquery实现吗?

    //头部引入jquery,toggle()
    <body>
        <p>bugbugbug</p>
        <button>Toggle</button>
        <script type="text/javascript">
        $(document).ready(function() {
            $("button").click(function() {
                $("p").toggle(1000);
            });
        });
        </script>
    </body>

    Antwort
    0
  • StornierenAntwort