Добавить 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, время: 22:44. |