当前位置: 首页 > news >正文

Konva 组,层级

代码:

<template><div class="rect"><div class="header">
<!--      <el-button type="primary" @click="show">展示</el-button>-->
<!--      <el-button type="success" @click="hide">隐藏</el-button>--><el-button type="warning" @click="moveToTop">置顶</el-button><el-button type="danger" @click="moveToBottom">置地</el-button><el-button type="info" @click="moveUp">上移一层</el-button><el-button type="success" @click="moveDown">下移一层</el-button></div><div id="canvas"></div></div>
</template>
<script setup lang="ts">
import {onMounted} from 'vue'
import Konva from 'konva'let  stage:Konva.Stage | null=null
const layer:Konva.Layer=new Konva.Layer()
const group :Konva.Group=new Konva.Group()onMounted(()=>{init()
})
const init=()=> {const el = document.getElementById("canvas")if (!el) {return}const { clientWidth, clientHeight } = el//创建一个stage平台stage = new Konva.Stage({container: 'canvas',width: clientWidth,height: clientHeight,})stage.add(layer)//矩形group.setAttrs({x:clientWidth/2,y:clientHeight/2,draggable:true})
const colors=["#ff8800","#ff0000","#ff00ff","#00ffff"]for (let i=0;i<4;i++){const rect=new Konva.Rect({//给图形添加id和名称,方便之后通过id和名称查找图形id:`rect${i}`,name:"textName",x:i * 20,y:i * 20,width:100,height:50,fill:colors[i],stroke:'black',strokeWidth:1,draggable:true})group.add(rect)}layer.add(group)
}
const moveToTop=()=>{if (!stage){return}const shapes=stage.findOne("#rect0")shapes?.moveToTop()
}
const moveToBottom=()=>{if (!stage){return}const shapes=stage.findOne("#rect0")shapes?.moveToBottom()}
const moveUp=()=>{if (!stage){return}const shapes=stage.findOne("#rect0")shapes?.moveUp()}
const moveDown=()=>{if (!stage){return}const shapes=stage.findOne("#rect0")shapes?.moveDown()}
const show=()=>{if (!stage){return}
//  const shapes=stage.findOne("#textId")//通过id查找// const shapes=stage?.findOne(".textName")//通过名称const shapes=stage?.findOne("Rect")//通过图形的类别来查找console.log(shapes)//设置展示shapes.show()}
const hide=()=>{if (!stage){return}
//  const shapes=stage.findOne("#textId")//通过id查找// const shapes=stage?.findOne(".textName")//通过名称const shapes=stage?.findOne("Rect")//通过图形的类别来查找console.log(shapes)//设置展示shapes.hide()}
</script><style scoped lang="scss">
.rect {padding: 20px;.header{height: 50px;}#canvas {background-color: #eee;border: 1px solid #666;height: calc(100vh - 92px);}
}
</style>

 


http://www.mrgr.cn/news/57825.html

相关文章:

  • K8s-pod控制器HPA、DS、Job、CJ
  • 054_python基于爬虫与文本挖掘的网络舆情监控系统
  • 项目模块七:TimerWheel模块
  • 【设计模式系列】命令模式
  • 【单元测试】深入解剖单元测试的思维逻辑
  • Java项目-基于springboot框架的逍遥大药房管理系统项目实战(附源码+文档)
  • 顺序表的基本操作
  • 计算字符数、单词数、空格数和行数
  • SQL:Windows下MySQL的安装教程(超详细)
  • 软件测试面试必备—基础知识整理(必备技能)
  • 【C++】C++中的计时、多维数组、排序
  • 《漠风吟》火热收官 实力导演何佳男拓长剧市场展不俗实力
  • 系统架构图设计(轻量级架构)
  • 服务稳定性运维保障体系建设的误区
  • 最近比较火的提示词记录
  • 如何减小 Maven 项目生成的 JAR 包体积 提升运维效率
  • 电脑屏幕录制哪个好?强烈推荐这几款
  • webGIS用在可视化大屏上,那效果还有啥话说。
  • FK743M5-XIH6核心板的学习
  • 数据驱动医院数字化转型之路
  • Pytorch Note
  • 雨课堂(长江云)如何自动刷课(无做题)
  • repo将每个仓库回退到第一个commit的状态
  • pandas库
  • 【系统配置】命令行修改统信UOS的grub启动延时
  • 打印堆栈信息