Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.06.2018, 19:58
Новичок на форуме
Отправить личное сообщение для antegria Посмотреть профиль Найти все сообщения от antegria
 
Регистрация: 05.05.2018
Сообщений: 9

addСlass и removeСlass при ресайзе окна
Необходимо было реализовать два типа меню на странице для разных разрешений экранов. Написала скрипт, который присваивает и убирает у элементов этого меню соответствующие классы. Посмотреть как это выглядит можно здесь - http://study.uitschool.com/fe-18-03/makarova/news-test/ .

Проблема заключается в том, на границе <1200 px, левое меню "улетает" в панель - это видно невооруженным взглядом, а моих знаний пока недостаточно, чтобы исправить это самостоятельно. Кроме того, появляется еще одна проблема: с 1196 px по 1199 px можно наблюдать следующее: https://drive.google.com/open?id=1pp...UrRFwp20ecql7e

Мой код:
<div id="myNav" class="overlay">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
  <div class="overlay-content">
    <ul class="over-ul">
            <li><a href="#">Главная</a></li>
            <li><a href="#">События</a></li>
            <li><a href="#">Город</a></li>
            <li><a href="#">Мнения</a></li>
            <li class="active"><a href="#">Происшествия</a></li>
            <li><a href="#">Общество</a></li>
            <li><a href="#">Технологии</a></li>
            <li><a href="#">Украина</a></li>
            <li><a href="#">Мир</a></li>
            <li><a href="#">Здоровье</a></li>
            <li><a href="#">Политика</a></li>
            <li><a href="#">Спорт</a></li>
            <li class="detached"><br><a href="#">Организации</a></li>
            <li class="detached"><a href="#">Персоны</a></li>
            <li class="detached"><a href="#">События</a></li>
            <li class="detached"><a href="#">Контакты</a></li>
            <li class="detached"><a href="#">Реклама на сайте</a></li>
        </ul>
  </div>
</div>
панель, видна только на маленьких экранах
<div class="container-fluid">
      <div class="col-xs-12 openbar">
          <img src="images/logo.png" alt="logo">
          <span onclick="openNav()">&#9776;</span>
      </div>
  </div>

CSS

.navbar-fixed-left {
  width: 198px;
  position: fixed;
  border-radius: 0;
  height: 100%;
}
.navbar-fixed-left>div>.navbar-nav > li {
  float: none;
  width: 197px;
}
.navbar-fixed-left + .container {
  padding-left: 160px;
}
.navbar{
    background: #1e4570;
}
.navbar{
    background: #1e4570;
}
.navbar-brand{
    padding: 20px 25px 20px 15px;
    height: 88px;
    background: rgba(0, 0, 0, 0.05);
    margin-bottom: 7px;
}
.navbar-fixed-left>div>ul>li>a{
    color: #fff;
    padding: 10px 15px 10px 27px;
    font-size: 18px;
}
.navbar-fixed-left>div>ul>li{
    background: #1e4570;
}
li.active>a{
    font-weight: bold;
}
.navbar-fixed-left>div>ul>.detached>a{
    font-size: 16px;
    color: rgba(255, 255, 255, 0.5);
    padding: 10px 15px 0 27px
}
.nav>li>a:focus, .nav>li>a:hover{
    background: none;
    outline: none;
}


Скрипт:
<script>
function openNav() {
 document.getElementById("myNav").style.height = "100%";
}
function closeNav() {
 document.getElementById("myNav").style.height = "0%";
}
    // Adds and removes body class depending on screen width.
function screenClass() {
    if($(window).innerWidth() > 1180) {
        $('#myNav').addClass('navbar navbar-fixed-left').removeClass('overlay');
        $('#myNav>div').removeClass('overlay-content');
        $('#myNav>div>ul').addClass('nav navbar-nav').removeClass('over-ul');
    } else {
        $('#myNav').addClass('overlay').removeClass('navbar navbar-fixed-left');
        $('#myNav>div').addClass('overlay-content');
        $('#myNav>div>ul').addClass('over-ul').removeClass('nav navbar-nav');
    }
}
// Fire.
screenClass();
// And recheck when window gets resized.
$(window).bind('resize',function(){
    screenClass();
});
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странная ошибка в Crome загадочно исчезает при ресайзе окна Norm Iridium Общие вопросы Javascript 2 30.04.2014 18:16
Скролл окна при добавлении контента "сверху"" yaneblog Events/DOM/Window 0 22.01.2010 22:00
Вывод данных единожды, при открытии окна? Ggorsh Events/DOM/Window 1 28.04.2009 00:04
Завершение процесса воспроизведения видео при закрытии окна IE skif Общие вопросы Javascript 0 11.03.2009 07:11
как при открытии окна закрыть предыдущее Евдокимова Events/DOM/Window 3 16.09.2008 16:12