Ответы пользователя по тегу JavaScript
  • Почему не записывается ключ в localStorage?

    @mukoladerevlo
    веб-разработка, электроника
    А теперь разбор полетов

    <!doctype html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
    
    <div class="js-banner">Banner <span class="js-close-banner"> x</span></div>
    	<script>
    function showBannerPopup (){
        let banner = document.querySelector('.js-banner');
        let closeBanner = document.querySelector('.js-close-banner');
        let bannerState = localStorage.getItem('Banner_popup');
        closeBanner.addEventListener('click', function(){
            banner.style.visibility  = "hidden";
            banner.style.opacity = "0";
            localStorage.setItem('Banner_popup', true);
        });
        banner.addEventListener('click',function() {
            banner.style.visibility  = "hidden";
            banner.style.opacity = "0";
            localStorage.setItem('Banner_popup', true);
        });
        if(localStorage.getItem('Banner_popup') != "true"){
            setTimeout(function(){
                banner.style.visibility = "visible";
                banner.style.opacity = "1";
            }, 700);
        }
    }
    showBannerPopup();
    	</script>
    </body>
    </html>

    после reload вызывается функция опять. то есть непонятно зачем вы что-то там проверяете, ну да, не сработает таймаут после установки ключа тру и попап не появится.
    а смысл, после reload опять вы вызываете функцию показать баннер. вам нужно считывать значение localstorage и только потом принимать решения показать или скрыть popup, ведь он у вас по умолчанию показывается, не так ли?

    добавьте например
    if(localStorage.getItem('Banner_popup') == "true"){
            banner.style.visibility  = "hidden";
            banner.style.opacity = "0";
    }
    Ответ написан
    Комментировать
  • Как задержать выполнение setInterval?

    @mukoladerevlo
    веб-разработка, электроника
    если я правильно понял, то вам нужен типа reboot для интервала.
    можно вот так
    var slider = document.querySelectorAll("article");
      var circleone = document.getElementById("circle-one");
      var circletwo = document.getElementById("circle-two");
    var interval;
    function Run(){
     clearInterval(interval);
     interval = setInterval(function() {
      			for(var i = 0; i < slider.length; i++){
            	var item = parseInt(slider[i].style.left);
            	if(item === 0){
              	item = 100;
              	slider[i].style.transitionDuration = "0s";
              	slider[i].style.left = item + "%";
            	}else{
              	item-=100;
              	slider[i].style.transitionDuration = "0.5s";
              	slider[i].style.left = item + "%";
            	}       
        	}
      }, 4000);
    }
    Run(); 
      circleone.onclick = function(){
        slider[0].style.left = 0 + "%";
        slider[1].style.left = 100 + "%";
        
       Run();
      }
    Ответ написан
    Комментировать
  • Как изменить стили через сайт?

    @mukoladerevlo
    веб-разработка, электроника
    зачем тянуть в такую елементарную задачу целый фреймворк. Используйте javascript и css variables, потом в css root меняйте значение переменных через js
    Ответ написан
    Комментировать
  • Как преобразовать такой код в массив?

    @mukoladerevlo
    веб-разработка, электроника
    function clickToShow(elementClick, elementShow){
    	var elButton = document.querySelector(elementClick);
    	var elShow = document.querySelector(elementShow);
    	
    	elButton.addEventListener("click", function(event) {
    		elShow.classList.add("show");
    	});
    }
    
    clickToShow('#London','#London h2');
    clickToShow('.house-base-buy','.house-base');
    clickToShow('.house-walls-buy','.house-walls');
    Ответ написан
    1 комментарий
  • Как запретить отображения функции на мобильных устройствах?

    @mukoladerevlo
    веб-разработка, электроника
    например так
    function detectmob() { 
     if( navigator.userAgent.match(/Android/i)
     || navigator.userAgent.match(/webOS/i)
     || navigator.userAgent.match(/iPhone/i)
     || navigator.userAgent.match(/iPad/i)
     || navigator.userAgent.match(/iPod/i)
     || navigator.userAgent.match(/BlackBerry/i)
     || navigator.userAgent.match(/Windows Phone/i)
     ){
        return true;
      }
     else {
        return false;
      }
    }
    
    if(!detectmob()){
    //showtab widget
    initCopinyWidget(copinyWidgetOptions);
    CopinyNewWidget.showTab();
    }
    Ответ написан