最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue的hover/click事件如何動(dòng)態(tài)改變顏色和背景色

 更新時(shí)間:2023年11月16日 09:54:11   作者:流浪者°  
這篇文章主要介紹了Vue的hover/click事件如何動(dòng)態(tài)改變顏色和背景色問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

hover/click事件動(dòng)態(tài)改變顏色和背景色

hover和click事件共存,動(dòng)態(tài)改變按鈕背景色和文字顏色,不需要用到增刪class類,增刪class類是樣式寫死,體驗(yàn)不好!

1.父組件內(nèi)容

	  <!-- :changeColor為傳入的顏色數(shù)據(jù) -->
      <head-bar-item path="/home" :changeColor="{color: '#dc5d48', bgColor: '#373833'}">
        <template v-slot:item-text>首頁(yè)</template>
      </head-bar-item>
      <head-bar-item path="/category">
        <template v-slot:item-text>分類</template>
      </head-bar-item>

2.子組件內(nèi)容(配合路由跳轉(zhuǎn))

<template>
  <span
    class="tab-bar-item"
    :style="changeStyle"
    @click="itemClick"
    @mouseover="itemHover"
    @mouseout="removeHover"
  >
    <slot name="item-text"></slot>
  </span>
</template>

<script>
export default {
  name: "HeadBarItem",
  props: {
    path: String,
    changeColor: {
      type: Object,
      default() {
        return { color: "#dc5d48", bgColor: "#373833" };
      },
    },
  },
  data() {
    return {
      isHover: false,
    };
  },
  computed: {
    isActive() {
      return this.$route.path.includes(this.path);
    },
    //計(jì)算屬性改變顏色核心
    //過程:如果按鈕被點(diǎn)擊了,則為用戶傳入的顏色,否則在判斷鼠標(biāo)是否移入改變了isHover,移入則變色,否則為默認(rèn)值
    changeStyle() {
      return {
        color: this.isActive
          ? this.changeColor.color
          : this.isHover
          ? this.changeColor.color
          : "#f8f8f2",
        backgroundColor: this.isActive
          ? this.changeColor.bgColor
          : this.isHover
          ? this.changeColor.bgColor
          : "#545453",
      };
    },
  },
  methods: {
    itemClick() {
      //點(diǎn)擊實(shí)現(xiàn)路由跳轉(zhuǎn)
      this.$router.replace(this.path);
    },
    itemHover() {
      this.isHover = true;
    },
    removeHover() {
      this.isHover = false;
    },
  },
};
</script>

vue頁(yè)面背景顏色修改

由于vue的單頁(yè)面應(yīng)用導(dǎo)致我們的項(xiàng)目只有一個(gè)index.html文件,然而我們?nèi)粝敫淖冺?yè)面的背景色美酒必須動(dòng)態(tài)改變body的背景色才是最直觀最有效的解決方案。

廢話不多說直接上代碼,親測(cè)百分之百有效:

<template>
  <div>
    
  </div>
</template>
 
<script>
export default {
  data() {
    return {};
  },
  mounted(){},
  methods: {},
  //實(shí)例創(chuàng)建之前鉤子函數(shù)--給body添加行內(nèi)樣式
  beforeCreate () {
    this.$nextTick(()=>{
      document.body.setAttribute('style', 'background:#EAECF1')
    })
  },
  //實(shí)例銷毀之前鉤子--移除body 標(biāo)簽的屬性style
  beforeDestroy () {
    document.body.removeAttribute('style')
  }
};
</script>
 
<style lang="scss" scoped></style>

