Обработчик размера шрифта JS

Я хотел бы изменить шрифты, как у нас в Word.

Обработчик размера шрифта JS

и мне было интересно, существует ли уже какая-либо библиотека, которая это делает, я еще ничего не нашел, но, вероятно, мои слова о поиске не очень хороши.

Я использую простой код, как показано ниже, от увеличения и уменьшения, но мне нужно что-то большее, например:

Обработчик размера шрифта JS

где мы имеем на маленьких шрифтах меньшие различия и на больших шрифтах большие различия.

     $(".increaseFont").on("click", function () {
                var $font = $("#myfont");
                var currentFontSize = parseInt($font.css('fontSize'));
                var targetFont = currentFontSize + 1;

                if (targetFont <= 24) {
                    $font.css("fontSize", targetFont + "px");
                }
            });
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id = "myfont"> Hello, I am trying to do some JS </div>

<div class = "increaseFont"> Click me </div>

Что ты мне предлагаешь?

Обновлено: Я не использую HTML-редактор WYSIWYG или что-то подобное, потому что я создаю свою собственную доску, и там нет места для редактора разметки. Итак, что я делаю, так это то, что когда пользователь наводит курсор на доску, он / она может редактировать размер шрифта с помощью двух кнопок.

Любой редактор WYSIWYG. Как CKEditor/summernote/и т. д.

Justinas 04.02.2019 10:04

AFAIK, вы можете легко просто жестко закодировать массив для этого, например. [5, 5.5, 6.5, ...], а затем при увеличении/уменьшении размера шрифта просто получить индекс текущего размера шрифта в массиве и выбрать следующий/предыдущий элемент в массиве.

Terry 04.02.2019 10:04

Установите размеры шрифта с использованием единиц rem и просто измените базовый размер на body, если вы хотите, чтобы все они имели относительный размер вверх и вниз sitepoint.com/understanding-and-using-rem-units-in-css

Dominic 04.02.2019 10:07

Юстинас, я использую разметку некоторых редакторов в другом месте, но это плата, которую я разработал, и я делаю это внутри платы.

Guilherme Felipe Reis 04.02.2019 10:36

Терри, да, я думаю, что это самый простой и лучший способ на данный момент. Я собираюсь придерживаться идеи массива.

Guilherme Felipe Reis 04.02.2019 10:38

Доминик, да, я должен использовать rem, это также поможет при разных размерах экрана. Чем вы, я буду держать с ним.

Guilherme Felipe Reis 04.02.2019 10:39
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
6
77
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы также можете попробовать так:

$(".font-sizes").change(function () {
    var size = $(".font-sizes").val();
    console.info(size);
    $("#myfont").css({fontSize: size + "px"});
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id = "myfont"> Hello, I am trying to do some JS </div>

<select class = "font-sizes">
  <option>--select font size--</option>
  <option value = "5">5</option>
  <option value = "10">10</option>
  <option value = "15">15</option>
  <option value = "20">20</option>
  <option value = "25">25</option>
  <option value = "30">30</option>
  <option value = "40">40</option>
</select>

Эй, Васу, это потрясающая идея, она похожа на идею массива. Кстати, я не знал, что я могу сделать $("#myfont").css({fontSize: size + "px"});, спасибо.

Guilherme Felipe Reis 04.02.2019 10:42

Очень простой способ — следовать логике Васу и Терри. См. следующее.

Большое спасибо, ребята.

$(".increaseFont").on("click", function () {
     var $font = $("#myfont");
     var fontSizeOptions = [5, 8, 10, 12, 14, 15, 30];
     var currentFontSize = parseInt($font.css('fontSize'));
     var currentIndex = fontSizeOptions.indexOf(currentFontSize);
     var targetFont = fontSizeOptions[currentIndex + 1];
 
 
     $font.css("fontSize", targetFont + "px");
  
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id = "myfont" style = "font-size: 5px;"> Hello, I am trying to do some JS </div>

<div class = "increaseFont"> Click me </div>

P.S.: код еще нужен для предотвращения некоторых сбоев.

Другие вопросы по теме