Смена стиля у элементов дизайна
|
|
waak | Дата: Понедельник, 04.08.14, 14:26:46 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
| Здравствуйте ! подскажите пожалуйста решение одной проблемы у меня есть скрипт который меняет цвет фона сайта и цвет фона шапки то есть пользователю дается несколько вариантов расцветки из которых он выбирает и все работает вот только с одним минусом после того как пользователь еще раз меняет что то одно шапку или фон тогда у другого автоматически становиться цвет по умолчанию ВОПРОС? как мне сделать так чтоб поля сохраняли выбранный вариант ранее ???
Скрипт
<script type="text/javascript" src="http://talantlev.ucoz.ru/js/jquery.min.js"></script> <script type="text/javascript" src="http://talantlev.ucoz.ru/js/jquery.cookie.js"></script>
<b>Выберите цвет фона:</b> <select id="bg_form"> <option selected value="#ffffff">Белый <option class="st1"value="#000000">Черный <option class="st2"value="#0000ff">Голубой <option class="st3"value="#00ff00">Известковый <option class="st4"value="#00ff7f">Весенний зеленый </select>
<b>Выберите цвет фона шапки:</b> <select id="bg_form2"> <option selected value="#ffffff">Белый <option class="st1"value="#000000">Черный <option class="st2"value="#0000ff">Голубой <option class="st3"value="#00ff00">Известковый <option class="st4"value="#00ff7f">Весенний зеленый </select>
<script type="text/javascript"> $(document).ready(function() { if ($.cookie("bg_color")!='') $("body").css("background-color",$.cookie("bg_color"));
$("#bg_form").change(function(){ $("body").css("background-color",$("#bg_form :selected").val()); $.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1}); }); });
$(document).ready(function() { if ($.cookie("bg_color")!='') $("div #heder").css("background-color",$.cookie("bg_color"));
$("#bg_form2").change(function(){ $("div #heder").css("background-color",$("#bg_form2 :selected").val()); $.cookie("bg_color",$("#bg_form2 :selected").val(), {expires: 1}); }); }); </script>
|
|
| |
Нэринс | Дата: Понедельник, 04.08.14, 16:16:32 | Сообщение # 2 |
Рядовой
Группа: Чатер
Сообщений: 12
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| я плохо знаю js но могу предположить что дело в том что в обоих функциях цвет записывается в одну и ту же куку $.cookie("bg_color") Этот код по идее должен заработать Код <script type="text/javascript"> $(document).ready(function() { if ($.cookie("bg_color")!='') $("body").css("background-color",$.cookie("bg_color"));
$("#bg_form").change(function(){ $("body").css("background-color",$("#bg_form :selected").val()); $.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1}); }); }); $(document).ready(function() { if ($.cookie("bg_color2")!='') $("div #heder").css("background-color",$.cookie("bg_color2"));
$("#bg_form2").change(function(){ $("div #heder").css("background-color",$("#bg_form2 :selected").val()); $.cookie("bg_color2",$("#bg_form2 :selected").val(), {expires: 1}); }); }); </script>
Сообщение отредактировал Нэринс - Понедельник, 04.08.14, 16:31:43 |
|
| |
waak | Дата: Понедельник, 04.08.14, 22:08:33 | Сообщение # 3 |
Рядовой
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
| Нэринс, Большое спасибо за отзывчивость но это не помогло все осталось по прежнему если я выбираю цвет для шапки и для фона одновременно то есть для шапки к примеру красный а для фона зеленый он так и становиться но после того как я обновлю страницу и решу изменить цвет для шапки к примеру на жолтый то и фон сразу же меняется на тот что у меня по умолчанию задан а конкретно на белый
|
|
| |
Defman | Дата: Понедельник, 04.08.14, 22:19:50 | Сообщение # 4 |
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
| Зачем две проверки на готовность документа? Код $(document).ready(function() { if ($.cookie("bg_color") != null) $("body").css("background-color",$.cookie("bg_color"));
$("#bg_form").change(function(){ $("body").css("background-color",$("#bg_form :selected").val()); $.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1}); });
if ($.cookie("bg_color2")!=null) $("div #heder").css("background-color",$.cookie("bg_color2"));
$("#bg_form2").change(function(){ $("div #heder").css("background-color",$("#bg_form2 :selected").val()); $.cookie("bg_color2",$("#bg_form2 :selected").val(), {expires: 1}); }); });
|
|
| |
waak | Дата: Вторник, 05.08.14, 02:31:33 | Сообщение # 5 |
Рядовой
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
| Defman, в коком смысле две? я тут подумал над решение этой проблемы таким способом правда не знаю как сделать . Сейчас у меня показывается сразу два поля и у них по умолчанию стоит белый цвет то есть при вызове этого действия я автоматически меняю сразу цвет шапки и фона на белый . а если разбить этот скрипт на два и вызывать их в разных окошках то есть когда я буду задавать цвет для шапки то второй скрипт не будет срабатывать правильно? вот только как правильно его разбить не знаю
Сообщение отредактировал waak - Вторник, 05.08.14, 02:34:38 |
|
| |
Defman | Дата: Вторник, 05.08.14, 02:48:13 | Сообщение # 6 |
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
| Код <script type="text/javascript"> $(document).ready(function() { //первый вызов if ($.cookie("bg_color")!='') $("body").css("background-color",$.cookie("bg_color"));
$("#bg_form").change(function(){ $("body").css("background-color",$("#bg_form :selected").val()); $.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1}); }); });
$(document).ready(function() { //второй вызов, зачем? if ($.cookie("bg_color")!='') $("div #heder").css("background-color",$.cookie("bg_color"));
$("#bg_form2").change(function(){ $("div #heder").css("background-color",$("#bg_form2 :selected").val()); $.cookie("bg_color",$("#bg_form2 :selected").val(), {expires: 1}); }); }); </script> Я вот это не понял)
|
|
| |
Нэринс | Дата: Вторник, 05.08.14, 22:24:46 | Сообщение # 7 |
Рядовой
Группа: Чатер
Сообщений: 12
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| waak, я думаю Defman, имеет в виду сделать так(ибо функция $(document).ready(function() вызывалась 2 раза хотя если скрипт идёт подряд то можно и в 1 всё это сделать) Код <script type="text/javascript"> $(document).ready(function() { //первый вызов if ($.cookie("bg_color")!='') $("body").css("background-color",$.cookie("bg_color"));
$("#bg_form").change(function(){ $("body").css("background-color",$("#bg_form :selected").val()); $.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1}); }); //второй вызов if ($.cookie("bg_color")!='') $("div #heder").css("background-color",$.cookie("bg_color"));
$("#bg_form2").change(function(){ $("div #heder").css("background-color",$("#bg_form2 :selected").val()); $.cookie("bg_color",$("#bg_form2 :selected").val(), {expires: 1}); }); }); </script> Хотя я не уверен что в этом решение проблемы но попробуйте, не выйдет так дальше подумаем
Сообщение отредактировал Нэринс - Вторник, 05.08.14, 22:29:47 |
|
| |
waak | Дата: Пятница, 08.08.14, 14:42:05 | Сообщение # 8 |
Рядовой
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
| Defman, Нэринс, спасибо все разобрался !
|
|
| |