V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
redyyu
V2EX  ›  JavaScript

写了一个 JS 将 svg sprite 加载到页面上脚本,已经放在 github,可以 bower 安装

  •  
  •   redyyu · 2015-07-15 21:40:56 +08:00 · 2796 次点击
    这是一个创建于 3219 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ------------------------
    https://github.com/Soopro/svg-sprites-render

    bower install svg-sprites-render
    ------------------------

    文档看github里面的

    js 读取svg sprites 文件,并且根据html 中的属性,将sprite单元渲染到对应svg tag中。支持 icomoon 之类的 svg sprites 生成器生成的svg 文件。

    写这个的目的是为了让svg sprite在使用的时候 能具备 inline svg的特性,可以用css fill color 之类的特性,如果用 svg 做 background 不用遮罩干不了这事儿,而且大小宽高 在不同浏览器里面实际上是有差别的(这也要看svg生成的好不好)

    搜到有一说可以用 svg fragment 类似 svg_name.svg#fragId 之类的方式通过src加载,我之前也试过,然而并没有什么卵用。 在Safari有跳帧的现象。

    两天没有找到靠谱的库(snap svg 可以用,但是太重,没有选)

    往上搜到过一些说用svg sprite 不好的地方,那么用这个脚本 干脆就把 svg inline了。
    只要是现代浏览器,都应当完美支持。

    昨天一些人也没有见靠谱的解决方案,于是自己写一个凑合用先。
    在 angular material 中用类似的效果,实现它的 md-icon,它咋个实现我没看,但是html 上写的时候差不多。

    PS: 老IE 支持不支持 不在我的考虑之内,很抱歉。。。微软自己都不要的东西,我也不会鸟他。
    2 条回复    2015-07-17 01:31:24 +08:00
    bramblex
        1
    bramblex  
       2015-07-16 12:02:29 +08:00
    还以为是妹纸
    redyyu
        2
    redyyu  
    OP
       2015-07-17 01:31:24 +08:00
    Update 到 0.0.5 此前的版本 忘了 safari 和 opera 的支持。太傻逼了。。。今天用的时候发现了就修掉了。
    IE 还是没有测,理论上说 IE 10 以上可以支持。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3140 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:22 · PVG 23:22 · LAX 08:22 · JFK 11:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.