美文网首页插件集合
.svg图片转<svg>标签

.svg图片转<svg>标签

作者: merrylmr | 来源:发表于2019-03-03 16:44 被阅读14次

前言:

项目需求是这样的:将网页上面的外联的svg图像,变成内嵌的svg图像。从而我们可以写一些css样式控制这个svg图像。

在网上经过一翻的搜索,答案差不多就是使用object、embed、iframe等,但是并不能实现我的需求。

经过不懈努力,找到一个插件svg-injector

QQ图片20190303161058.jpg
这个插件就是我们想要达到的效果。看了哈文档和源码,是通过发起一个AJAX,来载入SVG。

由于项目是一个可视化的项目:用户在更改svg 地址后,需要在对该外链的svg的图片颜色、大小等进行配置。于是:封装如下的一段代码,监听svg的url发生改变,则重新调用封装好的方法,实现外联的svg图片转成svg标签。

/**
 * 将svg的img图片转成svg标签
 * @param element
 */
function toInlineSvg(element) {
  let imgID = element.getAttribute('id')
  let imgClass = element.getAttribute('class')
  let imgURL = element.getAttribute('src')

  var xhr = new XMLHttpRequest()
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
      var svg = xhr.responseXML.getElementsByTagName('svg')[0]

      if (imgID != null) {
        svg.setAttribute('id', imgID)
      }

      if (imgClass != null) {
        svg.setAttribute('class', imgClass + ' replaced-svg')
      }

      svg.removeAttribute('xmlns:a')

      if (!svg.hasAttribute('viewBox') && svg.hasAttribute('height') && svg.hasAttribute('width')) {
        svg.setAttribute('viewBox', '0 0 ' + svg.getAttribute('height') + ' ' + svg.getAttribute('width'))
      }
      if (element.parentElement) {
        element.parentElement.replaceChild(svg, element)
      }
    }
  }
  xhr.open('GET', imgURL, true)
  xhr.send(null)
}

本文完~

相关文章

  • .svg图片转<svg>标签

    前言: 项目需求是这样的:将网页上面的外联的svg图像,变成内嵌的svg图像。从而我们可以写一些css样式控制这个...

  • SVG use使用

    平时使用svg,都是当成图片来使用,直接用img标签像引入图片一样引入svg。现在认识一下SVG Sprite技术...

  • 图片转svg

  • [HTML] svg>path

    svg的path元素可以用来绘制路径 (1)HTML (2)CSS (3)JS 注:(1)M,C为指令字母,大写表...

  • [整理]SVG Path Animations

    SVG描边动画,使用了SVG图形中PATH标签的stroke特性制作的动画。 为什么使用SVG? 相对于其他的图片...

  • svg图片 转 文字

    网址:https://icomoon.io/ 使用: html部分 style部分: @import "asset...

  • js将带有image标签的svg转为png、jpeg等类型的图片

    前言:先聊一下svg类型的图片 正常的svg类型得图片是里面包含path和g标签的但是也有一种里面包含image标...

  • java后台svg字符串转成png

    该篇文章只写了将SVG报文字符串转PNG,后续再更新SVG图片转PNG,如有问题点,请大家留言,谢谢! 一、引ja...

  • png/jpg图片转SVG格式完美方法

    前言: 之前做svg动画的时候用到图片转svg path路径,网上找了很多相关的, 也用过几个在线转换的网址,...

  • svg中文字显示及常用样式设置

    前言 svg标签主要用于绘制图表,难免需要显示一些文字。svg中自有的文本标签text text svg中文字标签...

网友评论

    本文标题:.svg图片转<svg>标签

    本文链接:https://www.haomeiwen.com/subject/sywheqtx.html