Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.02.2021, 10:23
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Добавить 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;
       });
      });


Все работает, вот только он сбрасывает значения на дефолтные при каждом обновлении страницы, а очень бы хотелось, что бы запоминал на время сессии. Однако сколько не бился с куками, не удается правильно их прописать.
Ответить с цитированием
  #2 (permalink)  
Старый 23.02.2021, 10:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Ubivectel,
бессмысленно писать имя переменной несколько раз
Ответить с цитированием
  #3 (permalink)  
Старый 23.02.2021, 10:53
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Да очень догадываюсь, что сделал громоздко и не рационально, но как упростить пока не понял
Ответить с цитированием
  #4 (permalink)  
Старый 23.02.2021, 11:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

изменение размера шрифта по клику и сохранение
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>
Ответить с цитированием
  #5 (permalink)  
Старый 23.02.2021, 11:50
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Спасибо рони, как всегда все заработало, но хоть убей не понимаю почему первый кривой код куки не писал, а твой все записывает без дополнительных телодвижений )))
Ответить с цитированием
  #6 (permalink)  
Старый 23.02.2021, 12:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Ubivectel,
https://developer.mozilla.org/ru/doc...w/localStorage
Ответить с цитированием
  #7 (permalink)  
Старый 27.02.2021, 10:58
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

В продолжение;
Попытался проделать тоже самое с цветом шрифта, как я понял это оно:

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"');


Но не прокатило, вообще цвет перестал работать.
Ответить с цитированием
  #8 (permalink)  
Старый 27.02.2021, 11:16
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Однако засомневался, не тут ли надо править:

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=/';
Ответить с цитированием
  #9 (permalink)  
Старый 27.02.2021, 14:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Ubivectel,
не могу подсказать, информации недостаточно.
Ответить с цитированием
  #10 (permalink)  
Старый 27.02.2021, 15:08
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 166

Не пойму какой именно фрагмент кода выложить, вот оба файла

Файл с первым фрагментом:

https://noviy-kovcheg.ru/components/...ult/js/kide.js

строка: 84

второй:

https://noviy-kovcheg.ru/components/com_kide/js/base.js

строка: 366
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно добавить еще одно поле <input> sergofedor06 Javascript под браузер 20 17.09.2016 00:31
Добавить срок жизни Cookies Vslav iv Javascript под браузер 2 23.11.2015 00:55
Размер cookies в IE9 или альтернатива cookies? JDev Общие вопросы Javascript 23 07.08.2012 18:03
проверка отсутствия всех cookies legrol Общие вопросы Javascript 0 30.03.2012 11:38
Про использование cookies zloctb Общие вопросы Javascript 3 11.02.2012 09:36