jQuery.thoggle()和媒体查询
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
:
(Sass):
.site-nav-wrapper{
//Mobile First
display:none;
@include breakpoint($breakpoint-lg) {
display:block;
}
}
有没有办法重置toggle()
函数存储的内容?
toggle
使用内联样式,它覆盖了您在样式表中所做的一切。
为了获得所需的结果,您应该使用一个特殊的hidden
类来隐藏元素,而应该使用toggleClass
。
SASS:
.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();
});
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 触发媒体查询断点时刷新页面
- 媒体查询/matchMedia上的脚本
- 使用按钮和媒体查询切换显示状态
- 加载dom后禁用媒体查询
- 将语句与jquery相结合,并使用媒体查询来实现返回页首按钮
- 媒体查询与Javascript相结合
- 访问CSS媒体查询中的屏幕宽度和高度
- 使用媒体查询和angular更改移动设备中ng href的值
- 媒体查询和调整现成的网站
- 有没有一种方法可以修改在使用javascript的媒体功能的媒体查询下创建的样式
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- @媒体查询在桌面浏览器中有效,而在移动浏览器中无效
- css媒体查询请求后刷新jQuery插件
- jQuery.thoggle()和媒体查询
- 使用媒体查询设置背景图像的不透明度
- 媒体查询:如何仅定位平板电脑
- 如何将垂直选项卡式内容面板更改为具有媒体查询和 jquery 的响应式可折叠面板
- 根据浏览器屏幕大小和媒体查询执行 php 代码
- CSS 媒体查询 - 最小设备宽度和最大设备宽度