[英]Using JQuery toggle seems to interfere with CSS media queries for flexbox
[英]jQuery .toggle() and Media Queries
我在button
元素上使用.toggle()
:
$("header button").click(function(event){
$(".site-nav-wrapper").toggle();
event.preventDefault();
});
这非常有效。 问题是如果button
切换到display:none
然后我更改设备方向,触发我的桌面媒体查询,尽管我重新强制display:block;
在桌面媒体查询上,该button
仍然切换为display:none
:
(萨斯):
.site-nav-wrapper{
//Mobile First
display:none;
@include breakpoint($breakpoint-lg) {
display:block;
}
}
有没有办法重置toggle()
函数存储的内容?
toggle
使用内联样式,它会覆盖您在样式表中执行的任何操作。
要获得所需的结果,您应该使用特殊的hidden
类来隐藏元素,而是使用toggleClass
。
上海社会科学院:
.site-nav-wrapper.hidden {
display: none;
@include breakpoint($breakpoint-lg) {
display: block;
}
}
JS:
$("header button").click(function(event){
$(".site-nav-wrapper").toggleClass('hidden');
event.preventDefault();
});
如果我没记错, toggle
在元素的style
属性上将display
属性设置为none
。 如果要强制按钮以“桌面”方向显示,则需要在桌面断点中包含!important
声明。
或者,您可以监听onorientationchanged
并切换到站点的桌面版本(取消切换/激活需要激活的所有内容)。
为什么不避免切换,所以媒体查询没有问题。
$("header button").click(function(event){
$(".site-nav-wrapper:visible").hide();
$(".site-nav-wrapper:hidden").show();
event.preventDefault();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.