Сообщение от 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');
};
});
Большое спасибо за потраченное время в теме