Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   SetInterval с рандомными значениями и закрытие блока с запоминание в cookie (https://javascript.ru/forum/css-html/72811-setinterval-s-randomnymi-znacheniyami-i-zakrytie-bloka-s-zapominanie-v-cookie.html)

CORONER 27.02.2018 20:45

SetInterval с рандомными значениями и закрытие блока с запоминание в cookie
 
Доброго времени суток, уважаемые форумчане.
Столкнулся с проблемой реализации рандомного интервала для таймаута.
Также не могу сделать задержу блока при наведении и его hidden с записью в куки.
В JS я не профи и с меня причитается.
Код:
<!DOCTYPE html>
<html lang="ru">
    <head>
      <style>
.window_show {
	display: none; 
	z-index: 1000;
	position: fixed;
	width: 200px; height: auto;
	right: 20px;
	bottom: 20px;
	padding: 15px;
	text-align: center;
	border-radius: 10px;
}
.green {
	color: #fff;
	background: #36549a;
	border: 3px solid #7f98c0;
}
 
.green a {
	color: #fff;
}
</style>
 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
 
<script type="text/javascript">
$(document).ready(function() {
    setInterval(function() {
setTimeout ("$('.window_show').show('drop');", 100);
setTimeout ("$('.window_show').hide('drop');", 5000);
        }, 8000);
    
});
</script>
    </head>
 <body>
<div class='window_show green'>Заказ удален</div>
    </body>
</html>

j0hnik 27.02.2018 22:00

можете подробней рассказать что сделать хотите?

CORONER 27.02.2018 23:00

Доброго времени. Нужно реализовать появление блока через 5 секунд после загрузки сайта и скрыть его через 10 секунд автоматически (таймаут), зациклить появление блока и его исчезновение с рандомными значениями SetInterval, либо пользователь может закрыть блок (скрыть) с записью в куки.

j0hnik 28.02.2018 02:30

<!DOCTYPE html>
<html lang="ru">
<head>
	<style>
		.window_show {
			display: none; 
			z-index: 1000;
			position: fixed;
			width: 200px; height: auto;
			right: 20px;
			bottom: 20px;
			padding: 15px;
			text-align: center;
			border-radius: 10px;
		}
		.green {
			color: #fff;
			background: #36549a;
			border: 3px solid #7f98c0;
		}

		.green a {
			color: #fff;
		}
	</style>

	<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

	<script type="text/javascript">
		$(document).ready(function() {
			var rnd = function (min, max){
				return Math.floor(Math.random() * (max*1000 - min*1000)) + min*1000;
			};
			function sh(){
				$('.window_show').toggle('drop');
			}
			if(!localStorage.getItem('flag5')){
			setTimeout(sh, 5000);
			if(!localStorage.getItem('flag5')) var nn = setTimeout(function ff(){
				sh();
				if(!localStorage.getItem('flag5')) nn = setTimeout(ff, rnd(1, 10)); // диапазон 1-10 сек
			},10000);
			}

			$('#off').click(function(){
				localStorage.setItem('flag5', 1);
			});


		});
	</script>
</head>
<body>
	<div class='window_show green'>Заказ удален<button id="off">Отключить уведомление</button></div>
</body>
</html>

CORONER 28.02.2018 09:35

Огромное спасибо, это с куками или без. Нужна также ссылка, которая закрывает блок и записывает это в куки. Если при этом будет выводиться какая либо надпись о том, что оповещения закрыты например.

Dilettante_Pro 28.02.2018 10:15

j0hnik,
Замените http на https, а то Посмотреть не работает

рони 28.02.2018 10:34

Цитата:

Сообщение от j0hnik
jquery/1.4

:-?

j0hnik 28.02.2018 15:15

Dilettante_Pro,
Мог бы и не спрашивать :D

CORONER 28.02.2018 18:12

Спасибо вам огромное!

CORONER 01.03.2018 17:14

Не подскажите ли как реализовать чтобы при наведении мыши скрипт вставал на паузу, а убирая её - снимался с паузы.
Я искал в инете, но не нашел функции onmouseover pause и onmouseout start

j0hnik 01.03.2018 18:22

<!DOCTYPE html>
<html lang="ru">
<head>
	<style>
		.window_show {
			display: none; 
			z-index: 1000;
			position: fixed;
			width: 200px; height: auto;
			right: 20px;
			bottom: 20px;
			padding: 15px;
			text-align: center;
			border-radius: 10px;
		}
		.green {
			color: #fff;
			background: #36549a;
			border: 3px solid #7f98c0;
		}

		.green a {
			color: #fff;
		}
	</style>

	<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

	<script type="text/javascript">
		$(document).ready(function() {
				var over =  1;
			var rnd = function (min, max){
				return Math.floor(Math.random() * (max*1000 - min*1000)) + min*1000;
			};
			function sh(){
				if(over) $('.window_show').toggle('drop');
			}
			if(!localStorage.getItem('flag0')){
			setTimeout(sh, 5000);
			if(!localStorage.getItem('flag0')) var nn = setTimeout(function ff(){
				sh();
				if(!localStorage.getItem('flag0')) nn = setTimeout(ff, rnd(1, 10)); // диапазон 1-10 сек
			},10000);
			}

			$('#off').click(function(){
				localStorage.setItem('flag0', 1);
			});
			

			$('.window_show').mouseover(function(){
				over = 0;
			});

			$('.window_show').mouseout(function(){
				over = 1;
			});


		});
	</script>
</head>
<body>
	<div class='window_show green'>Заказ удален<button id="off">Отключить уведомление</button></div>
</body>
</html>

рони 01.03.2018 19:25

CORONER,
<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="utf-8">
  <style>
    .window_show {
      display: none;
      z-index: 1000;
      position: fixed;
      width: 200px; height: auto;
      right: 20px;
      bottom: 20px;
      padding: 15px;
      text-align: center;
      border-radius: 10px;
    }
    .green {
      color: #fff;
      background: #36549a;
      border: 3px solid #7f98c0;
    }

    .green a {
      color: #fff;
    }
    .window_show.act{
      display:  block;
    }

  </style>


</head>
<body>
  <div class='window_show green'>Заказ удален<button id="off">Отключить уведомление</button></div>
<script>

window.addEventListener("DOMContentLoaded", function() {
  var div = document.querySelector(".window_show"), hide = "abcd", i = 0, s = ["block", "none"], t;
  function rnd() {
    return 1000 + (Math.random() * 15000 | 0);
  }
  function clear() {
    window.clearTimeout(t);
  }
  function getItem() {
    return localStorage.getItem(hide);
  }
  function show() {
    clear();
    i ^= 1;
    div.style.display = s[i];
    !getItem() && (t = window.setTimeout(show, i ? rnd() : 5000));
  }
  !getItem() && show();
  div.addEventListener("click", function() {
    localStorage.setItem(hide, "hide");
    show();
  });
  div.addEventListener("mouseenter", clear);
  div.addEventListener("mouseleave", show);
});
</script>

</body>
</html>

CORONER 03.03.2018 09:40

Последний вопрос. Подскажите, как сделать так, чтобы только появление было рандомным, а исчезновение всегда через 5 секунд?
if(!localStorage.getItem('flag0')) var nn = setTimeout(function ff(){ 
sh(5000);

Таким образом?

рони 03.03.2018 09:53

Цитата:

Сообщение от CORONER
чтобы только появление было рандомным, а исчезновение всегда через 5 секунд

добавлено :) , пост №12


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