Herbert Gao

Never be satisfied

Hi there, I'm herbert gao, a Developer from China. Live in Chengdu, work in IBM.


Welcome to onboard

SVG图片动态修改颜色

原理

页面中使用 <img> 标签显示svg图片时,可以通过css中 transformfilter 属性配合容器元素的 overflow:hidden 来显示不同的颜色,具体逻辑是通过控制图片的偏移和投射阴影来实现,具体看代码。

代码示例

<template>
    <div class="svg-box" :style="{'width': `${size}px`,'height': `${size}px`}">
        <img :src="src" :style="{'transform': `translateX(-${size}px)`, 'filter': `drop-shadow(${activeColor || color} ${size}px 0)`}"/>
    </div>
</template>

<script lang="ts">
import { Component, Prop, Emit, Vue } from "vue-property-decorator"
@Component({
    name: "SvgBox"
})
export default class SvgBox extends Vue {
    @Prop({ default: "" }) src!: any
    @Prop({ default: "#666" }) color?: string
    @Prop({ default: "" }) activeColor?: string
    @Prop({ default: 16 }) size?: number

    private mounted () {}
}
</script>

<style lang="less" scoped>
.svg-box {
    display: inline-flex;
    overflow: hidden;
}
</style>

最近的文章

vue-quill-editor 工具栏自定义字体大小选项

背景在项目中使用富文本编辑器vue-quill-editor, 但是组件默认可选的文字大小仅有四种并且不是设置的行内样式,在编辑的富文本内容脱离了框架之外则不能正常显示设置的样式。Baidu了好多之后发现都是通过修改node_modules中quill编译之后的代码,但是这并不是我想要的。在打开正确上网方式网上冲浪之后找到最终的解决方案。 BTW: 墙裂建议大家不要直接修改node_modules中的js、css修改之后的效果修改步骤1.注册并添加白名单import { Quill } ...…

quill 富文本编辑器继续阅读
更早的文章

ECharts 自定义立体柱状图

最终效果配置项var categoryData = [];var errorData = [];var barData = [];var dataCount = 100;for (var i = 0; i < dataCount; i++) { var val = Math.random() * 1000; categoryData.push('category' + i); errorData.push([ i, echarts.num...…

ECharts继续阅读