首页 > 其他分享 >下拉菜单缓慢展开收起的动画过渡效果,vue2 CSS

下拉菜单缓慢展开收起的动画过渡效果,vue2 CSS

时间:2023-06-09 17:47:11浏览次数:38  
标签:过渡 margin isShow vue2 border 下拉菜单 CSS

需求:点击下拉菜单按钮,显示子菜单并有过渡效果

过渡效果:缓慢展开收起

环境:vue2 CSS

分析:子菜单的高度有没有固定,如果子菜单的高度固定,可以设置高的变化添加过渡效果。如果高度不固定设置最大高度的变化添加过渡效果

图片展示:

展开状态

收起状态

 实现代码:

<template>
    <div>
        <el-button type="primary" @click.prevent="handleClick">
            热爱生命<i class="el-icon-arrow-down el-icon--right"></i>
        </el-button>
        <div class="box">
            <ul :style="{ maxHeight: isShow ? '255px' : '0px' }">
                <li>我不去想是否能够成功</li>
                <li>既然选择了远方</li>
                <li>便只顾风雨兼程</li>
                <li>我不去想能否赢得爱情</li>
                <li>既然钟情于玫瑰</li>
                <li>就勇敢地吐露真诚</li>
            </ul>
            <ul :style="{ height: isShow ? '255px' : '0px' }">
                <li>我不去想是否能够成功</li>
                <li>既然选择了远方</li>
                <li>便只顾风雨兼程</li>
                <li>我不去想能否赢得爱情</li>
                <li>既然钟情于玫瑰</li>
                <li>就勇敢地吐露真诚</li>
            </ul>
        </div>

        <div>
            既然目标是地平线,留给世界的只能是背影
        </div>
    </div>
</template>
<script>
export default {
    name: 'MenuList',
    data() {
        return {
            isShow: false,
        }
    },
    methods: {
        handleClick() {
            this.isShow = !this.isShow
        },
    },
};
</script>
<style lang='less' scoped>
.box {
    margin: auto;
    display: flex;
}
ul,
li {
    list-style: none;
    margin: 0;
    padding: 0;
}

ul {
    width: 200px;
    margin: auto;
    margin-top: 10px;
    // border: 0px solid transparent;
    border-radius: 5px;
    background-color: rgb(99, 175, 236);
    transition: height .3s, max-height .6s;
    overflow: hidden;

}

li {
    padding: 10px 0;
    border-bottom: 1px solid skyblue;

    &:last-child {
        border-bottom: none;

    }
}
</style>

  

 

标签:过渡,margin,isShow,vue2,border,下拉菜单,CSS
From: https://www.cnblogs.com/sinberya/p/17469844.html

相关文章

  • 【Vue2.x】vue2给对象动态添加响应式属性
    1vue2给对象动态添加响应式属性vue2里对象的响应式是通过Object.defineProperty()实现1.1给对象添加单个响应式属性使用Vue.set()或this.$set()参数第一个参数,是目标对象第二个参数,是要添加的属性名字第三个参数,是要属性值1.2给对象批量添加响应式属性使用Object.......
  • CSS默认支持颜色名称列表
    详见Thesyntax中的named-color。/***@returnstring[]*/Array.from($(".named-color-table").children[1].children).map(tr=>tr.children[2].innerText)......
  • 黑马程序员前端-CSS入门总结
    css入门总结一、css简介1.1css语法规范1.2css代码风格:1.3css选择器的作用二、css基础选择器2.1标签选择器:2.2类选择器2.3多类名选择器2.4id选择器:2.5id选择器和类选择器的区别:2.6通配符选择器:2.7选择器总结三、css字体属性:3.1字体大小:3.2字体粗细:3.3字体样式:3.4字体......
  • CSS禅意花园(3)-利用CSS实现下拉菜单
    版权声明:可以任意转载,但转载时必须标明原作者charlee、许多网站都使用了下拉菜单效果,但大部分都是用Javascript实现的。自己写过下拉菜单的人应该知道,处理onmouseover和onmouseout事件极其繁琐。而实际上,仅使用CSS的:hover伪类就能简洁地实现下拉菜单效果。不过遗憾的是只有完全支......
  • CSS 图片加载提前占位 padding-top、padding-bottom
    今天聊一个图片加载提前占位的一个问题......
  • vue2.0运行导入的项目出现node:events:491 throw er; // Unhandled ‘error‘ event错
    错误提示:Apprunningat: -Local: http://localhost:8080/ -Network:unavailable Notethatthedevelopmentbuildisnotoptimized. Tocreateaproductionbuild,runnpmrunbuild.node:events:491 thrower;//Unhandled'error'event在尝试过关闭占用端......
  • vue2.0运行导入的项目出现node:events:491 throw er; // Unhandled ‘error‘ event错
    错误提示:Apprunningat: -Local: http://localhost:8080/ -Network:unavailable Notethatthedevelopmentbuildisnotoptimized. Tocreateaproductionbuild,runnpmrunbuild.node:events:491 thrower;//Unhandled'error'event在尝试过关闭占用端......
  • CSS实现简单动态渐变闪烁效果
    CSS练习用例:.event{border-radius:4px;-webkit-border-radius:4px;color:#FFFFFF;font-size:12px;margin:0px30px;padding:2px0px;}.event.received{background-color:#4B946A;display:none;}@keyframe......
  • .CSS.MAP文件作用
    .CSS.MAP文件作用https://blog.csdn.net/qq_36441169/article/details/1025755631、简介在写前端代码,使用bootstrap时,发现同一个目录下,不仅仅有.css文件的同时,还存在.css.map文件的存在。在前端页面调试时也发现,映入很多已.less结尾的文件。将bootstrap-theme.min.css.map文件......
  • Vue进阶(幺幺捌):CSS3 - 选择器first-child、last-child、nth-child、nth-last-child、nt
    (文章目录)1.first-child(IE7兼容)、last-child(IE8不兼容)html:<body><h2>列表</h2><ul><li>列表项目1</li><li>列表项目2</li><li>列表项目3</li><li>列表项目4</li></ul></body&g......