Имеется готовый код на jquery, реализующий гамбургер меню в магазине на Opencart. Но гамбургер функционирует при любом разрешении экрана, как можно ограничить его, скажем до 800px
ширины? Код:
$( ".cross2" ).hide();
$( ".list-group" ).hide();
$( ".hamburger2" ).click(function() {
$( ".list-group" ).slideToggle( "slow", function() {
$( ".hamburger2" ).hide();
$( ".cross2" ).show();
});
});
$( ".cross2" ).click(function() {
$( ".list-group" ).slideToggle( "slow", function() {
$( ".cross2" ).hide();
$( ".hamburger2" ).show();
});
});
Попробовал добавить if($(window).width()<800) {...}, но после этого гамбургер вообще не работает
Я не АС в js но может быть так ?
$(document).ready(function() {
$(".hmenu").click(function() {
$("nav").toggleClass("show");
$(this).toggleClass("showw");
});
});
* {
margin: 0;
padding: 0;
list-style: none;
text-decoration: none;
}
html,
body {
padding: 10px 30px;
}
nav {
height: 50px;
background: lightgrey;
line-height: 50px;
}
ul {
display: table;
}
ul li {
display: table-cell;
vertical-align: bottom;
}
ul li a {
display: table-cell;
width: 1000px;
height: 40px;
text-align: center;
vertical-align: middle;
color: #000;
}
@media screen and (min-width:480px) and (max-width:640px) {
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
padding: 0;
}
nav {
display: block;
width: 200px;
height: 100%;
background-color: lightgrey;
}
ul,
ul li,
ul li a {
display: block;
width: 200px;
color: #000;
}
ul li {
height: 50px;
line-height: 50px;
}
}
@media screen and (max-width:480px) {
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
padding: 0;
}
nav {
display: block;
width: 200px;
height: 100%;
background-color: lightgrey;
display: none;
}
ul,
ul li,
ul li a {
display: block;
width: 200px;
color: #000;
}
ul li {
height: 50px;
line-height: 50px;
}
.hmenu {
width: 50px;
height: 50px;
}
.hmenu span {
display: block;
width: 90%;
height: 10px;
background: #ccc;
margin: 6px auto;
border-radius: 6px;
}
.hmenu.showw {
margin-left: 200px;
}
nav.show {
display: block;
margin-top: -50px;
}
}
<meta name="viewport" content="width=device-width, initial-scale=1">
<p class="hmenu">
<span></span>
<span></span>
<span></span>
</p>
<nav>
<ul>
<li>
<a href="">Главная</a>
</li>
<li>
<a href="">Форум</a>
</li>
<li>
<a href="">Портфолио</a>
</li>
<li>
<a href="">О разработчике</a>
</li>
</ul>
</nav>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
DEMO
Решение может заключаться в использовании media queries
. Примерно так:
@media (min-width: 801px) {
#<id вашего меню> {
display: none;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не работает keyCode в Android ChromeМне нужно отловить событие в поле ввода(input) тапа по запятой (",") или точке ("