首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Bootstrap Vue在悬停时打开选择下拉菜单

如何使用Bootstrap Vue在悬停时打开选择下拉菜单
EN

Stack Overflow用户
提问于 2022-01-24 08:51:40
回答 2查看 681关注 0票数 3

我需要一种方法来触发<select><b-form-select>,并在鼠标悬停上显示下拉选项列表。不使用JQuery或Vue.js以外的任何外部插件。

EN

回答 2

Stack Overflow用户

发布于 2022-04-27 08:32:21

根据我的理解,您希望显示/隐藏<b-form-select> on mouseovermouseleave事件。如果是的话,我几乎没有什么建议,

  • 使用div作为包装器,它将触发mouseovermouseleave事件。我们可以直接通过在鼠标本身附加native来触发鼠标事件,但是一旦它隐藏起来,就没有办法让下拉列表再次回到鼠标上。
  • 您可以通过v-show指令简单地显示/隐藏下拉列表。我们可以轻松地设置鼠标事件的值。

工作演示:

代码语言:javascript
运行
复制
new Vue({
  el: '#app',
  data() {
    return {
      selected: null,
      isVisible: true,
      options: [
        { value: null, text: 'Please select an option' },
        { value: 'a', text: 'This is First option' },
        { value: 'b', text: 'Selected Option' },
        { value: { C: '3PO' }, text: 'This is an option with object value' },
        { value: 'd', text: 'This one is disabled', disabled: true }
      ]
    }
  },
  methods: {
    onOver() {
      this.isVisible = true;
    },
    onLeave() {
      this.isVisible = false;
    }
  }
})
代码语言:javascript
运行
复制
.wrapper-div {
  height: 20px;
}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://unpkg.com/bootstrap-vue@2.22.0/dist/bootstrap-vue.js"></script>
<link rel="stylesheet" href="https://unpkg.com/bootstrap-vue@2.22.0/dist/bootstrap-vue.css"/>
<div id="app">
  <div class="wrapper-div" @mouseover="onOver" @mouseleave="onLeave">
    <b-form-select
                   v-model="selected"
                   :options="options"
                   v-show="isVisible">
    </b-form-select>
  </div>
</div>

票数 3
EN

Stack Overflow用户

发布于 2022-04-26 20:43:09

此解决方案的效果类似于通过单击选择打开它(虽然,不是相同的.)

代码语言:javascript
运行
复制
<template>
  <select ref="mySelect" @mouseenter="hover(true)" @mouseleave="hover(false)" :size="size">
    <option value="1">option 1</option>
    <option value="2">option 2</option>
    <option value="3">option 3</option>
  </select>
</template>

<script>
import {ref} from 'vue';
export default {
  name: "Test",
  setup(){
    const mySelect = ref();
    const size = ref('0');
    return {mySelect, size}
  },
  methods: {
    hover(val) {
      this.size = val ? this.mySelect.length.toFixed(0) : '0';
    }
  }
}
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70831163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档