Javascript 如何在jquery和css中使用带幻灯片切换菜单的媒体查询
对JS来说有点新。我有一个典型的带有汉堡按钮的响应菜单。它可以正确切换,但如果切换到不显示菜单并切换到更大的屏幕,则即使我的媒体查询默认为显示:块,菜单也不会显示。 当我打开菜单时也是一样的。如果我以较小的分辨率打开菜单,它将在较大的屏幕上显示我的菜单。无论屏幕分辨率如何,my.expand类都会保持不变,并且不会默认为my media query设置 我该如何解决这个问题?这是我的代码,我将post-css与mixin(scs和媒体查询)结合使用,并将ES6类用于JS(我想这是一种非正统的做法,但正在试验) CSSJavascript 如何在jquery和css中使用带幻灯片切换菜单的媒体查询,javascript,jquery,html,css,Javascript,Jquery,Html,Css,对JS来说有点新。我有一个典型的带有汉堡按钮的响应菜单。它可以正确切换,但如果切换到不显示菜单并切换到更大的屏幕,则即使我的媒体查询默认为显示:块,菜单也不会显示。 当我打开菜单时也是一样的。如果我以较小的分辨率打开菜单,它将在较大的屏幕上显示我的菜单。无论屏幕分辨率如何,my.expand类都会保持不变,并且不会默认为my media query设置 我该如何解决这个问题?这是我的代码,我将post-css与mixin(scs和媒体查询)结合使用,并将ES6类用于JS(我想这是一种非正统的做法
.primary-nav {
position: relative;
font-size: 1rem;
top: 0;
left: 0;
-webkit-transform: translate(0,-10%);
transform: translate(0,-10%);
display: none;
}
@media (min-width: 340px) {
.primary-nav .expand {
display: block;
}
}
@media (min-width: 650px) {
.primary-nav {
display: none;
font-size: 1rem;
top: 0;
left: 0;
-webkit-transform: translate(0,-10%);
transform: translate(0,-10%)
}
.primary-nav .expand {
display: block;
}
}
@media (min-width: 1200px) {
.primary-nav {
display: block;
font-size: 1rem;
height: 5vh;
top: 0;
left: 4rem
}
}
@media (min-width: 1920px) {
.primary-nav {
font-size: 1.2rem;
height: 7vh;
display: block;
top: 1rem;
left: 0;
padding: 1rem
}
}
.primary-nav ul {
margin: 0;
text-align: center;
width: 100%;
padding: 0;
}
@media (min-width: 1200px) {
.primary-nav ul {
padding: 0
}
}
.primary-nav li {
display: block;
border-bottom: 1px solid #FF00A2;
}
@media (min-width: 1200px) {
.primary-nav li {
display: inline;
padding-left: 2%;
border-bottom: none
}
}
@media (min-width: 1920px) {
.primary-nav li {
padding-left: 5%
}
}
.primary-nav li:last-child {
border-bottom: none;
}
.primary-nav a {
text-decoration: none;
color: rgb(46, 198, 218);
display: inline-block;
padding: 5px;
}
@media (min-width: 650px) {
.primary-nav a {
padding: 8px
}
}
//postcss with mixins
.primary-nav {
position: relative;
font-size: 1rem;
top: 0;
left: 0;
transform: translate(0,-10%);
display: none;
.expand {
display: block;
}
@mixin atMedium {
display: none;
font-size: 1rem;
top: 0;
left: 0;
transform: translate(0,-10%);
}
@mixin atLarge {
display: block;
font-size: 1rem;
height: 5vh;
top: 0;
left: 4rem;
}
@mixin atXLarge {
font-size: 1.2rem;
height: 7vh;
display: block;
top: 1rem;
left: 0;
padding: 1rem;
}
ul {
margin: 0;
text-align: center;
width: 100%;
padding: 0;
@mixin atLarge {
padding: 0;
}
}
li {
display: block;
border-bottom: 1px solid $hotPink;
@mixin atLarge {
display: inline;
padding-left: 2%;
border-bottom: none;
}
@mixin atXLarge {
padding-left: 5%;
}
}
li:last-child {
border-bottom: none;
}
a {
text-decoration: none;
color: $mainTeal;
display: inline-block;
padding: 5px;
@mixin atMedium {
padding: 8px;
}
}
}
import $ from 'jquery';
class MobileMenu {
// dom selection usually and firing events when a page loads.
constructor(){
this.menuButton = $('.mobile-menu');
this.events();
}
//events to watch for such as click
events(){
this.menuButton.on('click', function(){
$('.primary-nav').slideToggle(400, function() {
$(this).toggleClass('.expand');
// console.log('hello');
});
});
}
}
export default MobileMenu;
JS
.primary-nav {
position: relative;
font-size: 1rem;
top: 0;
left: 0;
-webkit-transform: translate(0,-10%);
transform: translate(0,-10%);
display: none;
}
@media (min-width: 340px) {
.primary-nav .expand {
display: block;
}
}
@media (min-width: 650px) {
.primary-nav {
display: none;
font-size: 1rem;
top: 0;
left: 0;
-webkit-transform: translate(0,-10%);
transform: translate(0,-10%)
}
.primary-nav .expand {
display: block;
}
}
@media (min-width: 1200px) {
.primary-nav {
display: block;
font-size: 1rem;
height: 5vh;
top: 0;
left: 4rem
}
}
@media (min-width: 1920px) {
.primary-nav {
font-size: 1.2rem;
height: 7vh;
display: block;
top: 1rem;
left: 0;
padding: 1rem
}
}
.primary-nav ul {
margin: 0;
text-align: center;
width: 100%;
padding: 0;
}
@media (min-width: 1200px) {
.primary-nav ul {
padding: 0
}
}
.primary-nav li {
display: block;
border-bottom: 1px solid #FF00A2;
}
@media (min-width: 1200px) {
.primary-nav li {
display: inline;
padding-left: 2%;
border-bottom: none
}
}
@media (min-width: 1920px) {
.primary-nav li {
padding-left: 5%
}
}
.primary-nav li:last-child {
border-bottom: none;
}
.primary-nav a {
text-decoration: none;
color: rgb(46, 198, 218);
display: inline-block;
padding: 5px;
}
@media (min-width: 650px) {
.primary-nav a {
padding: 8px
}
}
//postcss with mixins
.primary-nav {
position: relative;
font-size: 1rem;
top: 0;
left: 0;
transform: translate(0,-10%);
display: none;
.expand {
display: block;
}
@mixin atMedium {
display: none;
font-size: 1rem;
top: 0;
left: 0;
transform: translate(0,-10%);
}
@mixin atLarge {
display: block;
font-size: 1rem;
height: 5vh;
top: 0;
left: 4rem;
}
@mixin atXLarge {
font-size: 1.2rem;
height: 7vh;
display: block;
top: 1rem;
left: 0;
padding: 1rem;
}
ul {
margin: 0;
text-align: center;
width: 100%;
padding: 0;
@mixin atLarge {
padding: 0;
}
}
li {
display: block;
border-bottom: 1px solid $hotPink;
@mixin atLarge {
display: inline;
padding-left: 2%;
border-bottom: none;
}
@mixin atXLarge {
padding-left: 5%;
}
}
li:last-child {
border-bottom: none;
}
a {
text-decoration: none;
color: $mainTeal;
display: inline-block;
padding: 5px;
@mixin atMedium {
padding: 8px;
}
}
}
import $ from 'jquery';
class MobileMenu {
// dom selection usually and firing events when a page loads.
constructor(){
this.menuButton = $('.mobile-menu');
this.events();
}
//events to watch for such as click
events(){
this.menuButton.on('click', function(){
$('.primary-nav').slideToggle(400, function() {
$(this).toggleClass('.expand');
// console.log('hello');
});
});
}
}
export default MobileMenu;
HTML
<span class="mobile-menu">
<i class="fas fa-bars"></i>
</span>
<nav class="primary-nav col col--md-8 col--lg-8">
<ul>
<li><a href="#hero">Project How To</a></li>
<li><a href="#faq" >Rules/Terms</a></li>
<li><a href="#blog" >Blog</a></li>
<li><a href="#account">My Account</a></li>
<li><a href="#log" >Log In</a></li>
<li><a href="#"><i class="icons icons--cart fas fa-shopping-cart "></i></a></li>
</ul>
</nav>
请原谅,我的导航菜单附近有一个徽标,我必须相应地进行调整 你也可以添加编译后的CSS吗?我已经添加了编译后的CSS。如果还不清楚,请告诉我。这是一个大文件,所以我试着挑出我最初发布的相同行。你确定它已经完全编译好了吗?仍然有
@mixins
。还有一件事你能把你的代码变成一个?您可以使用带有括号的按钮
。