下面說下為什么要在beforeCreate鉤子內(nèi)部用this.$nextTick鉤子包裹,this.$nextTick的作用是dom完全加載完成,所以我們改變body背景顏色是在操作dom

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue項(xiàng)目中input框focus時(shí)不調(diào)出鍵盤問題的解決

    Vue項(xiàng)目中input框focus時(shí)不調(diào)出鍵盤問題的解決

    這篇文章主要介紹了Vue項(xiàng)目中input框focus時(shí)不調(diào)出鍵盤問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 使用vue + less 實(shí)現(xiàn)簡(jiǎn)單換膚功能的示例

    使用vue + less 實(shí)現(xiàn)簡(jiǎn)單換膚功能的示例

    下面小編就為大家分享一篇使用vue + less 實(shí)現(xiàn)簡(jiǎn)單換膚功能的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • web前端Vue報(bào)錯(cuò):Uncaught?(in?promise)?TypeError:Cannot?read?properties?of?nu解決

    web前端Vue報(bào)錯(cuò):Uncaught?(in?promise)?TypeError:Cannot?read?

    這篇文章主要給大家介紹了關(guān)于web前端Vue報(bào)錯(cuò):Uncaught?(in?promise)?TypeError:Cannot?read?properties?of?nu的解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • 面試官常問的題之說一下Vue中setup的props和context

    面試官常問的題之說一下Vue中setup的props和context

    setup是一個(gè)組件選項(xiàng),在組件被創(chuàng)建之前,props被解析之后執(zhí)行,這篇文章主要介紹了Vue中setup的props和context的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-04-04
  • 詳解Vue中狀態(tài)管理Vuex

    詳解Vue中狀態(tài)管理Vuex

    vuex是一個(gè)專門為vue.js設(shè)計(jì)的狀態(tài)管理模式,并且也可以使用devtools進(jìn)行調(diào)試。
    2017-05-05
  • vue中的路由攔截器的作用詳解

    vue中的路由攔截器的作用詳解

    在Vue中,路由攔截器主要用于在導(dǎo)航到某個(gè)路由前或者離開某個(gè)路由時(shí)進(jìn)行攔截和處理,下面給大家介紹vue中的路由攔截器的作用,感興趣的朋友一起看看吧
    2024-07-07
  • vue3封裝Element導(dǎo)航菜單的實(shí)例代碼

    vue3封裝Element導(dǎo)航菜單的實(shí)例代碼

    這篇文章主要介紹了vue3封裝Element導(dǎo)航菜單的實(shí)例代碼,分為菜單數(shù)據(jù)格式示例,控制導(dǎo)航收縮的詳細(xì)代碼,本文通過實(shí)例代碼介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Vue實(shí)現(xiàn)無限加載瀑布流

    Vue實(shí)現(xiàn)無限加載瀑布流

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)無限加載瀑布流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Vue3中導(dǎo)航守衛(wèi)的基本使用方法

    Vue3中導(dǎo)航守衛(wèi)的基本使用方法

    這篇文章主要給大家介紹了關(guān)于Vue3中導(dǎo)航守衛(wèi)的基本使用方法,正如其名vue-router?提供的導(dǎo)航守衛(wèi)主要用來通過跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航,下面需要的朋友可以參考下
    2023-03-03
  • vue3中使用ref語法糖的示例代碼

    vue3中使用ref語法糖的示例代碼

    Vue3提了一個(gè)Ref?Sugar的RFC,即ref語法糖,目前還處理實(shí)驗(yàn)性的(Experimental)階段,今天通過本文給大家介紹vue3中使用ref語法糖的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2022-09-09

最新評(píng)論

江永县| 仪陇县| 六盘水市| 郁南县| 土默特右旗| 常山县| 云阳县| 隆昌县| 延边| 胶州市| 淳安县| 扶余县| 淮滨县| 祥云县| 老河口市| 平武县| 汶川县| 长沙县| 青阳县| 屏边| 开原市| 南涧| 武隆县| 托克托县| 德令哈市| 邵东县| 东莞市| 宜昌市| 隆回县| 汽车| 河南省| 东阳市| 安岳县| 锡林浩特市| 浑源县| 江陵县| 康马县| 淅川县| 静乐县| 盐城市| 中牟县|