不熟悉svg,看文档做的这个东西。
菜鸟教程
先上效果图
使用说明
js里引入组件
| import svgcircle from '@/components/svgcircle'
|
components里面声明下
1 2 3
| components: { 'svgcircle': svgcircle, }
|
vue文件里面使用
1 2 3 4 5 6 7 8 9
| <svgcircle rate="0.6" :size="svgcircleSize" :text="svgcircleText" :textSize="svgcircleTextSize" stroke-width="6" strokeBgColor="rgba(255, 160, 0, 0.5)" stroke-color="#FFA000" ></svgcircle>
|
组件开放了很多自定义属性,具体看代码了,如上,svgcircleSize、svgcircleText、svgcircleTextSize,都是data()里面定义的,其中svgcircleSize是圆环的半径,svgcircleText是圆环中间文字,svgcircleTextSize是中间文字的大小。
这个组件是为了大屏里面使用的,为了响应屏幕尺寸的变化,写了个方法,动态修改圆环的半径、中间文字大小,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| resizeCircle() { window.screenWidth = document.body.clientWidth let screenWidth = window.screenWidth let tempSize = Math.round((this.svgcircleSize / 1366) * screenWidth) console.log('svgcircleSize:', screenWidth, tempSize) this.svgcircleSize = tempSize this.svgcircleTextSize = tempSize * 0.6 }, init() { let vm = this setTimeout(() => { window.addEventListener('resize', () => { vm.resizeCircle() }) }, 50) }, destroyed() { window.removeEventListener('resize', this.init, 20) },
|
当然,自适应这些可以直接组件里面写好的,有空再弄了~~~
工程代码
整个项目的代码在下面地址
大屏开发框架工程代码
详见目录 components — svgcircle.vue
代码使用例子在 views — Home 页面