Window.onresize,vue resize

  Window.onresize,vue resize

  本文主要介绍了window.onresize在vue中的使用,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。

  

目录

   window.onresize的使用重点在以下几点:window . on resize注意事项1。浏览器大小更改响应事件2。谷歌Chrome 3。页面大小更改事件。

  

window.onresize的使用

  

说下重点

  Window.onresize只能在一个组件中使用,如果多个组件调用它,就会被覆盖。所以我的解决方案是在App.vue中使用,获取文档。DocumentElement。clientWidth(即浏览器宽度)并存储在vuex中。其他组件只需要用computed(计算属性)获取vuex的clientWidth,然后通过watch监听ClientWidth的值来触发组件事件。

  App.vue代码

  脚本

  导出默认值{

  名称:“应用程序”,

  已安装(){

  window.onresize=()={

  this.clientWidthResize()

  }

  },

  方法:{

  clientWidthResize () {

  这个。$ store . commit( Tool/resize width ,Number(document . documentelement . client width))

  }

  }

  }

  /脚本

  Storetool.js代码(这里是模块化开发)

  导出默认值{

  命名空间:对,

  状态:{

  客户端宽度:0

  },

  getter:{ },

  突变:{

  resizeWidth(state,clientWidth) {

  state . client width=client width;

  },

  },

  动作:{},

  }

  使用组件

  计算值:{

  clientWidth () {

  归还这个。$ store . state . tool . client width Number(document . document element . client width)

  }

  },

  观察:{

  客户端宽度(val) {

  控制台.日志(val)

  }

  },

  

window.onresize笔记

  

1.浏览器尺寸变化响应事件

  window.onresize=function(){.}

  这里需要注意的是,在onresize响应事件处理中,获得的页面大小参数是改变后的参数。

  //获取更改后的页面宽度。

  var current width=document . body . client width;

  如果您需要使用更改前的参数,您需要创建一个全局变量来保存以前的参数(并且记住在onresize事件中刷新这个全局变量来保存新的参数值)。

  

2.谷歌浏览器中

  window.onresize事件默认会执行两次(偶尔只会执行一次,网上大多数说法认为这是Chrome的bug)。

  解决方法:

  一般来说,建议创建一个新的标志位来延迟复位,并控制它防止它第二次执行。代码如下:

  var firstOnResizeFire=true//Google Chrome onresize事件会执行两次。在这里,添加一个标志来控制它。

  window.onresize=function()

  {

  if (firstOnResizeFire) {

  nflayout . tabscrollermenuadjust(home page width);

  firstOnResizeFire=false

  //0.5秒后复位标志位(Chrome中的window.onresize默认执行两次)

  setTimeout(function() {

  firstOnResizeFire=true

  }, 500);

  }

  home page width=document . body . client width;//再次保存新宽度。

  }

  

3.页面尺寸变更事件

  注意两个方向:增大尺寸和减小尺寸。

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

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: