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

konva不透明度,查找,显示,隐藏

效果:

代码:

<template>
  <div class="rect">
    <div class="header">
      <el-button type="primary" @click="show">展示</el-button>
      <el-button type="success" @click="hide">隐藏</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()

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)
  //矩形

  const width =400
  const height=200
  const x=clientWidth/2-width/2
  const y=clientHeight/2-height/2
  const rect=new Konva.Rect({
    //给图形添加id和名称,方便之后通过id和名称查找图形
    id:"textId",
    name:"textName",
    x:x,
    y:y,
    width:width,
    height:height,
    fill:'#ff8800',
    stroke:'black',
    strokeWidth:1,
    opacity:0.5
  })
layer.add(rect)
}
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.kler.cn/news/367991.html

相关文章:

  • JAVA排序
  • 【Linux 从基础到进阶】数据库高可用与灾备方案
  • 系统聚类比较——最短距离法、最长距离法、重心法和类平均法
  • 【自然语言处理】BERT模型
  • Ubuntu20.04安装VM tools并实现主机和虚拟机之间文件夹共享
  • 在linux系统中查看具体文件大小命令
  • ThreadPoolExecutor可以创建哪是哪三种线程池呢?
  • linux网络编程4——WebSocket协议及服务器的简易实现
  • 苏州金龙技术创新赋能旅游新质生产力
  • Navicat导入Excel数据时数据被截断问题分析与解决方案
  • 论文阅读与写作入门
  • mit6824-03-GFS论文记录
  • 微信小程序版本更新管理——实现自动更新
  • Linux复习-C++
  • vue3组件通信--props
  • 虚拟现实新纪元:VR/AR技术将如何改变娱乐与教育
  • 桥接模式,外界与主机通,与虚拟机不通
  • 提示词高级阶段学习day3.3如何写好结构化 Prompt ?
  • AndroidStudio Koala更改jdk版本 2024-1-2
  • 关于我的数据库——MySQL——第二篇
  • Qt/C++路径轨迹回放/回放每个点信号/回放结束信号/拿到移动的坐标点经纬度
  • JavaEE初阶---多线程(三)---内存可见性/单例模式/wait,notify的使用解决线程饿死问题
  • ubuntu虚拟机网络配置
  • C++STL之stack
  • 二十、行为型(访问者模式)
  • Java学习Day53:铲除紫云山金丹原料厂厂长(手机快速登录、权限控制)