Показать сообщение отдельно
  #10 (permalink)  
Старый 18.07.2016, 05:18
Интересующийся
Отправить личное сообщение для LebedevUA Посмотреть профиль Найти все сообщения от LebedevUA
 
Регистрация: 16.07.2016
Сообщений: 19

Сообщение от Spass Посмотреть сообщение
$('[class*=popup-link]').trigger('click');
	if (date.toUTCString() < 0) {
		$('.close').trigger('click');
		
	};

Зачем тебе запускать тригер открытия окна и потом по условию его закрывать, когда можно по условию его и не открывать?
Зачем в селекторах использовать * и ^, понимаешь ли ты их назначение, действительно без них не обойтись?
Зачем кругом блочить всплытие и действия браузера по умолчанию?

Тот функционал что тебе нужно реализуется в десяток строк, остальное делается на html и css. Не знаю где ты этот пример с окном нашел, но в нем просто куча мусора (имхо конечно).

Начни с заданий попроще, благо в интернете уроков полно, и бери в привычку все непонятное гуглить.
Я только учусь. Просто беру за пример готовый скрипт и разбираю его на куски, смотрю как все устроенно.

Непонятное гуглю, есть ответы, но подточить под мою ситуацию мне пока сложно. Говрорю же, учусь .

$('[class*=popup-link]').trigger('click');
	if (date.toUTCString() < 0) {
		$('.close').trigger('click');


Он же не отслеживает куки. Тоесть я закрыл окно, ф5 - снова появляеться попап. По идеи он не должен отображаться. Пока не пройдут куки. В браузер они ставяться, document.cookies эту куку показывает, но правило не рабатывает. Сейчас код такой.

date = new Date();
date.setHours(date.getHours() + 1);

document.cookie = "name=popup; expires=" + date.toUTCString();
document.write(document.cookie);

$(document).ready(function() {

	$('body').append('<div class="popup-box" id="popup-box-1"><div class="close">X</div><div class="top"><h2>текст</h2></div><div class="bottom">текст</div></div>');
	$('body').append('<div id="blackout"></div>');
	
	var boxWidth = 800;
	
	function centerBox() {
		
		/* Preliminary information */
		var winWidth = $(window).width();
		var winHeight = $(document).height();
		var scrollPos = $(window).scrollTop();
		/* auto scroll bug */
		
		/* Calculate positions */
		
		var disWidth = (winWidth - boxWidth) / 2
		var disHeight = scrollPos + 150;
		
		/* Move stuff about */
		$('.popup-box').css({'width' : boxWidth+'px', 'left' : disWidth+'px', 'top' : disHeight+'px'});
		$('#blackout').css({'width' : winWidth+'px', 'height' : winHeight+'px'});
	
		return false;
	}
	
	
	$(window).resize(centerBox);
	$(window).scroll(centerBox);
	centerBox();	

	$('[class*=popup-link]').click(function(e) {
	
		/* Prevent default actions */
		e.preventDefault();
		e.stopPropagation();
		
		/* Get the id (the number appended to the end of the classes) */
		var name = $(this).attr('class');
		var id = name[name.length - 1];
		var scrollPos = $(window).scrollTop();
		
		/* Show the correct popup box, show the blackout and disable scrolling */
		$('#popup-box-'+id).show();
		$('#blackout').show();
		$('html,body').css('overflow', 'hidden');
		
		/* Fixes a bug in Firefox */
		$('html').scrollTop(scrollPos);
	});
	$('[class*=popup-box]').click(function(e) { 
		/* Stop the link working normally on click if it's linked to a popup */
		e.stopPropagation(); 
	});
	$('html').click(function() { 
		var scrollPos = $(window).scrollTop();
		/* Hide the popup and blackout when clicking outside the popup */
		$('[id^=popup-box-]').hide(); 
		$('#blackout').hide(); 
		$("html,body").css("overflow","auto");
		$('html').scrollTop(scrollPos);
	});
	$('.close').click(function() { 
		var scrollPos = $(window).scrollTop();
		/* Similarly, hide the popup and blackout when the user clicks close */
		$('[id^=popup-box-]').hide(); 
		$('#blackout').hide(); 
		$("html,body").css("overflow","auto");
		$('html').scrollTop(scrollPos);
	});
	
	$('[class*=popup-link]').trigger('click');
	if (date.toUTCString() < 0) {
		$('.close').trigger('click');
		
	};
	
});


Большое спасибо за потраченное время в теме
Ответить с цитированием