如何使用jQuery中的css font-weight属性为文本制作动画?正常到粗体

前端之家收集整理的这篇文章主要介绍了如何使用jQuery中的css font-weight属性为文本制作动画?正常到粗体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试像不透明效果一样的动画,这会使文字变得更大胆.尝试了通常的animate()方法,但没有奏效.搜索它但没有找到任何例子.是否有可能做到这一点?

jsFiddle.

jQuery的:

var Text = $('h1');
Text.click(function() {
    Text.animate({'font-weight':'bold'},600)
        .delay(200).animate({'font-weight':'normal'},600);
});

解决方法

可悲的是,我认为这是不可能的.

字体中的每个字符都具有特定的形状.此外,不同权重权重中的相似字符也是不同的 – 粗体字符不仅仅具有与其常规对应物的数学定义的偏移.

使用jQuery.css()可以很容易地从常规跳转到粗体或斜体,但是目前jQuery.animate()目前无法在浏览器中转换font-weight.在动画中也很难做到,因为不同的权重之间没有“框架”,因为它们都是分开绘制的.

然而,

如果您为不同的权重(例如Exo)选择具有一致字母间距的字体,并执行从细到黑的步进动画,则可能接近所需的结果.

从你的jsFiddle开始,这是我能想到的:

Here is working jsFiddle.

而背后相当愚蠢的Javascript:

Text.click(function() {

  Text.css({'font-weight':200});
  setTimeout(function(){ Text.css({'font-weight':300})},30)
  setTimeout(function(){ Text.css({'font-weight':400})},60)
  setTimeout(function(){ Text.css({'font-weight':500})},90)
  setTimeout(function(){ Text.css({'font-weight':600})},120)
  setTimeout(function(){ Text.css({'font-weight':700})},150)
  setTimeout(function(){ Text.css({'font-weight':800})},180)
  setTimeout(function(){ Text.css({'font-weight':900})},210)

});
原文链接:https://www.f2er.com/jquery/177527.html

猜你在找的jQuery相关文章