如何在渲染前在窗口调整大小事件中修改CSS
How to modify CSS in window resize event before rendering?
我有两个带有style="float:left;"
的div元素。我根据窗口的大小设置边距、宽度等。当窗口较小时,我会降低DIV的宽度和边距CSS属性值,使它们显示在一起(而不是下面)。
这在Firefox中看起来不错,但在Chrome和Opera中,DIV在我的JavaScript运行之前会跳到彼此下面一段时间。过了一会儿,屏幕又好看了。
问题是:有没有一种方法可以在浏览器上看到调整大小事件的效果之前捕获window.onresize
事件并操纵CSS?
您可以使用媒体查询。这些是响应式设计的首选方法。
CSS
div {
margin-left: 20px;
}
@media (max-width: 600px) {
div {
margin-left: 5px;
}
}
在本例中,在宽度为600px或更低的屏幕上,div的margin-left
为5px。这是CSS的一部分,所以不用等待加载,它会与CSS的其余部分一起加载。
这是因为Firefox在呈现页面之前等待javascript加载。Chrome和Opera显示页面,无论javascript是否已加载。尝试编写javascript,将受影响的主体最初设置为visibility: hidden;
,并在javascript执行后将其更改为"visibility:visible;"。
更新:
在css中设置visibility: hidden;
。
并将其添加到您的<head></head>
:中
<noscript>
body { visibility: visible; }
</noscript>
这将确保在加载javascript之前主体是不可见的。如果设备未启用javascript,则默认为visibility: visible;
。
相关文章:
- 收听ckeditor小部件事件
- 使用onClick事件扩展Aviarc容器小部件
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 剑道窗口还原在最小化然后还原时不调用调整大小事件
- 小部件内类中的气泡事件
- 在 JavaScript 事件中添加最小值和最大值
- 浏览器窗口最小化/最大化事件
- AngularJS没有't在Django管理日期小部件上的jQuery事件后更新ng模型
- 从 onChange 事件中获取小部件的旧值
- 用硒填充和操作jqGrid的搜索小部件似乎不会触发DOM表单事件
- 播放,Soundcloud oembed 小部件的暂停事件
- 小部件中的杜兰达尔事件
- SoundCloud HTML5 小部件未触发加载进度事件
- Dijit 1.7+ 小部件:如何将事件逻辑与现在分开
- 设置剑道小部件事件的回调函数
- 将Google Analytics(分析)点击事件跟踪器添加到Wordpress社交登录小部件元素
- 自定义点击事件触发器,小部件jquery
- 谷歌日历-事件旁边的小图标
- 按钮事件中window.location更改时,IE9 onbeforeunload调用了两次..最小繁殖
- 阻止jQuery小部件事件