【发布时间】:2018-07-05 03:26:35
【问题描述】:
我正在尝试使用 HTML5、CSS3 和 JavaScript 制作完整的 RWD 网页。
我在我的 CSS 样式表文件中使用了 @media 来设置 aside width:0;和隐藏的溢出,在小型设备中。我添加了一个调用 java 脚本以最小化 article 和最大化 aside 菜单的按钮,以及另一个用于最小化 aside 并返回 article 的按钮。
调用如下代码:
function openaside() {
document.getElementById("article").style.width = "0";
document.getElementById("aside").style.width = "100%";
document.getElementById("showasidebtn").style.width = "0";
document.getElementById("hideasidebtn").style.width = "25pX";
}
function closeaside() {
document.getElementById("article").style.width = "100%";
document.getElementById("aside").style.width = "0";
document.getElementById("showasidebtn").style.width = "25px";
document.getElementById("hideasidebtn").style.width = "0";
}
我的页面可以正确响应屏幕大小,并且我的脚本运行良好。但是,当我使用这些脚本更改样式然后更改屏幕大小时,我的 article 和 aside 宽度不会动态更改,直到我刷新页面。
我添加了以下 JavaScript 代码以在调整屏幕大小时刷新页面:
window.addEventListener("resize", onresize);
function onresize(){
location.reload(false)
}
感谢每一位我找到方法的人,而不是
function onresize(){
location.reload(false)
}
我用:
function onresize(){
document.getElementById("article").style.width = "";
document.getElementById("aside").style.width = "";
document.getElementById("showasidebtn").style.width = "";
document.getElementById("hideasidebtn").style.width = "";
}
但是当屏幕在手机中移动(例如滚动)时,文章会最小化。所以现在手机用户应该先滚动然后打开侧边菜单。你能帮我找到更好的方法吗?当屏幕宽度超过一定数量时,有什么方法可以调用脚本?
【问题讨论】:
-
切换类会更简单
-
删除 onresize 监听器并尝试
.width = "calc(100%)"等。当屏幕尺寸发生变化时,它将重新计算 100%。 -
你可以在 www.farshidete.ir 上看到它
标签: javascript html css responsive-design responsive