首页前端开发JavaScript详解如何愉快的在微信小程序中使用SVG图标

详解如何愉快的在微信小程序中使用SVG图标

时间2024-02-01 01:35:03发布访客分类JavaScript浏览747
导读:收集整理的这篇文章主要介绍了详解如何愉快的在微信小程序中使用SVG图标,觉得挺不错的,现在分享给大家,也给大家做个参考。 SVG近几年因各种优势被大量的应用,遗憾的是到目前为止微信小程序...
收集整理的这篇文章主要介绍了详解如何愉快的在微信小程序中使用SVG图标,觉得挺不错的,现在分享给大家,也给大家做个参考。

SVG近几年因各种优势被大量的应用,遗憾的是到目前为止微信小程序并不支持以XML的形式使用SVG,这使得SVG的灵活性大大下降,大多数人选择放弃在微信小程序中使用SVG图标方案。
那么,真的就没有办法在微信小程序中愉快的使用SVG图标了吗?我们先来分析一下,对于使用SVG图标我们有哪些需求:

  • 能够引入使用
  • 能够调整颜色

首先第一点是没有问题的,微信小程序支持以Image.src的形式引入SVG。接下来就是本文的重点部分了,如何让使Image形式的SVG可以改变颜色。

在最近对CSS的学习中,我发现有个属性可以可以使DOM的非透明部分投下一个阴影,这个属性就是drop-shadow,属性的值与box-shadow大致相近。通过这个属性,我们就可以为SVG图片投下个可以修改颜色的阴影,然后我们再将原来的部分隐藏掉就可以实现一个可以修改颜色的SVG图标了。

接下来我们来实践一下,首先构造好DOM结构:

view class="svg_icon">
     image class="svg_icon-inner" src="/path/icon.svg"/>
    /view>
    

接下来添加CSS:

.svg_icon {
     display: inline-flex;
     width: 1em;
     height: 1em;
     overflow: hidden;
}
.svg_icon-inner {
     width: 1em;
     height: 1em;
     transform: translateY(-1em);
     filter: drop-shadow(0 1em 0 currentColor);
}
    

我来解释一下为什么要这么设置DOM结构和CSS:首先svg_icon是整个图标的容器,负责设置图标的大小(1em=父容器字体的大小),和隐藏多余的部分(即图标的原始部分),而svg_icon-inner则负责渲染SVG,并投下有颜色的阴影,通过给svg_icon-inner设置一个与父容器相同的宽高并给其设置一个投影反方向的偏移则可以实现改变SVG颜色的需求(将投影的颜色设置为currentColor可以使得图标的颜色随着父容器的字体颜色改变)。

这个方案有个缺点,如果页面中有transform的动画并触发时,图标就会发生闪烁,具体的原因我也不太清楚,希望有大佬能够指教一下。

到此这篇关于详解如何愉快的在微信小程序中使用SVG图标的文章就介绍到这了,更多相关小程序使用SVG图标内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • 微信小程序里引入SVG矢量图标的方法
  • 今天,小程序正式支持 SVG
  • 微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
  • 微信小程序里使用SVG矢量图标方法详解

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: canvas绘制刮刮卡效果下一篇:JavaScript快速实现日历效果猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 详解如何愉快的在微信小程序中使用SVG图标
本文地址: https://pptw.com/jishu/594747.html
7道关于JS this的面试题,你能答对几个 c语言中*是什么意思

游客 回复需填写必要信息