Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не работает transition при добавлении класса (pure JS) (https://javascript.ru/forum/events/67230-ne-rabotaet-transition-pri-dobavlenii-klassa-pure-js.html)

phoenix200689 04.02.2017 22:24

Не работает transition при добавлении класса (pure JS)
 
Товарищи, кто-нибудь знает как заставить работать свойство transition при добавлении/удалении класса? И можно ли это реализовать меньшим количеством строк чистого js-кода?
Спасибо, что помогаете новичкам =)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<!-- <link rel="stylesheet" href="style.css"> -->
</head>
<body>

<div class="fixed-wrap fixed-wrap__modal">
    	<div class="modal">
        	<div class="modal-container">    
        	</div>
    	</div>
	</div>
  
  <button class="tasks__btn" type="submit">+ добавить задачу</button>

		<style>
			.fixed-wrap {
			display: none;
		    position: fixed;
		    overflow: auto;
		    left: 0;
		    top: 0;
		    width: 100%;
		    height: 100%;
		    background: rgba(0, 0, 0, .6);
		    opacity: 0;
		    transition: opacity 1s;
		}

		.fixed-wrap._show {
			display: block;
			opacity: 1;
		}

		.tasks__btn {
		    cursor: pointer;
		}

		</style>


<script>

	document.addEventListener("DOMContentLoaded", function() {
		var btnPopup = document.getElementsByClassName("tasks__btn")[0].addEventListener("click", function() {
			var popup =	document.getElementsByClassName("fixed-wrap")[0];
			popup.classList.add("_show");
		})
	});

</script>

	
</body>
</html>

рони 04.02.2017 22:36

phoenix200689,
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- <link rel="stylesheet" href="style.css"> -->
</head>
<body>

<div class="fixed-wrap fixed-wrap__modal">
    	<div class="modal">
        	<div class="modal-container">
        	</div>
    	</div>
  </div>

  <button class="tasks__btn" type="submit">+ добавить задачу</button>

    <style>
      .fixed-wrap {
      display: none;
        position: fixed;
        overflow: auto;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, .6);
        opacity: 0;
        transition: opacity 1s;
    }

    .fixed-wrap._show {
      opacity: 1;
    }

    .tasks__btn {
        cursor: pointer;
    }

    </style>


<script>
document.addEventListener("DOMContentLoaded", function() {
    document.querySelector(".tasks__btn").addEventListener("click", function() {
        var popup = document.querySelector(".fixed-wrap");
        popup.style.display = "block";
        window.setTimeout(function() {
            popup.classList.add("_show")
        }, 0)
    })
});
</script>


</body>
</html>


Часовой пояс GMT +3, время: 02:22.