91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue中的window.onresize怎么使用

發布時間:2022-04-19 13:59:27 來源:億速云 閱讀:322 作者:iii 欄目:開發技術

本篇內容主要講解“vue中的window.onresize怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“vue中的window.onresize怎么使用”吧!

window.onresize的使用

說下重點

window.onresize只能在一個組件中使用,如果多個組件調用則會出現覆蓋情況,所以我的解決方案是在App.vue中使用,獲取document.documentElement.clientWidth(即瀏覽器寬度)存放在vuex中,別的組件只需要用computed(計算屬性)將vuex的clientWidth獲取,然后通過watch監聽clientWidth的值,即可觸發組件事件

App.vue代碼

<script>
export default {
  name: 'app',
  mounted () {
    window.onresize = () => {
      this.clientWidthResize()
    }
  },
  methods: {
    clientWidthResize () {
      this.$store.commit('Tool/resizeWidth', Number(document.documentElement.clientWidth))
    }
  }
}
</script>

store中tool.js代碼(此處進行模塊化開發)

export default {
  namespaced: true,
  state: {
    clientWidth: 0
  },
  getters: {},
  mutations: {
    resizeWidth(state, clientWidth) {
      state.clientWidth = clientWidth;
    },
  },
  actions: {},
}

組件使用

computed: {
  clientWidth () {
    return this.$store.state.Tool.clientWidth || Number(document.documentElement.clientWidth)
  }
},
watch: {
  clientWidth (val) {
    console.log(val)
  }
},

window.onresize筆記

1.瀏覽器尺寸變化響應事件

 window.onresize = function(){....}

這里需要注意的是,onresize響應事件處理中,獲取到的頁面尺寸參數是變更后的參數。

// 獲取到的是變更后的頁面寬度
var currentWidth = document.body.clientWidth;

如果需要使用到變更之前的參數,需要建一個全局變量保存之前的參數(并且記得在onresize事件中刷新這個全局變量保存新的參數值)。

2.谷歌瀏覽器中

window.onresize事件默認會執行兩次(偶爾也會只執行一次,網上大部分說法認為這是Chrome的bug)。

解決方法:

一般來說推薦新建一個標志位 延時復位控制它不讓它自己執行第二次,代碼如下:

var firstOnResizeFire = true;//谷歌瀏覽器onresize事件會執行2次,這里加個標志位控制
 
window.onresize = function()
{
 if (firstOnResizeFire) {
  NfLayout.tabScrollerMenuAdjust(homePageWidth);
  firstOnResizeFire = false;
  
  //0.5秒之后將標志位重置(Chrome的window.onresize默認執行兩次)
  setTimeout(function() {
   firstOnResizeFire = true;
        }, 500);
 } 
 homePageWidth = document.body.clientWidth; //重新保存一下新寬度
}

3.頁面尺寸變更事件

注意要分為尺寸增大和尺寸變小兩個方向考慮。

到此,相信大家對“vue中的window.onresize怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

日土县| 阿拉善盟| 唐山市| 安丘市| 菏泽市| 定南县| 乌拉特前旗| 宁武县| 综艺| 弋阳县| 融水| 天镇县| 大埔县| 兰州市| 磐安县| 玉山县| 武城县| 浦北县| 自治县| 乌恰县| 横山县| 内江市| 和平县| 新昌县| 鸡东县| 海阳市| 赣榆县| 海林市| 威信县| 嫩江县| 治多县| 肥城市| 西盟| 东阿县| 二手房| 壤塘县| 当涂县| 汾西县| 罗田县| 临洮县| 旬邑县|