Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.09.2017, 05:32
Аватар для dupre
Аспирант
Отправить личное сообщение для dupre Посмотреть профиль Найти все сообщения от dupre
 
Регистрация: 25.05.2014
Сообщений: 62

Затемнение фона по клику
Есть разметка:
<!DOCTYPE html>
<html lang="ru">

<head>
    <meta charset="UTF-8">
    <title>Главная</title>
    <link rel="stylesheet" href="css/libs.min.css">
    <link rel="stylesheet" href="css/main.css">
</head>

<body>
    <div id="mySidenav" class="sidenav">
    <span class="nav_top_menu_item">Список меню</span>
        <ul class="breadcrumbs">
            <li>
                <a href="index.html">Главная</a>
                <p>
                    Далеко-далеко за&nbsp;словесными горами в&nbsp;стране, гласных и&nbsp;согласных живут рыбные тексты.
                </p>
            </li>
            <li>
                <a href="news.html" target="_blank">Объявления</a>
                <p>
                    Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.
                </p>
            </li>
            <li>
                <a href="gallery.html" target="_blank">Фотоотчёт</a>
                <p>
                    Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.
                </p>
            </li>
            <li>
                <a href="reports.html" target="_blank">Отчёты</a>
                <p>
                    Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.
                </p>
            </li>
            <li>
                <a href="contacts.html" target="_blank">Контакты</a>
                <p>
                    Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.
                </p>
            </li>
        </ul>
    </div>
    <div id="main">
    </div>
    <script src="js/libs.min.js"></script>
    <script src="js/common.js"></script>
</body>

</html>

К ней js:
window.addEventListener('DOMContentLoaded', function() {
    var body = document.querySelector('body');
    document.addEventListener("click", function(event) {
        var target = event.target;
        if (target.closest(".sidenav") && !target.closest(".closebtn")) return;
        else if (target.closest("#main")) {
            event.preventDefault();
            body.classList.toggle("open")
        } else body.classList.remove("open");
    });
});


Сам вопрос:
Изменить-дописать код js так, чтобы открытии.sidenav фон затемнялся, при закрытии возвращался к исходному состоянию?
Ответить с цитированием
  #2 (permalink)  
Старый 05.09.2017, 08:35
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от dupre
чтобы открытии.sidenav фон затемнялся
Как вариант...
- Иметь ДИВ с
position: fixed;

размером на весь экран и полупрозрачным фоном
- Разместить нужный див поверх фонового
- Показывать и скрывать те ДИВы по меренадобности
Ответить с цитированием
  #3 (permalink)  
Старый 05.09.2017, 09:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

dupre,
body:after{
opacity: 0;
content: "";
}

body.open:after{
  content: "";
  background-color: #A9A9A9;
  opacity: .3;
  left:250px;
  right: 0;
  top: 0;
  bottom: 0;
  position: fixed;
  transition: all 0.3s 0.3s;
}
Ответить с цитированием
  #4 (permalink)  
Старый 05.09.2017, 10:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

dupre,
зачем создавать сообщение в теме Сайт Javascript.ru !!!

Последний раз редактировалось рони, 05.09.2017 в 10:36.
Ответить с цитированием
  #5 (permalink)  
Старый 05.09.2017, 10:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

dupre,
пример надо делать полностью!!!
<!DOCTYPE html>
<html lang="ru">

<head>
    <meta charset="UTF-8">
    <title>Главная</title>
    <style type="text/css">
    body {
    font-family: "Lato", sans-serif;
    position: relative;
    height: 1700px;
    transition: all 0.3s;
}

.sidenav {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: #111;
    overflow-x: hidden;
    transition: 0.5s;
    padding-top: 60px;
}

.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    color: #818181;
    display: block;
    transition: 0.3s;
}

.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}

.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

#main {
    position:  fixed;
    left: 0px;
    transition: left .5s;
    padding: 4px 2px;
    width: 36px;
    height: 36px;
    background-color: #000000;
    text-align: center;
    margin-left: 8px;
    line-height: 36px;
}

@media screen and (max-height: 450px) {
  .sidenav {padding-top: 15px;}
  .sidenav a {font-size: 18px;}
}
body.open{
  margin-left: 250px;

}

body.open .sidenav{
   width: 250px

}
body.open #main{
  left:250px;
}
body:after{
opacity: 0;
content: "";
}

body.open:after{
  content: "";
  background-color: #A9A9A9;
  opacity: .3;
  left:250px;
  right: 0;
  top: 0;
  bottom: 0;
  position: fixed;
  transition: all 0.3s 0.3s;
}

.openclosebtn{
   font-size:30px;cursor:pointer;
   color: #FFFFFF;
}
 h1{
   margin: 0 auto;
   text-align: center;
 }

    </style>
</head>

<body>
    <div id="mySidenav" class="sidenav">
    <span class="nav_top_menu_item">Список меню</span>
        <ul class="breadcrumbs">
            <li>
                <a href="index.html">Главная</a>
                <p>
                    Далеко-далеко за&nbsp;словесными горами в&nbsp;стране, гласных и&nbsp;согласных живут рыбные тексты.
                </p>
            </li>
            <li>
                <a href="news.html" target="_blank">Объявления</a>
                <p>
                    Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.
                </p>
            </li>
            <li>
                <a href="gallery.html" target="_blank">Фотоотчёт</a>
                <p>
                    Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.
                </p>
            </li>
            <li>
                <a href="reports.html" target="_blank">Отчёты</a>
                <p>
                    Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.
                </p>
            </li>
            <li>
                <a href="contacts.html" target="_blank">Контакты</a>
                <p>
                    Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты.
                </p>
            </li>
        </ul>
    </div>
    <div id="main">
    </div>
    <script>window.addEventListener('DOMContentLoaded', function() {
    var body = document.querySelector('body');
    document.addEventListener("click", function(event) {
        var target = event.target;
        if (target.closest(".sidenav") && !target.closest(".closebtn")) return;
        else if (target.closest("#main")) {
            event.preventDefault();
            body.classList.toggle("open")
        } else body.classList.remove("open");
    });
});
</script>

</body>

</html>

Последний раз редактировалось рони, 05.09.2017 в 10:38.
Ответить с цитированием
  #6 (permalink)  
Старый 06.09.2017, 01:59
Аватар для dupre
Аспирант
Отправить личное сообщение для dupre Посмотреть профиль Найти все сообщения от dupre
 
Регистрация: 25.05.2014
Сообщений: 62

рони,
решение оказалось проще чем я думал. Несколько строк на css и ни одно новой строки к имеющемуся js... Отлично!

По размещению сообщений и, что пример надо полностью понял и на будущее постараюсь учесть.
Спасибки большие за разъяснение затруднительных для меня решений по интересным задачам!

Последний раз редактировалось dupre, 06.09.2017 в 02:18.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать так чтоб по клику открывалось и по клику же закрывалось Maxsl_89 Элементы интерфейса 1 25.10.2013 16:11
Менять цвет фона по клику по ссылке Djeman jQuery 3 14.05.2011 12:22
фотогалерея затемнение фона jei Общие вопросы Javascript 26 22.02.2011 21:02
Алгоритм плавной смены фона или изображения vandy3 Общие вопросы Javascript 6 11.11.2010 00:56
Измена фона по клику mdiimas jQuery 2 26.08.2010 10:25