vue3下拉菜单点击之后缓慢展开与缓慢关闭

news/2024/10/5 11:20:21

利用 max-height 来实现下拉菜单的缓慢展开和关闭效果。通过设置一个固定的 max-height 值以及过渡效果,可以让菜单在展开和关闭时产生动画效果。

<template>
<div class="dropdown"><div class="selected" @click="toggleDropdown"><div class="text">{{ selectedOption.label }}</div></div><!-- :class="{ 'slide-down': isOpen, 'slide-up': !isOpen }" --><!-- v-if="isOpen" --><div class="dropdown-menu" :class="{ open: isOpen }"><div class="option" v-for="option in options" :key="option.value"@click="selectOption(option)"><!-- <div class="icon-box"><img :src="option.icon" alt="" class="icon"></div> --><div class="text">{{ option.label }}</div></div></div></div>
</template>
<style lang='scss' scope>.dropdown {width: 100%;position: relative;.selected {font-size: 14px;color: #333;border: none;box-sizing: border-box;// outline: 0 !important;margin: 0;cursor: pointer;display: flex;align-items: center;// border: 1px solid #eef3fd;background: #eef3fd;height: 2.604vw;padding: 0 2.083vw 0 1.041vw;border-radius: .729vw;height: 2.604vw;display: flex;align-items: center;// &:focus {//     border: 1px solid #88dadf;// }&::before {content: "";display: block;width: .781vw;height: .781vw;background: url(../../assets/cardicons/arr2.png) center no-repeat;-webkit-background-size: contain;-moz-background-size: contain;-o-background-size: contain;background-size: contain;position: absolute;top: 50%;right: .781vw;margin-top: -.364vw;transition: .4s;}.text {line-height: 2.604vw;color: #353d61;font-weight: 700;font-size: .937vw;}}.dropdown-menu {position: absolute;top: 125%;left: 0;right: 0;z-index: 1000;border-radius: 1.041vw;border: 1px solid #ddd;background-color: #fff;padding: .208vw;overflow: hidden;overflow-y: auto;max-height: 0;overflow: hidden;transition: max-height 0.3s linear, padding 0.3s linear, opacity 0.3s linear;opacity: 0;/* 过渡效果 */// max-height: 13.02vw;// max-height: 0;// opacity: 0;// transform: translateY(-10px);// transition: opacity 1s linear, transform 1s linear;// &.slide-down {//     opacity: 1;//     transform: translateY(0);// }// &.slide-up {//     opacity: 0;//     transform: translateY(-10px);// }&.open {max-height: 300px;opacity: 1;/* 展开时最大高度 */// padding: 0.5rem 0;/* 展开时正常内边距 */}.option {display: flex;align-items: center;border-radius: .52vw;-webkit-transition: .3s;-o-transition: .3s;-moz-transition: .3s;transition: .3s;cursor: pointer;padding: 0 .833vw;height: 2.083vw;}.option:hover {background-color: #eef3fd;}.text {font-size: .833vw;color: #353d61;font-weight: 700;}}}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/54828.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

我的奇妙屋

我的奇妙屋 实验一角开始发布

管理农业项目必备 10款项目管理软件评估和选择技巧

国内外主流的 10 款农业建设管理系统对比:PingCode、Worktile、建米农业工程项目管理系统、泛普软件的农业项目管理系统、开创云数字农业管理平台、Trimble Ag Software、Agworld、FarmLogs、Granular、Conservis。在管理复杂的农业建设项目时,选择合适的管理系统常常让人头疼…

第三周作业

1、在docker中分别以后台方式和交互方式启动centos,对比启动后的容器状态,实现退出容器也能保持其运行状态。 2、在docker并部署DVWA,要求:DVWA web 端口映射到8082,提供访问截图。 3、Mysql练习 (1)创建一个名为"magedu_C10"的数据库; (2)在magedu_C10数据…

任正非署名文章《星光不问赶路人》:没有退路就是胜利之路

华为心声社区以总裁办电子邮件形式,发布了任正非于2020年6月19日的讲话:《星光不问赶路人》,我看了好几遍,热血沸腾。“对未来科学的探索不停步,研发不停步,继续勇往直前。不能以后生存下来了,却看不见未来了。没有明天了,这样的生存是没有意义的。战略研究院要继续扩大…

nss第四页

1、[GDOUCTF 2023]EZ WEB 首先这题查看源码可以看到有个目录访问src这代码的意思就是,如果访问/super-secret-route-nobody-will-guess 的请求方法为put,那么就输出flag 所以就直接抓包然后改请求就行了2、[GDOUCTF 2023]泄露的伪装 这题的话,需要扫描目录访问www.rar,得到…

信奥赛一本通陈老师解题 1128:图像模糊处理

​【题目描述】给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理: 1.四周最外侧的像素点灰度值不变; 2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。【输入】第一行包含两个整数n和m,表示图像包含像…

作业8.26:自我介绍+软工5问

这个作业属于哪个课程 班级链接这个作业要求在哪里 作业要求链接这个作业的目标 掌握 Markdown 基本使用;初步预习教材。介绍我自己 🍁嗨,我是凌枫,运行下面的 Python 代码,您将看到我的自我介绍! class UniversityStudent:def __init__(self, major, hobbies, current_…

037.CI4框架CodeIgniter,使用Model模型绑定数据库表

01、我们创建一个数据库,如下:CREATE TABLE `user` (`id` int(20) NOT NULL AUTO_INCREMENT,`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`userpassword` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAUL…