javascript – 在js中更改字体大小的函数.如何添加缩放限制?

前端之家收集整理的这篇文章主要介绍了javascript – 在js中更改字体大小的函数.如何添加缩放限制?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有功能

    function changeFontSize(points) {
        var e = document.getElementsByTagName("BODY")[0];
        var style = window.getComputedStyle(e);
        var size = style.getPropertyValue('font-size');
        size = size.replace("px","");
        size = size * 1;
        size = size + points;
        //if(size <= 0 && size  <= 3){
            e.style.fontSize = size + "px";
            localStorage.setItem("size",size);
        //}
    }

    function saveFontSize() {
        var size = localStorage.getItem("size");
        if (size !== null) {
            var e = document.getElementsByTagName("BODY")[0];
            e.style.fontSize = size + "px",'!important';
        }
    }

    document.addEventListener("DOMContentLoaded",saveFontSize);



上面的代码工作正常.
上述功能放大并缩小了我网站上的字体大小.

我需要将此函数的功能限制为字体大小的3倍.字体大小减小(较小的字体大小)不能小于其原始(原始大小).

怎么做?
请帮忙.

最佳答案
您可以存储初始字体大小,然后使用Math.minMath.max

body.style.fontSize = Math.max(
  initialBodyFontSize,Math.min(
    initialBodyFontSize * 3,getBodyFontSize() + points
  )
) + 'px';

演示(没有通过localStorage部分加载/保存,因为这里不可能):

{
  var body = document.querySelector('body');
  var initialBodyFontSize;
  
  // Note: this supposes the body's font size is expressed in px
  function getBodyFontSize() { 
    return parseFloat(window.getComputedStyle(body).getPropertyValue('font-size'));
  }

  function changeBodyFontSize(points) {
    body.style.fontSize = Math.max(
      initialBodyFontSize,Math.min(
        initialBodyFontSize * 3,getBodyFontSize() + points
      )
    ) + 'px';
    console.log(body.style.fontSize);
  }

  document.addEventListener('DOMContentLoaded',function () {
    initialBodyFontSize = getBodyFontSize();
  });
}

另请注意,您通常应该避免使用onclick和类似的属性,而是更喜欢对关联的DOM元素执行addEventListener JS调用.

猜你在找的JavaScript相关文章