vue中动态添加class修改div宽高无法触发addEventListener(“resize“)

这篇具有很好参考价值的文章主要介绍了vue中动态添加class修改div宽高无法触发addEventListener(“resize“)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

vue项目中想实现手动使一个div全屏铺满。我使用得是动态class然后改变布局。

问题描述

在触发事件动态修改class发现resize没有触发。

const toggle = () => {
  isDivscreen.value = !isDivscreen.value
  nextTick(() => {
    isDivscreen.value ? (props.el as HTMLElement).classList.add('_div-full-fixed') : (props.el as HTMLElement).classList.remove('_div-full-fixed')
  })
};

-------------------css-----------------------
._div-full-fixed {
  position: fixed !important;
  left: 0;
  top: 0;
  z-index: 9999;
  background-color: red;
  width: 500px;
  height: 500px;
}
.screenfull-svg {
  color: $base-navbar-icon-color;
  display: inline-block;
  cursor: pointer;
  font-size: 30px;

  &:hover {
    color: #00dff0;
  }
}

---------------resize-----------
this.dom.addEventListener("resize", this.resize);

原因分析:

具体原因没有找到--------无语


解决方案:

因为不知道什么原因只能替代了,网上说resize消耗很大,MutationObserver与ResizeObserver更节省性能。文章来源地址https://www.toymoban.com/news/detail-533142.html

const resizeObserver = new ResizeObserver(this.resize);
      resizeObserver.observe(this.dom);

到了这里,关于vue中动态添加class修改div宽高无法触发addEventListener(“resize“)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何获取data中的值?如何取出,存储数据?跳转外部链接?与非本机联调?修改头部标题?动态更改样式?动态获取设备宽高?(微信小程序)

    工具:微信开发者工具 1.如何获取data中的值? 使用 this.data. 2.如何修改data中的值?使用 this.setData({key: value}),其中key为data中修改的数据,value为要修改的值 3.如何存储数据? 1.简单数据wx.setStorage({ key: ‘key’,data: value} 2.对象类数据wx.setStorage({ key: ‘key’,data: {}} 4.跳转外部

    2024年02月10日
    浏览(66)
  • vue2中开发时通过template中的div等标签自动输出对应的less形式带层级的class,只显示带class的

    1.写完静态不是要写less吗,自动生成一下实现 this.getLevelClass(\\\'domId\\\'); domId是自定义的class名称,跟根据自己的需要设置  查看一下效果: div id=\\\"domId\\\" class=\\\"domId\\\"             div class=\\\"aa abc\\\"                 aa                 div class=\\\"a1\\\"                     div class=\\\"a1-1\\\"/di

    2024年02月16日
    浏览(38)
  • 微信小程序中如何动态添加 class 属性

    在微信小程序中,你可以使用setData方法来动态添加class。首先,在你的页面的js文件中,定义一个变量来存储需要动态添加的class,例如: 然后,在需要动态添加class的地方,使用setData方法来更新dynamicClass的值,例如: 最后,在你的wxml文件中,使用动态绑定的方式来添加cl

    2024年02月11日
    浏览(43)
  • javassist 动态修改 jar 包中 class

    Javassist(Java Programming Assistant)是一个用于在运行时操作字节码的库,它可以用于动态修改和操作Java类。使用Javassist,可以通过修改现有的类或创建新的类来实现动态修改Jar包中的类。 下面是一个简单的示例,展示了如何使用Javassist在运行时动态修改Jar包中的类: 上述示例

    2024年02月11日
    浏览(44)
  • element-ui实现动态添加表单项并实现事件触发验证验证

    需求分析:点击新增后新增一个月度活动详情,提交时可同时提交多个月度活动详情。点击某一个月度活动信息的删除后可删除对应月度活动信息 H5部分: 抽取H5部分的主要框架: js部分 页面中form数据对象声明 表单验证 完整demo 整体效果及功能: 删除某个月度活动:

    2024年02月03日
    浏览(45)
  • vue中将新添加的div标签自动定位到可视区域内

    可以结合使用Vue的ref和scrollIntoView()方法来实现

    2024年02月11日
    浏览(39)
  • JQuery动态生成的按钮无法触发问题与解决方法

    利用JQuery动态添加的按钮无法通过 $(selector).click 方法触发点击事件 append中的节点是在整个文档加载完之后开始添加的, 因此页面不会为append的元素初始化添加点击事件 使用$(document).on()方法添加点击事件

    2024年01月20日
    浏览(37)
  • 微信小程序实现动态添加class的功能,其实这样做就可以了

    在微信小程序中,实现一个循环列表某些元素动态添加class,以设置选中状态的功能 **思路:**网页中可能使用document.getElementById().addClass()实现,但是在小程序中无法使用document获取元素。小程序可以构造一个数据结构,根据业务需求动态修改数据去判断是否添加选中样式。具

    2024年02月11日
    浏览(45)
  • [pyqt5]动态加载ui文件并给菜单的一个子菜单添加触发事件

    场景:大家都知道如果直接将ui文件转成py文件后,如果产品经理要你加一些界面控件,你就得改转换后代码这样很麻烦,我们可以直接加载ui文件,然后编写触发事件,因此写了一个简单案例,证明切实可行,首先我们设计一个简单界面,就是加一个菜单-writer就可以了  然后

    2024年02月12日
    浏览(57)
  • vue实现动态class

    总结一下,vue实现动态class主要通过以下三种方式

    2024年01月20日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包