08 | progress组件:如何自定义实现一个环形进度条?
09 | rich-text组件:如何单击预览rich-text中的图片并保存?
10 | view容器组件及Flex布局(一):学习容器组件view及其重要属性
11 | view容器组件及Flex布局(二):介绍flex布局中常用的样式及样式值
12 | 可移动容器及可移动区域(一):学习使用movable-view与movable-area组件
13 | 可移动容器及可移动区域(二):如何实现侧滑删除功能
14 | scroll-view介绍:在小程序中如何实现滚动锚定?
15 | scroll-view介绍:如果渲染一个滚动的长列表?
17 | 滚动选择器(二):使用两种方式自定义实现省、市、区三级联动的选择器
18 | 滑动选择器表单组件:如何基于wxs自定义一个竖向的slider?
20 | image媒体组件(上):如何实现图片的懒加载?
21 | image媒体组件(下):开发中经常遇到的问题?
22 | 如何实现直播间功能?(一):了解live-pusher、live-player组件的主要属性及使用限制
23 | 如何实现直播间功能?(二):如何开启、使用腾讯云的云直播功能
24 | 如何实现直播间功能?(三):安装与使用ffmepg,及使用ffmpeg进行推拉流验证
25 | 如何实现直播间功能?(四):使用live-pusher、live-player组件在小程序中实现直播功能
27 | 如何实现直播间功能?(六):live-pusher、live-player组件在开发中的常见问题
28 | web-view(一):了解session、cookie等相关基本概念
29 | web-view(二):了解常见的四种鉴权方式
30 | web-view(三):如何使用koa框架,及如何进行热加载?
31 | web-view(四):如何在服务器端实现cookie与sesson的生成?
32 | web-view(五):如何将session存储到服务器端,及如何实现token验证?
33 | web-view(六):基于koa中间件,实现微信一键登录的后端接口
34 | web-view(七):实现微信用户一键登录
35 | web-view(八):了解正确的微信登录姿势
36 | web-view(九):web-view组件在开发的常见问题讲解
37 | WebGL介绍(一):了解WebGL相关的基础概念
38 | WebGL介绍(二):如何在小程序中取到WebGL上下文环境对象
39 | WebGL介绍(三):了解WebGL的世界坐标系
40 | WebGL介绍(四):重新认识右手坐标系及如何编写顶点着色器代码
41 | WebGL介绍(五):学习片断着色器编写,了解变量修饰变型uniform与attribute
42 | WebGL介绍(六):了解在WebGL中裁剪空间是如何裁剪出来的
43 | WebGL介绍(七):了解着色器变量值的绑定及三种三角形绘制模式之间的差异
44 | WebGL介绍(八):在着色器中使用共享变量,绘制一个颜色渐变的正方形
46 | WebGL介绍(十):绘制一个旋转的立方体
47 | WebGL介绍(十一):在3D绘制中使用纹理材质
48 | WebGL介绍(十二):如何创建相机、场景及光源
49 | WebGL介绍(十三):创建加载器、渲染器与控制器,完成3D模型文件的加载与展示
精选留言(37)
主要补充了如何从 iconfont 拿到 font-face 远程链接和图片 Unicode 的部分,这一部分是课程中略过的。
作者回复: 👍
**自定义图标实现方式**
1. 使用图片
- 大量HTTP请求
- 不方便修改样式
- 图片放大会变虚
2. 精灵图
3. CSS绘制
- 工作量大
- 绘制时,需要统一一个中心点,否则控制位置比较麻烦
- 不方便控制大小、颜色
4. 矢量字体 👈 `最简单有效`
- @font-face、 font-family
- 点阵字体 vs 矢量字体(type 1、trueType、openType)
- iconfont.cn
- 小程序推荐 ttf、woff (woff2不兼容低版本iOS)
5. SVG文件
- image2base64
6. canvas
- canvas多用于制作动画
- 用于自定义图标有些大材小用
- [omijs - 将SVG绘制成图像的 Cax 引擎](https://github.com/Tencent/omi)
- [dntzhang(张磊) - 微信开放社区](https://developers.weixin.qq.com/community/personal/oCJUsw6rFVEDMczhqQwmnqaWhcl4)
WXSS加载图片及字体允许外域
+ [weui](https://weui.io/)
作者回复: 👍
- 使用精灵图,Sprite,也叫雪碧图
- 使用CSS样式绘制
- 使用iconfont等矢量字体文件
- 使用SVG矢量文件
作者回复: 👍
作者回复: 推荐了解下kbone ,它已经成为小程序的标准扩展库之一了。刚刚又支持了react,它原本就是支持vue的~
mpvue 看你需要,如果个人学,不如直接学kbone ;如果公司用另论,按公司来~
<icon class="iconfont icon-rocket"></icon>
<icon class="iconfont icon-Kobe"></icon>
@font-face {
font-family: 'iconfont'; /* project id 2073636 */
src: url('//at.alicdn.com/t/font_2073636_x2qv1go5npr.eot');
src: url('//at.alicdn.com/t/font_2073636_x2qv1go5npr.eot?#iefix') format('embedded-opentype'),
url('//at.alicdn.com/t/font_2073636_x2qv1go5npr.woff2') format('woff2'),
url('//at.alicdn.com/t/font_2073636_x2qv1go5npr.woff') format('woff'),
url('//at.alicdn.com/t/font_2073636_x2qv1go5npr.ttf') format('truetype'),
url('//at.alicdn.com/t/font_2073636_x2qv1go5npr.svg#iconfont') format('svg');
}
.iconfont{
font-family: 'iconfont';
color: red;
font-size: 100px;
}
.icon-rocket::before{
content: '\e63b';
}
.icon-Kobe::before{
content: '\e644';
color: black;
}
作者回复: color: red;
color: black;
这种图标实现,属于控制CSS伪元素,before属于元素的伪元素。里面的color样式是能改变颜色的。如果要保留原样式,只有把color属性去掉了。
作者回复: 如果github慢,可以尝试从这里下载:https://gitee.com/rixingyike/weapp-practice/repository/archive/2.8_2.9-scroll-view
包括这节课1.7节icon相关源码
作者回复: 可以用Sketch 等矢量软件自行编辑
作者回复: 如果控制的样式不复杂,可以考虑用样式变量。
为什么感觉第五种方式更加简洁,直接下载,转 base64,粘贴到 background 即可
另外第四种方案,那些字体是已经在 cdn 中的吗。。
作者回复: 👍是的
是的,第5种不方便修改,转麻烦~
alicdn
作者回复: 是的,这是个好建议。我原打算每一个视频只讲一个问题,并且不超过10分钟,但是内容总是降不下来~
作者回复: 谢谢,努力对住评价~
作者回复: 是的,750的一半,375
我照着做,实现了第四种font-face的方法,但是同一张图第五种SVG没有成功。下面是我的操作步骤,麻烦老师看看哪里有问题。谢谢。
1. 在iconfont上找到图标,下载svg文件;
2. 在https://www.sojson.com/image2base64.html上选择文件,上传刚刚的.svg文件;
3. 复制上面这个网站下方框体里出现的字符串,data:image/svg+xml;base64,PD94b(中间省略)nPg==
4. 在wxss文件中插入
.svg-icon{
background: url("data:image/svg+xml;base64,PD94b(中间省略)nPg==");
}
5. 在wxml文件中插入
<view>
<icon class="svg-icon"></icon>
</view>
以上为全部操作,但是图标没有加载出来,开发工具下面也没有报错。另,对比视频中的样例代码,加上.svg-icon里面其他属性比如display等,依然没有加载出来。请问可能是什么原因?谢谢老师!
作者回复: 注意CSS样式的宽高属性:
.svg-icon {
width: 32px;
height: 32px;
background: url(...);
}
示例代码链接:
https://developers.weixin.qq.com/s/EaB161mB7bvZ
1, 在 www.iconfont.cn 建一个项目
2. 获得该项目的 js路径
3, 添加选中的图标到 该项目中
4, 同步icontfont网站上该项目的icon到本地
npx iconfont-wechat
作者回复: 给你点个赞,
都有mini-program-iconfont-cli专门的组件了~
作者回复: 点赞.jpg
作者回复: 冲冲冲
--
结课部落晒证书,赠书在路上等你~
作者回复: 我可能没有完全get到你的问题。
默认有一个默认色,或者通过WXSS样式改变它的整体颜色,颜色复杂的可以用图片。
[渲染层网络层错误] Failed to load local font resource /pages/index/iconfont.ttf-do-not-use-local-path-./pages/index/index.wxss&25&7
net::ERR_CACHE_MISS
(env: Windows,mp,1.05.2105170; lib: 2.17.3)
我是选择使用矢量字体的形式,复制base64后的方式来展示的,结果出现了上面的错误,不知道那里出现了问题
作者回复: 根据提示:
“Failed to load local font resource”
“do-not-use-local-path”
是不是有加载本地字体文件,可以全文检索一下字体名
作者回复: 你都学到这里了,当然可以~