<分区>
要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:Stack Overflow question checklist
关闭 9 年前。
<分区>
要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:Stack Overflow question checklist
关闭 9 年前。
我需要像这样创建一个下拉导航栏(右上角)和一个下拉按钮/链接(在左上角)。一旦屏幕缩小到一定的像素宽度,就会显示下拉菜单。如果看不到下拉菜单 (NAV),请将浏览器调小。
它们需要响应浏览器的大小。这是一个移动网站(iphone 和 android)。如果可能,请包括 fiddle 。或详细说明。我不想只使用 boot strap 或任何其他平台 Html5 css3 和 javascript/jquery。请包括动画。
我该怎么做?
非常感谢!
最佳答案
那么你可以使用 CSS media queries在 viewport/screen
时应用不同的样式调整大小:
@media (max-width:600px) {
/* if the viewport is less than or equal to 600px hide the div */
div { display:none; }
}
如果你有这样的标记结构:
<nav>
<span>NAV</span>
<ul>
<li>Home</li>
<li>About</li>
<li>News</li>
</ul>
</nav>
那么 CSS 将是:
ul {
display:block;
}
li {
display:inline-block;
height:30px;
line-height:30px;
}
span {
display:none;
height:30px;
line-height:30px;
cursor:pointer;
}
@media (max-width:600px) {
ul {
display:none;
}
li {
display:block;
}
span {
display:inline;
}
}
然后在您单击 NAV 时显示/隐藏下拉菜单:
$('span').click(function () {
$(this).siblings('ul').slideToggle('slow');
});
查看此 jsfiddle .
现在,当您单击 <span>
再次隐藏下拉菜单,然后将视口(viewport)宽度调整为大于 600 内联菜单列表未显示。这是由于 .slideToggle()
, js/jQuery 将其样式设置为内联属性 <ul style="">
在元素上并覆盖 CSS 样式。您可以通过声明 !important
来绕过它在您的 CSS 上否决 jQuery 样式,但在这种情况下它不会有帮助,因为我们使用 jQuery 来滑动下拉菜单。
一个解决方案是处理 viewport/window
也可以通过 jQuery 调整大小。 CSS 媒体查询监听 window.innerWidth
但这可能会在跨浏览器(尤其是较旧的 IE)上返回不同的值。所以我们需要创建一个返回 viewport-width
的函数:
function viewportWidth() {
var e = window,
a = 'inner';
if (!('innerWidth' in window)) {
a = 'client';
e = document.documentElement || document.body;
}
return e[a + 'Width'];
}
然后在窗口上使用它resize
事件:
$(window).resize(function () {
if (viewportWidth() <= 600) {
$('span').show();
$('ul').hide();
} else {
$('ul').show();
$('span').hide();
}
});
检查这个jsfiddle .
关于javascript - 我需要像包含的示例一样进行下拉和下拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671425/
相关文章:
java - NetworkInfo.isConnected() 返回 true 但没有连接
android - 如何获得android.Manifest.permission.MEDIA_CONTENT_CONTROL的android权限
javascript - 这些javascript minifiers中的任何一个都删除了调试语句吗?
javascript - 应用程序关闭时 setTimeout 不起作用
javascript - 使用 SetTimeout javascript 重复 Ajax 调用,意外执行