Задать вопрос
bodia7
@bodia7
Начинающий веб-разработчик

Как при нажатии на пункт меню в мобильной версии сайта при после вызова его пункта?

Есть рабочее меню для адаптивного лэндинга. Хочу, чтобы в мобильной версии, при вызове пункта меню, меню автоматически сворачивалось. В данный момент, чтобы свернуть нужно опять нажать на иконку. Помогите пожалуйста. Впал в "кому":)
<nav class="clearfix">
				<ul class="clearfix">
					<li><a href="#advantages">Преимущества</a></li>
					<li><a href="#characters">Характеристики</a></li>
					<li><a href="#garantie">Гарантии</a></li>
					<li><a href="#sale">Акция</a></li>
					<li><a href="#complect">Комплектация</a></li>
					<li><a href="#review">Отзывы</a></li>	
				</ul>
				<a href="#" id="pull">Меню</a>
			</nav><!-- END nav -->

<script>
		$(function() {
			var pull 		= $('#pull');
				menu 		= $('nav ul');
				menuHeight	= menu.height();

			$(pull).on('click', function(e) {
				e.preventDefault();
				menu.slideToggle();
			});
				
			$(window).resize(function(){
        		var w = $(window).width();
        		if(w > 320 && menu.is(':hidden')) {
        			menu.removeAttr('style');
        		}
    		});
		});
	</script>

/* Clearfix */
.clearfix:before,
.clearfix:after {
    content: " ";
    display: table;	
}
.clearfix:after {
    clear: both;

}
.clearfix {
    *zoom: 1;
}

/* Basic Styles */

nav {
	height: 40px;
	width: 100%;
	background: #2E3192;
	font-size: 11pt;
	font-family: 'PT Sans', Arial, sans-serif;
	font-weight: bold;
	position: relative;
	border-bottom: 2px solid #2E3192;
}
nav ul {
	padding: 0;
	margin: 0 auto;
	width: 900px;
	height: 40px;
}
nav li {
	display: inline;
	float: left;
}
nav a {
	color: #fff;
	display: inline-block;
	width: 150px;
	text-align: center;
	text-decoration: none;
	line-height: 40px;
	text-shadow: 1px 1px 0px #283744;
}
nav li a {
	border-right: 1px solid #fff;
	box-sizing:border-box;
	-moz-box-sizing:border-box;
	-webkit-box-sizing:border-box;
}
nav li:last-child a {
	border-right: 0;
}
nav a:hover, nav a:active {
	background-color: #8c99a4; 
}
nav a#pull {
	display: none;
}



/*Styles for screen 515px and lower*/
@media only screen and (max-width : 900px) {

	nav {
		border-bottom: 0;
		height: auto;
	}
	nav ul {
		display: none;
		width: 100%;
		height: auto;
	}
	  	nav li {
  		width: 50%;
  		float: left;
  		position: relative;
  	}
	  	nav li a {
		border-bottom: 1px solid #fff;
		border-right: 1px solid #fff;
	}
  	nav a {
	  	text-align: left;
	  	width: 100%;
	  	text-indent: 25px;
  	}
	nav a#pull {
		display: block;
		background-color: #2E3192;
		width: 100%;
		position: relative;
	}
	nav a#pull:after {
		content:"";
		background: url('../images/nav-icon.png') no-repeat;
		width: 30px;
		height: 30px;
		display: inline-block;
		position: absolute;
		right: 15px;
		top: 10px;
	}

}

/*Smartphone*/
@media only screen and (max-width : 320px) {
	nav li {
		display: block;
		float: none;
		width: 100%;
	}
	nav li a {
		border-bottom: 1px solid #fff;
	}
}
  • Вопрос задан
  • 1326 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
dmitriy_novikov
@dmitriy_novikov
Занимаюсь web-разработкой с 2010г. http://dmnv.ru
в скрипте замените строчку:
$(pull).on('click', function(e) {
на такую:
$('#pull, nav ul a').on('click', function(e) {
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
RockerOne
@RockerOne
Учусь верстать сайты
А как сделать так: Что бы при таком коде происходил переход по ссылки, у меня просто сворачивается меню, а перехода нет при нажатии на пункты меню.
$('#pull, nav ul a').on('click', function(e) {
if($(window).width()<900) {
e.preventDefault();
menu.slideToggle();}
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы