我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue实现下拉菜单效果

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue实现下拉菜单效果

本文实例为大家分享了vue实现下拉菜单效果的具体代码,供大家参考,具体内容如下

下拉菜单主要运用了hover显示与隐藏以及定位的问题

效果图:

可能出现的问题

定位后菜单的div无法自适应(宽度由定位的父元素决定导致换行)

div {
    white-space: nowrap;
    width: auto;
}

制作下拉菜单时,a标签列表根据最大的内容自适应宽度撑满盒子

a {
    display: block;
    width: 100%;
}

CSS下拉菜单鼠标移入菜单内容时,菜单隐藏消失的问题

首先,我们用 css 写下拉菜单,一般过程是这样:一个大的父元素框架—— drop-list ,包含一个触发下拉菜单的起点—— drop-text,和一个菜单内容——drop-content,鼠标移动到父元素上时,下拉菜单显示,鼠标移开时,菜单内容隐藏。

按照道理来说,鼠标放置父元素整体范围是不会收起菜单内容的,经过排错后发现,drop-content与 drop-text 存在空隙,鼠标移动到那个缝隙时,就离开了父元素,所以会存在鼠标移动时,菜单内容收起的情况。

解决方法:

1、让空隙消失,设置 droptext 的下外边距为0即 margin-bottom:0; drop-content 的上外边距为0 即 margin-top:0。
2、若需要间隙可以在drop-content内包裹一层在里面设置间隙,把drop-content透明隐藏。

代码如下:

<template>
  <div class="container">
    <div class="dropdown">
      <!-- 标题 -->
      <span class="dropdown-title"> 下拉菜单 </span>
      <!-- 下拉菜单内容 -->
      <div class="dropdown-content">
        <div class="dropdown-menu">
          <div class="menuItem">菜单1</div>
          <div class="menuItem">菜单菜单1</div>
          <div class="menuItem">菜单2</div>
          <div class="menuItem">菜单菜单菜单1</div>
          <div class="menuItem">菜单3</div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },
  mounted() {},
  methods: {},
};
</script>

<style lang="scss" scoped>
.container {
  padding: 20px;
}

.dropdown {
  margin: 0 20px;
  .dropdown-title {
    display: inline-block;
    position: relative;
    height: 60px;
    line-height: 60px;
    font-size: 20px;
    color: #fff;
    background-color: #000;
    padding: 0 24px;
    border-radius: 4px;
    cursor: pointer;
    // transition: all 1s ease-in-out;
  }

  .dropdown-content {
    // 定位显示局域
    position: absolute;
    visibility: hidden; // 隐藏
    opacity: 0; // 隐藏
    transition: all 0.6s ease-in-out;

    .dropdown-menu {
      margin-top: 4px;  // 与title制造距离
      padding: 10px 8px 15px; // 给下面多留一点距离,抵消视觉差
      color: white;
      background-color: rgba($color: #000, $alpha: 0.8);
      border-radius: 4px;
      .menuItem {
        width: 100%;  // 自适应宽度
        white-space: nowrap;
        padding: 10px 16px;
        font-size: 16px;
        color: white;
        cursor: pointer;
        border-radius: 4px;
        &:hover {
          background-color: #ccc;
        }
      }
    }
  }

  &:hover .dropdown-content {
    visibility: visible;
    opacity: 1;
  }
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue实现下拉菜单效果

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

javascript实现简单下拉菜单效果

这篇文章主要为大家详细介绍了javascript实现简单下拉菜单效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一
2022-11-13

Android实现下拉菜单Spinner效果

Android 中下拉菜单,即如html中的