Raphael JS中的动画字体大小是否有流畅的转换可能性
Is there a fluent transition possibility for animation font-size in Raphael JS?
到目前为止,它似乎不是流利的,而是断断续续的。例如,如果您有一个字体大小为14的状态属性,并且希望将动画设置为字体大小为16的状态,则过渡看起来并不平滑。
它分两步跳。首先更改为15,然后更改为16px
可以强迫它看起来更光滑吗?
我正在使用Firefox 14进行测试。
我的当前代码:
var fillerText = {
"fill" : "#00738f",
"font-size": 14,
"font-family": "Arial, Helvetica, sans-serif"
}
var fillerTextHover = {
"fill" : "#00738f",
"font-size": 16,
"font-family": "Arial, Helvetica, sans-serif",
"cursor": "pointer"
}
text.hover(function () {
text.animate(fillerTextHover, 500);
},
function () {
text.animate(fillerText, 500);
}
);
这是一个已知的问题,与Raphael无关,而是与亚像素渲染有关:
当在不支持GPU支持的子像素定位的浏览器中查看时,文本似乎会跳跃,因为文本需要使用CPU创建,并且每个字母的位置都会四舍五入到最接近的整个像素。
即使有了新的CSS 3动画,你也可以看到它只是在放大字体,直到动画完成,然后重新绘制。
很抱歉,我没有解决方案,但我还没有看到一个平滑的跨浏览器字体大小的CSS动画,直到现在。
但要稍微掩饰这种效果,可以减少动画间隔时间并扩大字体大小的差距。然后,这些步骤出现在一个更快的时间框架中,人们看不到单个步骤。
查看此小提琴
我知道没有使用字体大小来修改文本元素的解决方案,但我可能无论如何都不会采用这种方法。相反,我会简单地使用与所讨论的文本相对应的cufónized路径,并手动缩放它请注意这明显比手动缩放文本元素更流畅,至少在Firefox中是这样。
-
访问Cufón并将我喜欢的字体转换为矢量等效字体,选择Raphael.registerFont作为自定义选项;
-
使用
paper.print
而不是paper.text
生成文本。这将返回一个路径元素,而不是文本元素。 -
使用转换而不是字体大小缩放生成的路径元素。由于
paper.print
接受字体大小作为参数,因此很容易计算出与目标字体大小相对应的所需比例。
这里有一个粗略的演示,展示了它是如何工作的(我把文本放在背景上,以便于悬停)。我希望你能原谅它的许多不足之处;它制作得有点仓促。
我认为放大路径会更容易、更平滑,比如:
text.hover(function() {
text.animate({transform: "s1.5 1.5 "}, 400);
}, function() {
text.animate({transform: "s1.0 1.0 "}, 400);
});
请参阅http://jsfiddle.net/SeeG2/40/详细信息。
退房http://www.zachstronaut.com/posts/2009/08/07/jquery-animate-css-rotate-scale.html
您将能够看到一个演示并下载一个扩展元素的插件。需要注意的是,你不能明确地选择目标字体大小,但只要稍微计算一下,你就可以编写一个小插件,将目标大小转换为一个数字。
如果你想看另一个演示,我的个人主页会在欢迎页面上使用这个插件。
祝你好运!:)
- 这样链接时是否可以设置转换
- CSS3:当页面向下滚动到第一个视口时,是否可以在元素上触发转换
- javascript中是否有更标准化的方法来转换(序列化)非表单数据以与ajax一起使用
- 是否可以将字符串转换为文字对象数组
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 是否存在将String转换为可执行的c++表达式的方法
- 是否有将基于字符串的JSON转换为Mongoose Schema对象实例的本地功能
- 是否可以将流同步转换为缓冲区
- 是否有一种功能齐全的范式语言可以转换为JavaScript
- 我可以检测任意CSS转换是否已经启动吗
- 在d3js中,是否可以在x轴上转换固定范围的值
- 是否可以在CSS宽度转换上强制硬件加速
- Raphael JS中的动画字体大小是否有流畅的转换可能性
- 是否可以在不转换为UTC的情况下格式化日期
- 是否可以在经过HTML转换的画布上使用getDataImage
- 是否可以将一个DOM元素转换为另一个?或者从中复制所有属性
- Backbone.js的Backbone.Modelbinding插件中是否有绑定的转换器参数
- 是否可以使用CSS转换将HTML元素倾斜若干像素
- 是否可以将扫描作为转换器来实现
- 是否可以使用不显示到显示块的转换