【问题标题】:jQuery fontSize increase on ChromejQuery fontSize 在 Chrome 上增加
【发布时间】:2013-03-17 06:57:11
【问题描述】:

这段代码:

$(div).stop().animate({ 
    fontSize: "+=20%",
}, {
    duration: duration2,
    easing: "easeOutBack"
});

应该将字体大小增加 20%,并且它适用于除 Chrome 之外的所有浏览器,因为某种原因它会减小字体大小。

具体来说,我正在使用的页面是:http://dl.dropbox.com/u/67774614/letters/letters.html。键入字母以放下它们,然后字母应该增加字体大小以及在鼠标悬停时跳跃和变红。在 Chrome 上,它们应该(错误地)减小字体大小。

问题出在此脚本的第 82-90 行:http://tny.cz/49bc46f7

这里有一个建议:http://jsfiddle.net/cZEzy/1/

【问题讨论】:

  • 你能发布相关的 HTML/CSS 吗?如果您可以使用默认的 CSS 值和相关的 HTML/脚本创建一个 fiddle,那么一旦您发布的链接失效,这个问题的意义就更小了。
  • 快速查看链接的站点,您的 letter.css 中没有设置初始字体大小值。将一些 console.log() 语句添加到您的脚本中,以查看 Chrome 认为您的默认字体大小是什么。尝试设置默认字体大小,例如 1em/16px。这样Chrome就知道从什么字体增加到+=20%了。
  • 感谢您对动画的建议和好评,他们都提供了帮助。

标签: javascript jquery css google-chrome


【解决方案1】:

您应该设置一个初始字体大小。查看您的代码,letter.css 没有指定默认字体大小。

使用Alex Milewski 的答案中的代码并对其进行扩展。

基本 HTML:

<div id="org">Stuff1</div>
<div id="the">Stuff2</div>

以及基本脚本:

$('#the').animate({ 
    fontSize: "+=20%",
}, {
    duration: 2000,
    easing: "easeOutBack"
});

没有默认字体大小,复制您的问题:


DEMO - 已复制问题


使用默认字体大小,类似于以下解决问题:

body{
    font-size: 20px;
}

DEMO - 使用默认字体大小


【讨论】:

  • 解决了,谢谢。我仍然不知道为什么 Chrome 会想要在没有设置默认字体大小的情况下减小字体大小。
  • @Arty-fishL:我不确定。我认为这是 jQuery UI 1.10 没有从 Chrome 中获得正确的值。当使用alert($("#org").css("font-size")); 时,jQuery 确实在第一个 DEMO 中显示,复制了问题,16px,但由于某种原因,jQuery UI 似乎没有从 Chrome 传递该值。这表明 jQuery 和 jQuery UI 不使用相同的函数来获取值。虽然在Alex Milewski 的回答中可以看到,但在使用 jQuery 1.9 和最新的 jQuery-UI 时,问题不会发生。虽然我相信提供默认字体大小是一种很好的做法。
【解决方案2】:

不太清楚为什么在 Chrome 中会发生这种情况。

一个简单的解决方法是将字体大小定义为变量并手动增加它, 然后在动画过程中使用变量作为参数

Var fontsize = $(div).css('font-size') * 1.2;
$(div).stop().animate({ 
    fontSize: fontsize,
}, {
    duration: duration2,
    easing: "easeOutBack"
});

【讨论】:

    【解决方案3】:

    我认为这可能是你的 CSS:这个 fiddle 使用你的代码并且在我的 Chrome 中运行良好......

    $('#the').animate({ 
        fontSize: "+=20%",
    }, {
        duration: 2000,
        easing: "easeOutBack"
    });
    

    【讨论】:

    • -1 因为 OP 正在使用 jQuery 1.7 和 jquery-ui 1.10,一旦您切换到这些库,问题就会在 Chrome 中持续存在。请参阅fiddle 显示问题,使用 OPs jQuery 和 jQuery UI
    猜你喜欢
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多