阿里巴巴矢量图库利用svg代码修改颜色

本文介绍如何使用SVG路径实现图标在鼠标悬停时颜色变化,通过JavaScript控制SVG fill属性,实现图标视觉反馈,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                <svg
                  t="1638849977291"
                  class="icon"
                  viewBox="0 0 1024 1024"
                  version="1.1"
                  xmlns="http://www.w3.org/2000/svg"
                  p-id="5185"
                  width="16"
                  height="16"
                >
                  <path
                    d="M512 0C230.4 0 0 230.4 0 512s230.4 512 512 512 512-230.4 512-512S793.6 0 512 0z m0 981.333c-258.133 0-469.333-211.2-469.333-469.333S253.867 42.667 512 42.667 981.333 253.867 981.333 512 770.133 981.333 512 981.333z"
                    p-id="5186"
                    fill="#cacaca"	// 在path中添加fill="#???"这句话完成颜色的替换
                  ></path>
                  <path
                    d="M672 441.6L501.333 328.533c-57.6-38.4-106.666-12.8-106.666 57.6v256c0 70.4 46.933 96 106.666 57.6L672 586.667C729.6 544 729.6 480 672 441.6z"
                    p-id="5187"
                    fill="#cacaca"	// 在path中添加fill="#???"这句话完成颜色的替换
                  ></path>
                </svg>

移入移出修改颜色

				<!-- index为图标的唯一值 -->
              <span @mouseover="checkColor(index)" @mouseleave="ckIndex = null">
                <!-- 播放图标 -->
                <svg
                  t="1638849977291"
                  class="icon"
                  viewBox="0 0 1024 1024"
                  version="1.1"
                  xmlns="http://www.w3.org/2000/svg"
                  p-id="5185"
                  width="16"
                  height="16"
                >
                  <path
                    d="M512 0C230.4 0 0 230.4 0 512s230.4 512 512 512 512-230.4 512-512S793.6 0 512 0z m0 981.333c-258.133 0-469.333-211.2-469.333-469.333S253.867 42.667 512 42.667 981.333 253.867 981.333 512 770.133 981.333 512 981.333z"
                    p-id="5186"
                    :fill="ckIndex == index ? '#fff' : '#cacaca'"
                    ref="color"
                  ></path>
                  <path
                    d="M672 441.6L501.333 328.533c-57.6-38.4-106.666-12.8-106.666 57.6v256c0 70.4 46.933 96 106.666 57.6L672 586.667C729.6 544 729.6 480 672 441.6z"
                    p-id="5187"
                    :fill="ckIndex == index ? '#fff' : '#cacaca'"
                    ref="color"
                  ></path>
                </svg>
              </span>
  data() {
    return {
      ckIndex: null,
    };
  },
  methods: {
    checkColor(index) {
      this.ckIndex = index;
    },
  },
### 在 UniApp 中集成和使用阿里巴巴矢量图库的方法 在 UniApp 中使用阿里巴巴矢量图库可以通过以下方式实现,确保图标在不同平台(H5、小程序、App 等)上都能正常显示。 #### 1. 下载阿里巴巴矢量图标 访问阿里巴巴矢量图标库官网 [https://www.iconfont.cn/](https://www.iconfont.cn/) 并注册账号。选择需要的图标加入购物车后,将其添加至项目中。如果没有现有项目,可以新建一个与当前开发项目名称一致的项目[^2]。完成后下载生成的压缩包并解压,得到以下文件: - `iconfont.css`:样式文件。 - `iconfont.ttf`:字体文件。 - 其他相关文件(如 `demo_index.html` 和 `iconfont.woff` 等)。 将这些文件放入项目的合适目录中,例如 `static/font` 或 `common/icon`[^1]。 #### 2. 修改 `iconfont.css` 文件路径 打开 `iconfont.css` 文件,找到类似以下代码的部分: ```css @font-face { font-family: 'iconfont'; src: url('iconfont.eot'); src: url('iconfont.eot?#iefix') format('embedded-opentype'), url('iconfont.woff2') format('woff2'), url('iconfont.woff') format('woff'), url('iconfont.ttf') format('truetype'), url('iconfont.svg#iconfont') format('svg'); } ``` 将所有字体文件的路径修改为相对于项目根目录的正确路径。例如,如果将文件放在 `static/font` 目录下,则路径应改为 `/static/font/iconfont.ttf` 等[^2]。 #### 3. 引入 `iconfont.css` 在 `App.vue` 的全局样式中引入 `iconfont.css` 文件。确保路径正确无误: ```vue <style> /* 每个页面公共 css */ @import url("/static/font/iconfont.css"); </style> ``` #### 4. 解决移动端不显示问题 由于 UniApp 在处理字体文件时可能会自动将其转换为 Base64 格式,但当 `.ttf` 文件大小超过 40KB 时,可能无法正确转换,导致移动端不显示图标[^3]。此时需要手动将 `.ttf` 文件转换为 Base64 格式。 可以使用在线工具或脚本将 `.ttf` 文件转换为 Base64 字符串,并替换 `iconfont.css` 中的相应部分。例如: ```css @font-face { font-family: 'iconfont'; src: url('data:application/font-ttf;charset=utf-8;base64,AAEAAAA...') format('truetype'); } ``` #### 5. 使用图标 在页面中通过类名使用图标。例如,如果图标对应的类名为 `icon-example`,则可以在模板中这样使用: ```html <view class="iconfont icon-example"></view> ``` ### 注意事项 - 确保 `iconfont.css` 文件中的字体路径与实际存放位置一致[^2]。 - 如果需要支持多端(H5、小程序、App),建议测试每个平台上的显示效果,必要时调整字体文件格式或编码方式。 ```python # 示例代码:检查字体文件路径是否正确 def check_font_path(css_file, font_directory): with open(css_file, 'r', encoding='utf-8') as file: content = file.read() if font_directory not in content: return False return True ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值