![](/img/trans.png)
[英]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.