vuejs2 - Vue我想要一个图像跟随鼠标

标签 vuejs2

我在使用 Vue 组件时遇到问题 https://jsfiddle.net/shawnswebsites/fep1p02c/20/ .我在组件中有一个 div,当用户的鼠标进入该 div 时,我想要显示一个图像并且我希望图像跟随鼠标。

new Vue({
  el: '#app',
  data: {
  	showImage: false,
    page: {
    	left : 0,
      top: 0
      },
     },
     methods: {
            onMouseMove(e) {
                console.log('page x: ' + this.page.left);
                this.page.left = e.pageX;
                this.page.top = e.pageY;
            }
     }
  })
.container {
  height: 400px;
  width: 400px;
  border: 1px solid #FFF;
  background-color: grey;
  margin: 40px;
}

.image {
        position: absolute;
        z-index: 1000;
        overflow:hidden;
}
<script src="https://unpkg.com/vue"></script>

<div id="app">
  <div class="container"           
  @mouseenter="showImage = true"
             @mousemove.self="onMouseMove($event)"
             @mouseleave="showImage = false">
    
  </div>
  <img v-show="showImage" class="image" src="http://via.placeholder.com/350x150" :style="{ left: page.left + 'px', top: page.top + 'px' }">
</div>

我使用@mouseenter 来显示图像,使用@mouseleave 来隐藏图像。然而,当我在 div 上滚动时,@mouseleave 仍然被调用,这导致图像闪烁。有什么帮助吗?

最佳答案

如前所述Oxcarga在下面的评论中,您需要将 pointer-events: none; 添加到您的图像样式中:

.image {
    position: absolute;
    z-index: 1000;
    overflow:hidden;
    pointer-events: none;
}

关于vuejs2 - Vue我想要一个图像跟随鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49343282/

相关文章:

javascript - 如何更新json数组中的特定值

npm - 无法加载配置 "plugin:vue/no-layout-rules"来扩展

javascript - axios.all的动态使用

javascript - 使用 django REST 和 Vue.js 传播不可迭代实例的无效尝试

javascript - Nuxtjs 无法在本地主机 :5000 but its working in 127. 0.0.1:5000 中工作

vue.js - Vue Js - 如何从 url 获取 slug?

javascript - 如何使用 VueJS 创建动态/原始 HTML

javascript - 如何使用 Vuejs 将类 onclick 事件切换到 lis 列表中的 <li> 元素?

vue.js - 我在 Nuxt 2.14.0 中运行的是什么版本的 Vue?

vue.js - Vue中如何处理错误