javascript Мобильноеменюсанимацией

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript Мобильноеменюсанимацией相关的知识,希望对你有一定的参考价值。

<header class="header">
	<div class="header__wrapper">

  <div class="logo">
		<a href="/"><img src="../img/logo.jpg" alt="Лого"></a>
	</div>

	<nav class="main-nav">
	  <ul>
	    <li><a href="#">Пункт 1</a></li>
	    <li><a href="#">Пункт 2</a></li>
	    <li><a href="#">Пункт 3</a></li>
	    <li><a href="#">Пункт 4</a></li>
	  </ul>
	</nav>

	<div class="header__contact">
		<a href="tel:+999999999" class="header__phone">+7 999999999</a>
		<a href="mailto:mail@bk.ru" class="header__email">mail@bk.ru</a>
	</div>

	<div class="burger-menu">
		<div class="burger-menu__wrapper">
				<div class="burger"></div>
				<span class="burger-menu-text">Меню</span>
		</div>
	</div>

	<nav class="mobile-nav">
	  <ul>
	     <li><a href="#">Пункт 1</a></li>
	     <li><a href="#">Пункт 2</a></li>
	     <li><a href="#">Пункт 3</a></li>
	     <li><a href="#">Пункт 4</a></li>
	  </ul>
	</nav>

	</div>
</header>
/* mobile menu */

.burger-menu
	position: relative
	margin-top: 15px
	z-index: 9999
	&__wrapper
    width: 45px
    height: 45px
    cursor: pointer
    margin-left: auto
    & .burger
      position: absolute
      background: $text-color
      width: 45px
      height: 5px
      top: 50%
      right: 0px
      margin-top: -5px
      opacity: 1
      transition: all 0.3s ease-in-out
      &::before
        position: absolute
        background: $text-color
        width: 45px
        height: 5px
        top: 15px
        content: ""
        display: block
      &::after
        position: absolute
        background: $text-color
        width: 45px
        height: 5px
        bottom: 15px
        content: ""
        display: block
        transition: all 0.3s ease-in-out
      &::before
        transition: all 0.3s ease-in-out
 
.burger-menu.menu-on .burger
  background: rgba(111, 111, 111, 0)
  &::after
    transform: rotate(-45deg)
    bottom: 0px
  &::before
    transform: rotate(45deg)
    top: 0px
 
.burger-menu-text
  display: block
  position: absolute
  left: 0
  font-size: 20px
  color: $text-color
  font-family: $default-title
  text-transform: uppercase
  top: 8px
  cursor: default
  transition: opacity 200ms ease-out, transform 200ms cubic-bezier(0.34, 0.55, 0.25, 0.83)
  &.is-open
    opacity: 0
    transform: translate3d(100px, 0, 0)
    
.main-nav
  display: none
    
.mobile-nav
	position: absolute
	top: 0
	left: 0
	right: 0
	margin: 0 auto
	height: 100%
	opacity: 0
	background-color: rgba(#fff, .9)
	transition: all .15s ease-in
	z-index: 99
	ul
		margin: 0
		padding: 0
		text-align: center
		padding-bottom: 25px
		li
			list-style-type: none
			padding-bottom: 20px
			a
				color: $text-color
				text-decoration: none
				font-family: $default-title
				font-size: 24px
				line-height: 1.2
				transition: all .15s ease-in
				text-transform: uppercase
	&.flex
		opacity: 1
		
// Блокируем срокл при открытом мобильном меню
.scroll-hidden
  overflow: hidden


@media #{$mobile-widths}
	.burger-menu
		flex-basis: 100%

@media #{$tablet-widths}
	.burger-menu
		position: relative
		margin-top: 0
		flex-basis: auto

	.burger-menu-text
		display: none

@media #{$notebook-widths}
	.burger-menu
		display: none
		
	.main-nav
		display: block


/* end mobile menu */
// new
$(".burger-menu").click(function () {
  $(".site-header__menu").toggleClass("site-header__menu--mobile");
  $(".burger-menu").toggleClass("menu-on");
  $("body").toggleClass("scroll-hidden");
  $(".burger-menu-text").toggleClass("is-open");
});


$(window).resize(function(){
var w = $(window).width();
menu  = $('.site-header__menu');
scroll  = $('.scroll-hidden');
burger = $('.burger-menu');
// if(w > 991 && menu.is(':hidden')) {
//   menu.removeAttr('style');
// }
if(w > 991 && menu.is('.site-header__menu--mobile')) {
  menu.removeClass('site-header__menu--mobile');
}
if(w > 991 && burger.is('.burger-menu')) {
  burger.removeClass('menu-on');
}
if(w > 991 && scroll.is('.scroll-hidden')) {
  scroll.removeClass('scroll-hidden');
}
});


// old
$(".burger-menu").click(function () {
    $(".mobile-nav").slideToggle(500, function () {
    });
    $(".mobile-nav").toggleClass("flex");
    $(".burger-menu").toggleClass("menu-on");
    $(".burger-menu-text").toggleClass("is-open");
  });
 
  $(window).resize(function(){
  var w = $(window).width();
  menu    = $('.mobile-nav');
  if(w > 991 && menu.is(':hidden')) {
    menu.removeAttr('style');
  }
});

以上是关于javascript Мобильноеменюсанимацией的主要内容,如果未能解决你的问题,请参考以下文章

html Мобильноеменюдлясайтабезанимации

ini Позволяетлюбомупользователюлокальнойсистемыподключитьсяклюбойбазеданных,используялюбоеимябазыдан

html ДобавлениединамическихполейспомощьюJQuery

python 公共场所находимбесплтаныеpublicанонимныепроксиспомощьюpython

php Еслинамнужно,чтобыбылоневозможноредактироватьполе“Название”,мывносимследующеевычисление...

html Отображениеиперемещениеслоязамышью