Добавить cookies
Здравствуйте товарищи.
Потребовалось добавить сайту динамическое изменение размера шрифта для отдельных элементов, в итоге получился вот такой код: $(document).ready(function(){ var originalSize = $('.KIDE_msg_top').css('font-size'); var originalSize = $('.ulcontent').css('font-size'); var originalSize = $('#KIDE_txt').css('font-size'); // reset $(".resetMe").click(function(){ $('#KIDE_output').css('font-size', originalSize); $('.ulcontent').css('font-size', originalSize); $('#KIDE_txt').css('font-size', originalSize); }); // Increase Font Size $(".increase").click(function(){ var currentDivSize = $('#KIDE_output').css('font-size'); var currentDivSize = $('.ulcontent').css('font-size'); var currentDivSize = $('#KIDE_txt').css('font-size'); var currentDivSize = parseFloat(currentDivSize) + 1; $('#KIDE_output').css('font-size', currentDivSize); $('.ulcontent').css('font-size', currentDivSize); $('#KIDE_txt').css('font-size', currentDivSize); return false; }); // Decrease Font Size $(".decrease").click(function(){ var currentDivSize = $('#KIDE_output').css('font-size'); var currentDivSize = $('.ulcontent').css('font-size'); var currentDivSize = $('#KIDE_txt').css('font-size'); var currentDivSize = parseFloat(currentDivSize) - 1; $('#KIDE_output').css('font-size', currentDivSize); $('.ulcontent').css('font-size', currentDivSize); $('#KIDE_txt').css('font-size', currentDivSize); return false; }); }); Все работает, вот только он сбрасывает значения на дефолтные при каждом обновлении страницы, а очень бы хотелось, что бы запоминал на время сессии. Однако сколько не бился с куками, не удается правильно их прописать. :help: |
Ubivectel,
бессмысленно писать имя переменной несколько раз |
Да очень догадываюсь, что сделал громоздко и не рационально, но как упростить пока не понял
|
изменение размера шрифта по клику и сохранение
Ubivectel,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $(function(){ var current = Number(localStorage.getItem("font") || 18); function setSize(n) { if(n === '') current = 18; else current += n; localStorage.setItem("font", current.toString()); var font = {'font-size' : `${current}px`} $('#KIDE_output, .ulcontent, #KIDE_txt').css(font); } setSize(0); // reset $(".resetMe").click(function(){ setSize('') }); // Increase Font Size $(".increase").click(function(){ setSize(1) }); // Decrease Font Size $(".decrease").click(function(){ setSize(-1) }); }); </script> </head> <body> <button class="resetMe">resetMe</button> <button class="increase">increase</button> <button class="decrease">decrease</button> <div id="KIDE_output">KIDE_output</div> <div id="KIDE_txt">KIDE_txt</div> <div class="ulcontent">ulcontent</div> </body> </html> |
Спасибо рони, как всегда все заработало, но хоть убей не понимаю почему первый кривой код куки не писал, а твой все записывает без дополнительных телодвижений )))
|
|
В продолжение;
Попытался проделать тоже самое с цветом шрифта, как я понял это оно: kide.insertNewContent = function (uid, name, text, url, ti, color, rango, id, sesion, yo, hora, img) { if (text.replace(/ /g, "") != "") { let c = color.length > 0 ? 'style="color:#' + color + '" class="KIDE_msg"' : 'class="KIDE_dc_' + this.rangos[rango] + ' KIDE_msg"'; Попробовал так: let c = localStorage.getItem(color.length > 0 ? 'style="color:#' + color + '" class="KIDE_msg"' : 'class="KIDE_dc_' + this.rangos[rango] + ' KIDE_msg"'); Но не прокатило, вообще цвет перестал работать. |
Однако засомневался, не тут ли надо править:
save_config: function(param, value) { let config = document.cookie.match(/kide_config=([^;]*)/); if (config && config[1]) { config = decodeURIComponent(config[1]); if (config.search(eval('/' + param + '=/')) > -1) config = config.replace(eval('/' + param + '=[^;]*/'), param + '=' + value); else config += ';' + param + '=' + value; } else config = param + '=' + value; document.cookie = 'kide_config=' + encodeURIComponent(config) + '; path=/'; |
Ubivectel,
не могу подсказать, информации недостаточно. |
Не пойму какой именно фрагмент кода выложить, вот оба файла
Файл с первым фрагментом: https://noviy-kovcheg.ru/components/...ult/js/kide.js строка: 84 второй: https://noviy-kovcheg.ru/components/com_kide/js/base.js строка: 366 |
Часовой пояс GMT +3, время: 23:49. |