【发布时间】:2012-05-26 23:09:34
【问题描述】:
我正在尝试通过 CSS 媒体查询从我的“桌面”网站创建一个移动网站。
我有一个简单的下拉菜单(桌面),可以转换为下推菜单(移动)。浏览器宽度超过 768 像素时为桌面加载 css,而在 767 像素以下的任何地方加载移动下推菜单。
问题是下推菜单需要一个 js 文件才能正常工作。 js文件强制隐藏包含菜单的div。因此,在 767 像素的浏览器宽度下,下推工作正常,在 768 像素时,桌面导航不可见。
我是 JavaScript 和 Jquery 的新手,但我尝试使用我的最少知识使其有效运行。我需要它尽可能简单,因为站点必须尽可能小。
目前这是我最接近正常运行的方法:
function hideDiv(){
if ($(window).width() < 768) {
$(".togglebox").hide();
}else{
$(".togglebox").show();
}
}
//run on document load and on window resize
$(document).ready(function () {
//on load
hideDiv();
//on resize
$(window).resize(function(){
hideDiv();
});
});
$(document).ready(function(){
$(".togglebox").hide();
$("h1").click(function(){
$(this).next(".togglebox").slideToggle("slow");
return true;
});
});
注意事项:
切换框 div 需要隐藏才能使下推菜单起作用,但相同的 div 需要在超过 768 像素的宽度上可见,以便桌面导航可见。
上面的代码使它工作正常,但是当我输入页面 url 时,在我尝试调整浏览器宽度之前没有导航。我知道我有两个 (document).ready 函数,也许这就是问题所在,但是我尝试过使用代码,但没有任何运气。一定有一个我忽略的简单解决方案?
我想可能只在 767px 宽度以内执行下推菜单功能,然后在此之上执行任何操作以简单地显示切换框 div。
【问题讨论】:
-
Java 和 JavaScript 是完全不同的编程语言。
-
hardcode.nl/archives_139/… 可能会让您感兴趣。 b-)
标签: jquery media-queries document-ready