如果浏览器高于或低于某个高度,我正在使用以下代码选择不同的样式表。当你登陆页面时工作得很好,或者如果你调整窗口大小然后刷新。但有没有办法我可以调整这个来动态选择正确的样式表,因为窗口调整大小?
if (window.innerHeight <= 900) {
loadcss('css/container_sm.css');
} else {
loadcss('css/container_lg.css');
}
function loadcss(file) {
var el = document.createElement('link');
el.setAttribute('rel', 'stylesheet');
el.setAttribute('type', 'text/css');
el.setAttribute('href', file);
document.getElementsByTagName('head')[0].appendChild(el);
}
答案 0 :(得分:1)
也许值得研究一下现有的库,例如twitter bootstrap?它们提供开箱即用的响应式样式表,可在调整窗口大小时自动调整。
答案 1 :(得分:0)
您可以为脚本添加事件句柄。使用jquery
$(window).resize(function(){
if (window.innerHeight <= 900) {
loadcss('css/container_sm.css');
} else {
loadcss('css/container_lg.css');
}
})
没有jquery window.onresize = function(){}
答案 2 :(得分:0)
以下是我们要做的事情:
container_lg.css
或container_sm.css
并将其删除。以下是代码:
var SMALL = 0;
var BIG = 1;
var previousSize = null;
var thresholdHeight = 400;
var firstCall = true;;
function selectCSS()
{
if ((previousSize == null || previousSize == BIG) &&
window.innerHeight <= thresholdHeight) {
removeOldCSS();
loadNewCSS('css/container_sm.css');
previousSize = SMALL;
} else if ((previousSize == null || previousSize == SMALL) &&
window.innerHeight > thresholdHeight) {
removeOldCSS();
loadNewCSS('css/container_lg.css');
previousSize = BIG;
}
}
function removeOldCSS(file)
{
var headNode = document.getElementsByTagName('head')[0];
var linkNodes = document.getElementsByTagName('link');
for (var i = 0; i < linkNodes.length; i++) {
var linkNode = linkNodes[i];
if (linkNode.parentNode == headNode &&
linkNode.href.search(/css\/container_(?:sm|lg).css$/) >= 0) {
headNode.removeChild(linkNode);
}
}
}
function loadNewCSS(file)
{
var el = document.createElement('link');
el.setAttribute('rel', 'stylesheet');
el.setAttribute('type', 'text/css');
el.setAttribute('href', file);
document.getElementsByTagName('head')[0].appendChild(el);
}
window.onload = selectCSS;
window.onresize = selectCSS;
答案 3 :(得分:0)
试试这个:
document.body.onresize = function (){
if (window.innerHeight <= 900) {
loadcss('css/container_sm.css');
} else {
loadcss('css/container_lg.css');
}
};