原生js监听div id为main的height变化 并传递给function 不要jquery!

JavaScript025

原生js监听div id为main的height变化 并传递给function 不要jquery!,第1张

window.onload=function(){

    var mh=document.getElementById("main").offsetHeight

    setInterval(function(){

        var mh1=document.getElementById("main").offsetHeight

        if(mh1!=mh){

            console.log("main的height变化了!")

            mh=mh1

        }

    },100)

}

首先设置两个div,假设给出id分别为a和b,b始终为a的宽度的二分之一。

js代码为:

var diva=document.getElementById("a")

var divb=document.getElementById("b")

var wid=diva.offsetWidth

function jt(){//定义监听a大小变化的函数

var wid1=diva.offsetWidth//获取宽度

if(wid1!=wid){

wid=wid1

resizeb()

}

setTimeout("jt",100)

}

function resizeb(){

divb.style.width=wid*0.5//改变b的大小

}

jt()

但是这样写是在不知道a的大小为什么变化的情况下,这样写很耗cpu,如果很明确a的大小变化原因,直接给a绑定事件就可以了