vue鼠标hover(悬停)改变background-color移入变色问题

目录
  • 鼠标 hover(悬停)改变 background-color
  • 鼠标悬停更换图片/文字内容,动态展示/修改某些属性

鼠标 hover(悬停)改变 background-color

<div id="demo">
   <div @mouseenter="mouseEnter" 
        @mouseleave="mouseLeave" 
        :style="active">
               Hover over me!
   </div>
</div>
var demo = new Vue({
    el: '#demo',
    data: {
        active: ''
    },
    methods: {
        mouseEnter: function(){
            this.active = 'background-color: #cccccc';
        },
        mouseLeave: function () {
            this.active = '';
        },
    }
});

多个颜色 移入变色 变不一样的颜色

<div v-for="(item, index) in list" :key="index">
    <div
      class="dlItem"
      @mouseenter="handleMouseEnter(item)"
      @mouseleave="handleMouseLeave(item)"
      :style="{
      backgroundColor: item.mouseFlag?hoverBgColor:dlColorList[item.name],
      }"
    >
     	{{item.name}} {{item.age}}
    </div>
</div>
  data() {
    return {
	    list: [
        {
          name: "a",
          age: 14,
        },
        {
          name: "b",
          age: 12,
        },
        {
          name: "c",
          age: 15,
        },
      ],
     dlColorList: {
        a: "yellow",
        b: "pink",
        c: "red",
      },
      hoverColorList: {
        a: "gray",
        b: "aqua",
        c: "brown",
      },
      hoverBgColor: "",
    }
}
// 移入
    handleMouseEnter(item) {
      // item.mouseFlag = true;
      this.$set(item,'mouseFlag',true);
      this.hoverBgColor = this.hoverColorList[item.name];
    },
    // 移出
    handleMouseLeave(item) {
      // item.mouseFlag = false;
      this.$set(item,'mouseFlag',false);
      this.hoverBgColor = '';
    },

鼠标悬停更换图片/文字内容,动态展示/修改某些属性

鼠标悬停时:@mouseenter 鼠标离开时:@mouseleave

利用以上来绑定相应方法,例如:

<div @mouseleave="changeImageSrc(1, '')" 
@mouseenter="changeImageSrc(1, 'hover')"> //分别为鼠标悬停时和离开时绑定方法changeImageSrc,并传递参数
          <img :src="circle" alt="" />   //为img绑定地址 circle,在data中声明
          <span class="span" ref="span1">金融多头借贷反欺诈</span>
          <div class="link-icon" ref="shape1"></div>
       </div>
 <div class="text"> {{text}} </div>. //为div绑定文字内容,在data中声明

data中示例:

data() {
    return {
     circle: require("@/assets/poc/circle.png"),
     text:'我是第一块..'
    };
  },

然后,方法中写出来你想改变的事。

 changeImageSrc (key, way) {
      let tempStr = way === 'hover' ? '-click' : ''  //若悬停,将“-click”后缀拼接到图片的名称里,即新图片的名称,鼠标离开则还加载旧图片
      let color = way === 'hover' ? '#8CF8FF' : '#FFFFFF' 
      let opacity = way === 'hover' ? '100%' : '0'    
      //通过传递的参数判断是否悬停,根据需求分别定义不同值的变量
      
      switch (key) {
        case 1:
          this.circle = require(`@/assets/poc/circle${tempStr}.png`)  //换图片 (新图片的名称就是拼接后的名称)
          this.$refs.span1.style.color = color  //为ref绑定的文字 更改颜色
          this.$refs.shape1.style.opacity = opacity //为ref绑定的内容 设置透明度(设置展示与否)
          this.text = '我是第一块' //悬停时更改文字
          break
      }
      //通过传递的参数  分别让不同的部件执行不同的内容
},

完结撒花~

