为了账号安全,请及时绑定邮箱和手机立即绑定

Edge浏览器不支持resize事件,怎么解决?

Edge浏览器不支持resize事件,怎么解决?

交互式爱情 2019-03-05 13:15:41
现在需要字体自适应屏幕宽度,当屏幕触发resize时,字体相应的增大或缩小,但是发现在微软最新浏览器Edge下,屏幕宽度改变却无法改变字体大小,代码如下:注:这是vue.js写的代码,还有一个奇怪的问题是,(function......)(window,document);代码块写在mounted事件里面不行(字体显示非常小,执行change();方法,字体数字大了,屏幕上的字体却很小),写在created事件里面才可以。<template>  <div style="position: relative;left: 0;right: 0;bottom: 0;background: #000; height: 500px;">        <div class="prop-lang" id="prop-lang">          <div>            就是这个垃圾浏览器          </div>        </div>  </div></template><script>export default {  name: "index",  created() {    (function(win,doc){      function change(){        doc.documentElement.style.fontSize=doc.documentElement.clientWidth/375*20+'px';      }      change();      win.addEventListener('resize',change,false);    })(window,document);  },  data() {    return {            };  },};</script><style>.prop-lang div{    font-size: 0.8rem;    font-weight: 100;    font-family: "Arial","Microsoft YaHei","黑体","宋体",sans-serif;    color: #ffffff;    text-align: center;}</style>补充:问题已经找到了,和vue.js没关系,是因为设置了全局样式html, body{ font-size: 14px; },但是又不能去掉,该怎么解决呢?
查看完整描述

5 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

问题解决了,虽然感觉不是很合理。


把需要(准备)用 rem 来控制字体大小的元素的 rem 改为 %,然后将需要控制字体大小的元素动态设置字体大小就行了:


doc.getElementById('adv-rules-wrap').style.fontSize=doc.documentElement.clientWidth/375*20+'px';


查看完整回答
反对 回复 2019-03-14
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

resize事件是否绑定成功 是否每次宽度改变执行了change方法
如果change执行了那是否fontSize没有赋值成功

查看完整回答
反对 回复 2019-03-14
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

window上绑定事件应该不用等待具体内容渲染完成的,所以先开始的created钩子和后开始的mounted钩子应该都是可以对window绑定resize事件的。

绑定事件的时候可以先检测一下addEventListener方法是否可用,如果不可用可以兼容使用attachEvent(但是IE9以后包括Edge也已经通用了addEventListener)

另外created钩子和mounted钩子是自动执行的,没有必要用自执行函数,当然使用的话也没有关系

具体我可以找个Edge浏览器试一下


查看完整回答
反对 回复 2019-03-14
?
侃侃无极

TA贡献2051条经验 获得超10个赞

其实,如果是想做到实现根据屏幕尺寸大小来调整整体网页字体大小可以这样实现:
1.设置html,body{font-size:10px;} 设10是因为等会儿方便计算。
2.网页标题,内容font-size全部用rem单位。具体rem可自行百度
3.利用css的media媒体查询,检测不同分辨率下设置不同的html,body的font-size大小即可实现网站整体字体大小调整

查看完整回答
反对 回复 2019-03-14
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

建议CSS能完成的就尽量不要用JS
用媒体查询吧,根据屏幕尺寸划分几个范围,分别设定html,bodyfont-size,楼上说的很清楚了

查看完整回答
反对 回复 2019-03-14
  • 5 回答
  • 0 关注
  • 1010 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信