Добавить 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 |
Цитата:
Цитата:
|
Аааааа, я имею ввиду что бы cookie запоминал выбранный цвет шрифта, так же надолго как выше это сделали с его размером, сейчас он если не ошибаюсь помнит его только на протяжении сессии.
|
Ubivectel,
а кнопочка выбора цвета есть? а кнопочка сохранения? ))) |
Так выглядит блок выбора цвета:
https://skrinshoter.ru/p/270221/o9ltkV.png?download=1&name=%D0%A1%D0%BA%D1%80%D0%B 8%D0%BD%D1%88%D0%BE%D1%82%2027-02-2021%2016:57:05.png Это код который выводит палитру как я понимаю (сами цвета лежат в массиве JS) <a href="" id="KIDE_mensaje_img_enlace"><img id="KIDE_mensaje_img" src="<?php echo $this->include_html('otras', 'blank.png'); ?>" alt="" class="KIDE_avatar" /></a> А вот и кнопочка "сохранить" <button onclick="kide.save_options()"><?php echo JText::_("COM_KIDE_SAVE"); ?></button> |
Ubivectel,
находим kide.onLoad добавляем красное kide.onLoad(function() { kide.avisar.handleVisibility(); *!* let localColor = localStorage.getItem("localColor"); if(localColor){ kide.color = localColor; kide.save_options(); }; */!* }, function() {}); находим save_options добавляем фигурные скобки и строку save_options: function() { this.show('KIDE_opciones', false); *!* if (this.color){ localStorage.setItem("localColor", this.color); this.save_config("color", this.color); } */!* this.save_config("ocultar_sesion", this.attr('ocultar_sesion', 'checked') ? 1 : 0); if (this.form("KIDE_template") != this.template) { this.save_config("template", this.form("KIDE_template")); location.reload(); } }, |
Ubivectel,
файл kidecustom.js все $( заменить на jQuery( document.addEventListener("DOMContentLoaded", function (event) { let cat = new Array( "Иди в жопу!", "Че надо?", "Отлезь гнида!", "Бухать - это вам не спортом заниматься.<br \/> Тут здоровье нужно!", "Ну-с... Причиним вред здоровью!", "Пей до дна - проснешься не одна!", "Вот мне сейчас очень хочется выпить, но с тобой я этого делать не буду!", "Любая грязь мерещится, как сказочный пейзаж,<br \/> когда в желудке плещется C2H5OH.", "Водка гадость, водка - яд!<br \/> Но сто грамм не повредят!", "За тех, кто любит тех, кто любит нас!", "Желаю что бы все!", "Нокатем!", "Выпьем зелья для веселья!", "Якщо людына не пье, вона або хвора, або падлюка!", "Бросаю пить! Ёщё раз! Не добросил.", "За сбычу мечт!", "Да замахни уже без тоста, нагло и по хамски.", "Лучше поздно, чем не до дна!", "Выпьем за тех, кто не пьёт!", "Когда б не состоялся вынос,<br \/> за то чтоб мы вас а не вы нас!", "Мы трижды выпили, пока искали повод!", "Пьянству – бой! Так выпьем перед боем!", "Ручки, ножки стали зябнуть –<br \/> не пора ли нам дерябнуть?!", "Выпьем за успех нашего безнадежного дела!", "До свидания! Трезвыми мы с вами сегодня не увидимся!", "За одмина!" ), randomize = cat[Math.floor(Math.random() * cat.length)]; document.querySelector('.quote_item').innerHTML = randomize; }); //Font resize jQuery(function () { let current = Number(localStorage.getItem("font") || 12); function setSize(n) { if (n === '') current = 12; else current += n; localStorage.setItem("font", current.toString()); let font = { 'font-size': `${current}px` } jQuery('#KIDE_output, .ulcontent, #KIDE_txt, #privado_full_x').css(font); } setSize(0); jQuery(".resetMe").click(function () { setSize('') }); jQuery(".increase").click(function () { setSize(1) }); jQuery(".decrease").click(function () { setSize(-1) }); // Hide UserList in const ulcontent = document.querySelector('.ulcontent'); const ulnone = document.querySelector('#ulnone'); ulnone.addEventListener('click', ulnoneClick); function ulnoneClick() { if (ulcontent.classList.contains("ulhidden")) { ulnone.textContent = '<<<'; } else { ulnone.textContent = '>>>'; } ulcontent.classList.toggle("ulhidden"); } // Hide UserList out // Clock in (function (global) { "use strict"; function Clock(el) { let document = global.document; this.el = document.getElementById(el); this.months = ['Янв', 'Фев', 'Марта', 'Апр', 'Мая', 'Июня', 'Июля', 'Августа', 'Сент', 'Окт', 'Нояб', 'Дек']; this.days = ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']; } Clock.prototype.addZero = function (i) { if (i < 10) { i = "0" + i; return i; } return i; }; Clock.prototype.updateClock = function () { let now, year, month, dayNo, day, hour, minute, /*second, */result, self; now = new global.Date(); year = now.getFullYear(); month = now.getMonth(); dayNo = now.getDay(); day = now.getDate(); hour = this.addZero(now.getHours()); minute = this.addZero(now.getMinutes()); // /*second = this.addZero(now.getSeconds());*/ // result = this.days[dayNo] + ". " + day + " " + this.months[month] + ". " + year + " - " + hour + ":" + minute; //С классами result = "<span class='day'>" + this.days[dayNo] + ". " + day + " " + this.months[month] + ". " + year + "</span> - <span class='time'>" + hour + ":" + minute + "</span>"; self = this; self.el.innerHTML = result; global.setTimeout(function () { self.updateClock(); }, 10000); // Время обновленния в миллисекундах }; global.Clock = Clock; }(window)); function addEvent(elm, evType, fn, useCapture) { "use strict"; if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); } else if (elm.attachEvent) { elm.attachEvent('on' + evType, fn); } else { elm['on' + evType] = fn; } } addEvent(window, "load", function () { if (document.getElementById("clock")) { let clock = new Clock("clock"); clock.updateClock(); } }); // Clock out }); |
И как всегда рони шЫкарен. Сенкс :thanks:
|
Часовой пояс GMT +3, время: 07:11. |