(悬停事件失效时,记得打开控制台看一下报什么错,可能在你不知情的情况下有什么东西未定义,就阻挡了悬停事件的发生过程)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue使用v-for实现hover点击效果

    使用Vue来实现鼠标悬停效果.可以使用事件处理器v-on指令(简写为:@)来完成.为标签绑定mouseenter以及mouseleave事件即可. hover是css中的选择器,用于选择鼠标指针浮动在上面的元素.所以a:hover可用于设置当鼠标悬停在超链接之上时超链接的样式. 在当今比较流行的前端框架里 vue react 都是以数据驱动的形式来修改元素的状态, 而并非是之前使用jq来操作dom元素, 这样效率也是非常低的, 像vue, react 都是以虚拟dom的形式渲染页面, 以数据的变

  • Vue实现鼠标悬浮切换图片src

    本文实例为大家分享了Vue实现鼠标悬浮切换图片src的具体代码,供大家参考,具体内容如下 需求: 1. 鼠标悬浮到图示按钮上面,图片切换成灰色按钮2. 鼠标离开图示按钮,图片切换成回白色按钮 Html部分: <!-- 如果此处的两个鼠标事件不生效,可以在mouseenter后面添加.native后缀 --> <div class="left-btn"      @click="saveTemplate()"      @mouseenter=&qu

  • 如何去掉ElementUI Table的hover变色问题

    目录 去掉ElementUI Table的hover变色 用函数方法 ElementUI使用table时,取消鼠标点击.hover对某一行背景颜色变化 实例 去掉ElementUI Table的hover变色 在自定义Element的时候,有一些自带特效我们不想要,去掉又不知道怎么去掉. 比如Table的hover变色. 其实方法并不是去掉,而是让他看起来不变. 开始↓定义单元格背景色: <el-table      :cell-style="{background:'#f5f5f5'}&

  • vue实现鼠标经过显示悬浮框效果

    本文实例为大家分享了vue实现鼠标经过显示悬浮框效果的具体代码,供大家参考,具体内容如下 项目架构采用vue-cli脚手架搭建的webpack项目 实现的效果如下: 鼠标经过button 右边显示出一个悬浮框 鼠标移出buttom元素 悬浮框隐藏 并且悬浮框可以随着鼠标的移动而改变位置 全部代码如下: <template>   <div class="hello">     <div id="focus_toolTip" class=&

  • vue鼠标hover(悬停)改变background-color移入变色问题

    目录 鼠标 hover(悬停)改变 background-color 鼠标悬停更换图片/文字内容,动态展示/修改某些属性 鼠标 hover(悬停)改变 background-color <div id="demo">    <div @mouseenter="mouseEnter"          @mouseleave="mouseLeave"          :style="active">  

  • vue 鼠标移入移出(hover)切换显示图片问题

    目录 鼠标移入移出(hover)切换显示图片 css实现 js实现 vue鼠标移入移出事件注意事项 发生冒泡事件 一.解决方法 二.定义 三.两对鼠标事件的区别 鼠标移入移出(hover)切换显示图片 css实现 代码: <div @click="exitConnect()" class="exit_hover">        <img class="exit1 mr10" :src="exit" styl

  • vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法

    鼠标移入添加class样式 HTML HTML绑定事件,加入或者移出class为active <div class="col-lg-3 col-xs-6 paddingLeft com_marginBtm10 choosePlan" v-on:mouseover="changeActive($event)" v-on:mouseout="removeActive($event)"> 流量套餐 </div> JS 这里除了a

  • vue鼠标悬停事件实例详解

    具体代码如下所述: v-bind:title="message" <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue实例化</title> </head> <script src="https://cdn.jsdelivr.net/npm/vue/dis

  • vue鼠标悬停事件监听实现方法

    目录 前言 情景描述 解决方法 总结 前言 开发框架为 vue2.x 情景描述 需求是这样的:页面在鼠标悬停(不动)n秒之后,页面进行相应的事件. 比如在我的需求下,是鼠标悬停15秒之后,页面上三个数据弹窗轮询展示. 解决方法 我的思路中 涉及到了三个变量 data(){ return { polling: null, timeCount: 0, judgeTimer: null, } } polling: 是 轮询的时候的一个计时器timeCount: 是 判断鼠标是否移动的一个控制变量jud

  • vue单选按钮,选中如何改变其当前按钮颜色

    目录 vue单选按钮,选中改变其当前按钮颜色 vue一组按钮的选中样式的设置 定义一组按钮,添加点击事件 定义一些变量 实现点击事件 css设置 实现效果 也可以用与其他组件 vue单选按钮,选中改变其当前按钮颜色 html:  <span v-for="(item,index) in state" :key="index"   @click="leftChange(index)"    :class="{ liBackgroun

  • JS实现文字链接感应鼠标淡入淡出改变颜色的方法

    本文实例讲述了JS实现文字链接感应鼠标淡入淡出改变颜色的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>JS实现文字链接感应鼠标淡入淡出改变颜色</TITLE> </HEAD> <BODY> <script l

  • vue 中自定义指令改变data中的值

    通过局部自定义指令实现了一个拖动的指令 html: <div style="position:absolute;width:100px;height:100px;border:1px solid red" v-drag="{set:set}"></div> script: methods:{ set(x,y){ this.data.x=x; this.data.y=y; } }, directives:{ // 拖动的自定义指令 drag(e

  • 解决vue中对象属性改变视图不更新的问题

    常规情况下我们在vue实例的data中设置响应数据.但当数据为对象,我们增加或删除对象属性值时,视图并不触发更新,如何解决这个问题呢? 实例代码如下: let vm = new Vue{ el: '#app', data: { obj: { k: 'v' } }, ... } 有三种解决方案: 方案一:利用Vue.set(object,key,val) 例:Vue.set(vm.obj,'k1','v1') 方案二:利用this.$set(this.obj,key,val) 例:this.$se

  • vue实现路由切换改变title功能

    由于vue项目通常是单页应用,因此在入口文件index.html只有一个title,单页所展示的若干页面只是随着路由的切换而在同一个index.html上不同的渲染而已,因此此时的title属性是不会随着页面的切换而变更的 那么想实现路由切换title变换可以通过vue-router的导航守卫来实现,最简单的的目录结构可如下所示 ├── index.html ├── main.js ├── api │ └── ... # 抽取出API请求 ├── common │ └── constants.j

随机推荐