javascript - 显示与隐藏动画有什么好的方案吗?
阿神
阿神 2017-06-30 09:59:55
[JavaScript讨论组]

例子

就像这个动画一样的效果,p先是隐藏的,点击按钮后显示并且有动画效果,隐藏的时候同样。但我绝对我写的太复杂,有没有更简单的方案呢(不要第三方库)!

阿神
阿神

闭关修行中......

全部回复(5)
漂亮男人

试试用transition:
demo

为情所困

比较简单的思路是:

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

  2. transition实现动画效果

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

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

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

女神的闺蜜爱上我
<!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>
習慣沉默

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

高洛峰

可以用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>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号