比如某个元素,本身是隐藏的(display: none),我向元素添加了内联样式,使它显示出来(display: block)。那么,这个元素在什么时候会显示出来?是立即生效,在下一段代码中就能检测到?还是等Javascript函数返回,主导权交给浏览器之后才生效?
我在修改属性后立即用setTimeout()调用一个函数,时间设为0,那么在这个函数中能检测到元素的变化吗?

解决方案 »

  1.   

    1楼,js不是单线程,不要说线程LZ你到底想什么结果
      

  2.   

    某个元素事先是隐藏的(display: none),我想先修改某元素内部的一些数据,然后马上检测到它的长宽,然后让它在合适的位置显示出来。
    修改了数据后,我准备把元素样式改为(display: block; visibility: hidden;),这样该元素可以在不显示的情况下得到长宽。
    我获取了长宽后,先修改元素的位置(left: xxx; top: xxx;),再让它显示出来(display: block; visibility: visible;)
      

  3.   

    可以在修改之后的下一段代码里获取元素的长宽吗?
    因为我不想用setTimeout(),所以来问问是不是一定可以立即获取到。
      

  4.   


    原来是说这个啊 放心吧 可以的
    不过tips:setTimeout不起这些作用
    因为他并不是多线程,而是模拟一个效果而已 切忌被表面忽悠