【发布时间】:2015-12-17 08:00:32
【问题描述】:
- 场景
我正在开发一个响应式网站,使用 CSS @media 标签和 jQuery 的 on(resize) 函数。
主网页的容器在 CSS 文件中设置为宽度和高度分别为 100vw 和 100vh。
使用 jQuery,我可以调整网站上显示的元素的大小。
- 问题
除了手机上的浏览器(例如运行在 Android 上的 Google Chrome、iOS Safari、Android 浏览器等)之外,响应式设计实现运行良好。
移动网络浏览器通常会显示地址栏,向下滚动时会将其隐藏。再次向上滚动时,它们会再次显示。
这种效果会不断调整我的网页大小,因为容器的大小会根据视口的高度进行调整,显示地址栏时会变小,隐藏地址栏时会变大,而我没有不希望发生这种情况。
一个理想的解决方案可能是忽略地址栏,这样浏览器就不会改变视口大小,我认为这对于传统的
js代码是不可能的。-
另一个选项可能包括避免每次地址栏显示和隐藏时执行调整大小方法。也就是说,页面应该在调整大小时改变其容器的高度,在显示和隐藏地址栏时不应该。
李>
我已经尝试过这样做,但是,我无法开发这两个选项中的任何一个(在第二种情况下,我无法弄清楚如何同时实现这两个条件...... .)
有什么办法可以做到吗?
- 代码
JSFIDDLE
http://jsfiddle.net/kouk/emo7amuh/
HTML
<div class="container" id="first"> </div>
<div class="container" id="second"> </div>
<div class="container" id="third"> </div>
<div class="container" id="fourth"> </div>
<div class="container" id="fifth"> </div>
CSS
div.container {
height: 100vh;
width: 100vw;
}
div.container:nth-child(2n+1) {
background-color: crimson;
}
div.container:nth-child(2n) {
background-color: turquoise;
}
JS(替代#2 - 测试)
/* This function blocks size-change on resize (it only works on reload) */
$(document).ready(function ($) {
function constantHeight() {
$("div.content_container").height($(window).height() + 60);
}
constantHeight();
});
【问题讨论】:
标签: android jquery html css responsive-design