【问题标题】:Resize font in jquery在jquery中调整字体大小
【发布时间】:2018-10-15 18:57:23
【问题描述】:

我有一个小问题。我想调整 jquery 中所有 html 元素的大小。我有代码,但我可以增加和减少到无穷大。

    var originalSize = $('html').css('font-size');
  // reset
   $(".resetMe").click(function(){
  $('html').css('font-size', originalSize); 

   });

   // Increase Font Size
   $(".increase").click(function(){
  var currentSize = $('html').css('font-size');
  var currentSize = parseFloat(currentSize)*1.05;
  $('html').css('font-size', currentSize);

  return false;
   });

   // Decrease Font Size
   $(".decrease").click(function(){
  var currentFontSize = $('html').css('font-size');
  var currentSize = $('html').css('font-size');
  var currentSize = parseFloat(currentSize)*0.8;
  $('html').css('font-size', currentSize);

  return false;
   });

我想限制增加和减少字体大小的数量?

如何编辑这段代码?

【问题讨论】:

  • 请详细说明限制和您的期望
  • 这不太可能运作良好。无论您在 HTML 元素上设置什么,任何具有特定字体大小的元素,例如 12px,都会保留它。你的目标是什么?
  • 我的目标是,如果我最多点击 3 次会增加字体大小并且超过 3 次点击不会增加更多
  • 如果您只想让用户点击不超过 3 次,我会设置一个计数器变量,用于跟踪点击次数,第三次之后我会使用 preventDefault 阻止默认操作
  • 代码应该这样工作:我点击链接、按钮或其他元素,字体在整个页面上增加一个百分比。这包含在上面的代码中。我想限制点击次数以增加和减少字体大小,例如 3

标签: jquery html css font-size


【解决方案1】:

我做了类似的事情,但仍然不工作

var originalSize = $('html').css('font-size');
var resizeCount = 0;
// reset
$(".resetMe").click(function(){
    $('html').css('font-size', originalSize);

});

// Increase Font Size
$(".increase").click(function(){
    var currentSize = $('html').css('font-size');
    var currentSize = parseFloat(currentSize)*1.05;
    $('html').css('font-size', currentSize);
    return false;
    var resizeCount =+1;
    if (resizeCount = 3) {
        event.preventDefault();
    }
});

// Decrease Font Size
$(".decrease").click(function(){
    var currentFontSize = $('html').css('font-size');
    var currentSize = $('html').css('font-size');
    var currentSize = parseFloat(currentSize)*0.95;
    $('html').css('font-size', currentSize);

    return false;
});

【讨论】:

    【解决方案2】:

    您的代码中有几个错误,例如您在单击事件中覆盖 resizeCounter 值,因为您在它前面使用了 var 或者您有错误的 if 语句。 = 为变量分配一个新值,而不是像 ===== 这样的相等运算符。是的,您必须记住,如果您使用 rem 或 em 作为字体大小单位,则更改根元素的字体大小仅适用于子元素。

    请注意,如果您增加字体大小,然后将其变小,则在下一次增加时,计数器将具有之前的值(不会自动重置)。

    var originalSize = $('html').css('font-size');
    var increaseCounter = 0;
    var decreaseCounter = 0;
    
    // reset
    $(".resetMe").click(function() {
      $('html').css('font-size', originalSize);
      increaseCounter = 0;
      decreaseCounter = 0;
    });
    
    // Increase Font Size
    $(".increase").click(function() {
      increaseCounter += 1;
    
      if (increaseCounter <= 3) {
        var currentSize = $('html').css('font-size');
        var biggerSize = parseFloat(currentSize) * 1.05;
        $('html').css('font-size', biggerSize);
      }
    });
    
    // Decrease Font Size
    $(".decrease").click(function() {
      decreaseCounter += 1;
    
      if (decreaseCounter <= 3) {
        var currentSize = $('html').css('font-size');
        var decreasedSize = parseFloat(currentSize) * 0.95;
        $('html').css('font-size', decreasedSize);
      }
    });
    html {
      font-size: 16px;
    }
    
    body {
      background: #20262E;
      padding: 20px;
      font-family: Helvetica;
      font-size: 1rem;
    }
    
    button {
      background: #0084ff;
      border: none;
      border-radius: 5px;
      outline: 0;
      padding: 8px 14px;
      font-size: 15px;
      color: #fff;
    }
    
    p {
      font-size: 1.3rem;
    }
    
    #banner-message {
      background: #fff;
      padding: 20px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="banner-message">
      <p>Hello World</p>
      <button class="resetMe">reset</button>
      <button class="increase">make bigger</button>
      <button class="decrease">make smaller</button>
    </div>

    【讨论】:

    • 我像你一样做,但仍然不能很好地工作。需要我循环吗?
    • 如果我点击超过 3 次仍然会增加和减少字体大小。我在每个 html elemetnt 字体大小中都有 em
    • 对不起,我的错。它不是链接或表单提交按钮,所以 preventDefault 在这里绝对没有意义。
    • 非常感谢 :D 你是最棒的
    • 在笔记本电脑上编写代码比在移动设备上编写代码更好;) 我已经更新了我的代码并添加了一个简短的通知。经过一些重构,代码肯定会更好、更优雅,但这完全取决于你。您可以添加更多功能,这将为表格带来更好的用户体验,但实际上,它可以工作
    猜你喜欢
    • 2012-08-18
    • 2014-04-04
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多