43 Star 958 Fork 264

德育处主任/前端数据可视化

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Text.vue 3.53 KB
一键复制 编辑 原始数据 按行查看 历史
<template>
<div>
<canvas width="600" height="600" id="canvas" style="border: 1px solid #ccc;"></canvas>
</div>
</template>
<script setup>
import { onMounted } from 'vue'
import { useStore } from 'vuex'
import { fabric } from 'fabric'
const store = useStore()
function init() {
let canvas = new fabric.Canvas('canvas')
// 基础用法
let text1 = new fabric.Text('Hello World!', {
left: 40,
top: 10,
fontFamily: 'Comic Sans', // 字体
fontSize: 60, // 字号
fontWeight: 600, // 字体重量(粗细),normal、bold 或 数字(100、200、400、600、800)
charSpacing: 100, // 字距
fill: 'red', // 字体颜色
cornerColor: 'pink', // 角的颜色(被选中时)
angle: 30, // 旋转
backgroundColor: '#ffd460', // 背景色
borderColor: 'yellowGreen', // 边框颜色(被选中时)
borderScaleFactor: 4, // 边框粗细(被选中时)
borderDashArray: [10, 4, 20], // 创建边框虚线
stroke: '#3f72af', // 文字描边颜色(蓝色)
strokeWidth: 2, // 文字描边粗细
textAlign: 'lfet', // 对齐方式:left 左对齐; right 右对齐; center 居中
opacity: 0.8, // 不透明度
// text: '雷猴', // 文字内容,会覆盖之前设置的值
selectable: true, // 能否被选中,默认true
shadow: 'rgba(0, 0, 0, 0.5) 5px 5px 5px', // 投影
})
canvas.add(text1)
// 下划线
let text2 = new fabric.Text('下划线', {
left: 0,
top: 400,
fontSize: 20,
underline: true,
})
canvas.add(text2)
// 中划线
let text3 = new fabric.Text('中划线', {
left: 80,
top: 400,
fontSize: 20,
linethrough: true,
})
canvas.add(text3)
// 上划线
let text4 = new fabric.Text('上划线', {
left: 160,
top: 400,
fontSize: 20,
overline: true,
})
canvas.add(text4)
// 混合 textDecoration 上划线、中划线、下划线一起用
let text5 = new fabric.Text('上中下划线', {
left: 240,
top: 400,
fontSize: 20,
overline: true,
linethrough: true,
underline: true,
})
canvas.add(text5)
// 投影
let text6 = new fabric.Text('投影 shadow', {
left: 0,
top: 440,
fontSize: 20,
shadow: 'rgba(0, 0, 0, 0.8) 5px 5px 2px', // 投影
})
canvas.add(text6)
// 投影
let text7 = new fabric.Text('投影 shadow', {
left: 140,
top: 440,
fontSize: 20,
shadow: '#f6416c -3px -3px 2px', // 投影
})
canvas.add(text7)
// 左对齐
let msg1 = '\n左左\n左对齐'
let text8 = new fabric.Text(msg1, {
top: 10,
left: 500,
fontSize: 16,
textAlign: 'left',
})
canvas.add(text8)
// 居中对齐
let msg2 = '\n中中\n居中对齐'
let text9 = new fabric.Text(msg2, {
top: 100,
left: 500,
fontSize: 16,
textAlign: 'center',
})
canvas.add(text9)
// 右对齐
let msg3 = '\n右右\n右对齐'
let text10 = new fabric.Text(msg3, {
top: 200,
left: 500,
fontSize: 16,
textAlign: 'right',
})
canvas.add(text10)
// 行高
var msg4 = "Lorem ipsum dolor sit amet,\nconsectetur adipisicing elit,\nsed do eiusmod tempor incididunt\nut labo"
let text11 = new fabric.Text(msg4, {
top: 350,
left: 380,
fontSize: 16,
lineHeight: 1,
})
let text12 = new fabric.Text(msg4, {
top: 450,
left: 380,
fontSize: 16,
lineHeight: 2,
})
canvas.add(text12, text11)
}
onMounted(() => {
store.commit('setComponentPath', 'src/views/FabricJS/Basic/pages/Text/Text.vue')
init()
})
</script>
<style lang="scss" scoped>
</style>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/k21vin/front-end-data-visualization.git
git@gitee.com:k21vin/front-end-data-visualization.git
k21vin
front-end-data-visualization
前端数据可视化
master

搜索帮助