时间:2021-05-26
需求:
1. 页面部分元素的尺寸需要根据实际打开时浏览器尺寸进行设置;
2. 页面打开后,调节浏览器窗口大小时需要动态调节部分元素的尺寸;
需要注意的点:
window.onresize只能在项目中一处进行引用触发,如果在多个地方进行引用触发,会导致只有1个触发事件生效。
解决“多个组件都需要触发”的方案只能是通过一个地方触发后通过组件间通信进行触发。
(以调节class为myDiv的div的宽度为例)
解决需求1的方案:
html
<template> <div class="example"> <div class='myDiv' v-bind:style="{width: myWidth}"></div> </div></template>script
<script> export default { // 其余的忽略不写了 data () { return { myWidth: (window.innerWidth - 500) + 'px' } } }</script>如上设置后,页面打开时便会动态计算myWidth的值(拼接了'px'后便是字符串属性了)
然后将这个值通过 v-bind:style=”{width: myWidth}” 赋值绑定到我们需要设置的div上了,需求1完成。
因为这个值是载入页面的时候就绑定了,是固定的值。那么在使用过程中,如果用户操作调节了浏览器窗口的大小,那么应该需要触发事件改变这个值才能使组件具有动态调节的效果,这个就是需求2了:
解决需求2的方案:
html
<template> <div class="example"> <div class='myDiv' v-bind:style="{width: myWidth}"></div> </div></template>script
<script> export default { // 其余的忽略不写了 data () { return { myWidth: (window.innerWidth - 500) + 'px' } }, mounted () { // 注:window.onresize只能在项目内触发1次 window.onresize = function windowResize () { // 通过捕获系统的onresize事件触发我们需要执行的事件 this.myWidth = (window.innerWidth - 500) + 'px'; } } }</script>需要注意的点:
window.onresize只能在项目中一处进行引用触发,如果在多个地方进行引用触发,会导致只有1个触发事件生效。
解决“多个组件都需要触发”的方案只能是通过一个地方触发后通过组件间通信进行触发。
以上这篇Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用Axure实现窗口改变大小时事件,课程将采用案例的方式,学习窗口改变大小时事件的实现效果及方法。案例选择了窗口改变大小时设置适应窗口尺寸的交互实例祥细介绍。软
调节钮被按下事件所属对象:调节器操作系统支持:Windows语法:无返回值_调节器_调节钮被按下(按钮值)例程说明:只要调节器的调节按钮一被按下,就触发此事件,
vue表单验证按钮事件交由父组件触发,不直接再子组件上操作的方法子组件://内容部分SubmitReset子组件js部分exportdefault{data()
这是个让人每次改变页面窗口的大小时很郁闷的方法,尤其在IE浏览器中,稍微动下窗口边框,就会触发很多次事件。更让人蛋疼的是在resize事件中包含某些页面内容处理
主要通过input输入事件配合css的transform动态改变实现这种效果。实际调试过程中,input组件bindinput事件触发后回调的detail对象,