1

我需要text-overflow: ellipsis;在 Raphael 文本元素中使用 CSS 声明,但找不到现有的跨浏览器解决方案(也许我的搜索技能失败了?)。

所以我创建了自己的 Raphael 插件fitText,它完全符合我的要求。它使文本适合一定的宽度。它并不完美,但它有效。这是一个小提琴和一个github 页面

现在我在想...

  1. 我的解决方案是不是矫枉过正?换句话说,是否存在更简单的方法来解决问题?
  2. 继续努力开发插件是否值得?
4

1 回答 1

1

当然不是矫枉过正,因为text-overflow: ellipsis它尚未得到广泛支持,并且不适用于非现代浏览器。我自己也遇到过这个问题,并用类似的方法解决了这个问题。

不管怎样,看了源码之后,有几点建议:

  • 您可能希望通过缓存大量调用来提高性能getBBox()
  • API 设计:我认为传递参数 ( text, width) 是多余的,因为可以从元素本身检索此信息。API 最终用户可能只想调用fillText()一个元素而忘记它。
于 2012-04-27T14:53:35.653 回答