Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Preloader background cookies (https://javascript.ru/forum/misc/65424-preloader-background-cookies.html)

rikardo 17.10.2016 23:52

Preloader background cookies
 
надеюсь что раздел выбрал верно , так как в задаче требуется не стандартное решение, подобной темы не нашел, поправьте если плохо смотрел; вопрос не сложный , буду благодарен кто подскажет:
В ниже приведенную конструкцию нужно встроить изменение цвета для $preloader; Если прелоадер показывается то $preloader = black , если прелоадер не выводиться = ничего.
<script type="text/javascript">
$(document).ready(function() {
     if (!$.cookie('noWin')) {
    $(window).on('load', function () {
    var $preloader = $('#page'),
        $spinner   = $preloader.find('.spinner');
    $preloader.delay().fadeOut('slow',function() {
                $(this).remove();
            });
});
     }
     else { $("#page").hide();
     }
     var date = new Date();
     date.setTime(date.getTime() + ());
     $.cookie('noWin', true, {
    expires: date,
    path: '/'
   });
});
</script>

warren buffet 18.10.2016 05:06

Цитата:

Сообщение от rikardo
Если прелоадер показывается то $preloader = black , если прелоадер не выводиться = ничего.


И как ты увидишь цвет у того, что не показано?

rikardo 18.10.2016 18:08

html простой:
<div id="page"><div class="spinner"></div></div>

Наверное не понятно изъяснил: еще раз!
Всё работает, но $preloader начинает разворачиваться на фоне (цвет фона), тот который я задал вот таким образом:
#page {
background:rgba(251,251,251,1.00);
}

и всё работает.
Но нужно в то время когда $preloader работает (при условии отсутствия куков) что бы фон менялся на черный #000000
Всё достаточно просто но я новичок потому поинтересовался.

P.S если $preloader скрыт соответственно фон css_ный.
....как мне кажется решение где то рядом и не хватает пары строк в Javascript_коде тот что выше.

rikardo 18.10.2016 18:13

Цитата:

Сообщение от warren buffet (Сообщение 432091)
И как ты увидишь цвет у того, что не показано?

ответил выше

warren buffet 18.10.2016 21:59

Цитата:

Сообщение от rikardo
при условии отсутствия куков

Прежде всего надо убрать лишнее. Зачем ждать window.load внутри $(document).ready? И теперь по твоему ТЗ в цитате найдено место где надо поменять фон у дива. Правильно?

$(document).ready(function() {

	var $preloader = $('#page');
	
	if (!$.cookie('noWin')) {
		/* TODO change background */
		$spinner=$preloader.find('.spinner');
		$preloader.delay().fadeOut('slow',function(){$(this).remove();});
	}
	else
		$preloader.hide();

	var date = new Date();
	date.setTime(date.getTime()+());
	$.cookie('noWin',true,{expires:date,path:'/'});
	
});


Если правильно попроси спецов по JQuery. Я у нем нуль.

rikardo 19.10.2016 10:33

верно конечно но не совсем:
если учесть замечание warren buffet всё выглядит ни чуть не хуже ...
пояснение $preloader выглядит как черные буквы на белом фоне но появляется все (стартует) с черного фона (сама картинка анимированная), то есть если оставить
#page {
background:rgba(251,251,251,1.00);
}

то в самом начале лишнее мелькание белое-черное.
А если сделать
#page {
    background: #000;
}

то в то время когда когда $preloader не появляется (а появляется он допустим раз в час в виде приветственной заставки) мелькает черный фон #page.
Получается что желаемое можно получить сделав #page_белым без $preloaderа, и #page_черным с $preloaderом.
Вот такая не простая задача. Спасибо что пытаетесь помочь очень признателен.
P.S
Если убрать в стилях вообще все цвета фона то сперва мелькает страница а потом только прелоадер появляется.

rikardo 19.10.2016 10:54

Цитата:

Сообщение от warren buffet (Сообщение 432164)
Прежде всего надо убрать лишнее. Зачем ждать window.load внутри $(document).ready? И теперь по твоему ТЗ в цитате найдено место где надо поменять фон у дива. Правильно?

$(document).ready(function() {

	var $preloader = $('#page');
	
	if (!$.cookie('noWin')) {
		/* TODO change background */
		$spinner=$preloader.find('.spinner');
		$preloader.delay().fadeOut('slow',function(){$(this).remove();});
	}
	else
		$preloader.hide();

	var date = new Date();
	date.setTime(date.getTime()+());
	$.cookie('noWin',true,{expires:date,path:'/'});
	
});


Если правильно попроси спецов по JQuery. Я у нем нуль.

переехал на http://javascript.ru/forum/jquery/65...d-cookies.html
спасибо что откликнулись, там изложил подробности.


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