首页 新闻 会员 周边 捐助

浏览器大小改变 “后” 触发事件

0
悬赏园豆:60 [已解决问题] 解决于 2017-04-21 00:12

做的是web项目,其中有一个div(a)是浮动不固定位置的,永远跟着另一个div(b)。刚开始进来jsp页面的时候我可以通过offset得到div(b)处于浏览器的宽度和高度,从而把把div(a)定位到div(b)之后,但是浏览器的"窗口"大小改变后,我不能够立马的div(b)的最新宽度,但是能得到最新高度。我百度了一下,用延迟500毫秒可以解决这个问题,但是我老大不同意这种做法,所以不知道你们大家遇到这个问题是怎么解决的,有没有浏览器大小改变 “后” 触发事件呢。。。。   谢谢了啊

杀出重围啊的主页 杀出重围啊 | 初学一级 | 园豆:3
提问于:2017-03-16 10:04
< >
分享
最佳答案
0

解决你这个问题

有2种思路

简单点的直接用css,a不要用浮动定位 直接相对b绝对定位 这样a就可以跟着b运动

另一种 就是写一个初始化js函数 在页面加载的时候调用 初始化 a 和b 

然后在window.onresize 将初始化 函数放进去 就可以做到 联动了

第一次怎么做的 第二次就怎么做 第二次的逻辑和第一次一样

如果真的有延时问题 那就settimeout

收获园豆:30
小眼睛老鼠 | 老鸟四级 |园豆:2731 | 2017-03-22 15:57
其他回答(3)
0
    <script>
        //1.  js写法
        window.onresize = function () {
            alert("我会在浏览器尺寸改变时弹出来!")
        }

        // 2.jquery写法
        $(function () {
            $(window).resize(function () {
                alert("我会在浏览器尺寸改变时弹出来!")
            })
        })
    </script>

用这个试试!

收获园豆:10
龙行天涯 | 园豆:1794 (小虾三级) | 2017-03-16 14:03

两种方法都测了都不可以,拿不到div到浏览器最新的宽度,要延迟一下才能拿到到。

支持(0) 反对(0) 杀出重围啊 | 园豆:3 (初学一级) | 2017-03-16 16:48

@TellMe04: div到浏览器最新的宽度?不太明白你要干嘛,可以加个图说明一下。

支持(0) 反对(0) 龙行天涯 | 园豆:1794 (小虾三级) | 2017-03-16 17:32
0

示例:https://jsfiddle.net/Lkfv57Lf/

但是如果div有动画,需要捕捉animation相关的事件,可以参考: https://www.sitepoint.com/css3-animation-javascript-event-handlers/

收获园豆:10
ZyhFish | 园豆:212 (菜鸟二级) | 2017-03-20 18:53
0

用媒体查询

收获园豆:10
Amayer | 园豆:120 (初学一级) | 2017-03-24 08:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册