Как изменить отображение CSS с видимого на невидимое через определенное время, используя JavaScript - PullRequest
0 голосов
/ 25 января 2019

Я хочу установить свойство отображения css для объектов DOM в значение «block» на 2 секунды, а затем через 2 секунды установить его обратно в «none».Как это можно сделать только в javascript?Я действительно новичок в этом, поэтому пока не получаю JQuery.

Я попробовал

document.querySelector(".one-rolled-popup").style.display = "block";

, а затем установил

document.querySelector(".one-rolled-popup").style.display = "none";

после некоторых другихоперации, но это просто скрывает это

Ответы [ 3 ]

0 голосов
/ 25 января 2019

Вы можете сделать следующее, используя setTimeout.Я полагаю, что по умолчанию div является видимым, поэтому мне не нужно его показывать.

setTimeout(
  function() {
    document.querySelector(".one-rolled-popup").style.display = "none";
  }, 2000);
<div class="one-rolled-popup">Testing</div>

Но если он скрыт по умолчанию, вы можете сделать это вместо этого (нажмите на экран во фрагменте, чтобы увидеть эффект):

function showAndHide() {
  document.querySelector(".one-rolled-popup").style.display = "block";
  setTimeout(
    function() {
      document.querySelector(".one-rolled-popup").style.display = "none";
    }, 2000);
}



window.onclick = function() {
  showAndHide();
}
.one-rolled-popup {
  display: none;
}
<div class="one-rolled-popup">Testing</div>
0 голосов
/ 25 января 2019

Попробуйте эту функцию

   setTimeout(function(){ 
   if (document.querySelector(".one-rolled-popup").style.display == "block";) {
      document.querySelector(".one-rolled-popup").style.display= "none";
   } else {
      document.querySelector(".one-rolled-popup").style.display= "none";
   }

  }, 3000);
0 голосов
/ 25 января 2019

используйте setTimeout.Он выполнит метод через X миллисекунд.Таким образом, в вашем случае вы отобразите блок, а затем вернете его в неиспользуемое состояние через 2 секунды.

method () {
  // display it
  document.querySelector(".one-rolled-popup").style.display = "block";

  // hide it after 2 seconds
  setTimeout(() => {
      document.querySelector(".one-rolled-popup").style.display = "none",
  2000);
}
...