javascript - 用/transition设置元素的字体大小时,如何从中心调整大小

标签 javascript css

所以我目前正在制作一个年龄计数器应用程序 enter image description here

我想做的是让数字每次增加时都会弹出。

我已经尝试了几种不同的技术,并取得了一些效果——但是有一个问题。

所以这是我当前的解决方案,在我的 .js 中:

  setInterval(this.bubbleNumber.bind(this),1000);

  App.fn.bubbleNumber = function()
  {
    var hour = $('hour-placeholder');
    if(hour)
    {
      hour.style.fontSize="7vw";
      hour.style.webkitTransition=".1s ease-in-out";
      setTimeout(function(){
        hour.style.fontSize="6vw";
        hour.style.webkitTransition=".6s ease-in-out";
      }, 500);
    }
  };

这行得通,但问题是,当调整大小时,如果数字左对齐,数字从左上角调整大小,如果数字右对齐,数字从右上角调整。我想更改带过渡的字体大小,并从中心开始。

我很确定在我当前的实现中这是不可能的,事实上我几乎可以肯定我将不得不切换到使用 jQuery 的 animate()在 CSS3 上 transform (scale) . 我不太明白 difference在“CSS 动画”和“JavaScript 动画”之间,因为对我来说,JavaScript 似乎最终还是使用了 CSS 动画?所以我真的不确定我应该走哪条路

最佳答案

确保数字的容器足够大以容纳放大的数字。通过给数字一个在 vw 中设置的边距,将数字定位在容器的中心。
然后,当脚本将字体大小从 6vw 更改为 7vw 时,将边距减少 0.5vw 并为边距提供相同的过渡时间。这应该使数字在过渡期间居中。
您还可以使用相对或绝对定位而不是边距;在这种情况下,通过设置 top 和 left 来定位数字,并为 top 和 left 设置动画。

关于javascript - 用/transition设置元素的字体大小时,如何从中心调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30769252/

相关文章:

css - 在这种情况下如何覆盖字体大小(em)?

javascript - AJAX 调用后 formatCurrency 不起作用

javascript - 如何在 Javascript 或 CSS 中实现完整的背景烟雾效果

javascript - iframe 中单击文档时发生的事件

css - 使用 CSS 将我的文本微调 10px

javascript - 特殊字符前换行

html - CSS - 任何限制元素被截断的方法

html - 我无法将我的 css 链接到我的 html(我已经尝试了一切)

javascript - 无法相继运行两个函数

php - 发布表单后重置隐藏变量