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

编程常用网站广告设计培训专业

编程常用网站,广告设计培训专业,小程序卖货怎么样,国外服装图案设计网站事件 Event 当我们使用鼠标或其他方式与画布交互时,会触发对应的事件。通过监听这些事件,可以获取其在触发时所产生的数据,根据这些数据来实现需要的功能。详细可监听事件见事件API。 监听事件 lf实例上提供on方法支持监听事件。 lf.on(&…

事件 Event

当我们使用鼠标或其他方式与画布交互时,会触发对应的事件。通过监听这些事件,可以获取其在触发时所产生的数据,根据这些数据来实现需要的功能。详细可监听事件见事件API。

监听事件

lf实例上提供on方法支持监听事件。

lf.on("node:dnd-add", (data) => {});

LogicFlow 支持用逗号分割事件名。

lf.on("node:click,edge:click", (data) => {});

自定义事件

除了 lf 上支持的监听事件外,还可以使用eventCenter对象来监听和触发事件。eventCenter是一个graphModel上的一个属性。所以在自定义节点的时候,我们可以使用eventCenter触发自定义事件。

class ButtonNode extends HtmlNode {setHtml(rootEl) {const { properties } = this.props.model;const el = document.createElement("div");el.className = "uml-wrapper";const html = `<div><div class="uml-head">Head</div><div class="uml-body"><div><button οnclick="setData()">+</button> ${properties.name}</div><div>${properties.body}</div></div><div class="uml-footer"><div>setHead(Head $head)</div><div>setBody(Body $body)</div></div></div>`;el.innerHTML = html;rootEl.innerHTML = "";rootEl.appendChild(el);window.setData = () => {const { graphModel, model } = this.props;graphModel.eventCenter.emit("custom:button-click", model);};}
}

例子:
新建 src/views/Example/LogicFlow/component/CustomNode/index.ts 代码如下:

import { HtmlNode, HtmlNodeModel } from '@logicflow/core'// 扩展全局 Window 接口
declare global {interface Window {stopPropagation: (ev: Event) => voidsetDatas: () => void}
}class ButtonNode extends HtmlNode {setHtml(rootEl: HTMLElement): void {const properties = this.props.model.propertiesconst el: HTMLDivElement = document.createElement('div')el.className = 'uml-wrapper'const html: string = `<div><div class="uml-head">Head</div><div class="uml-body"><div><button οnclick="setDatas()" οnmοusedοwn="stopPropagation(event)">+</button> ${properties.name}</div><div>${properties.body}</div></div><div class="uml-footer"><div>setHead(Head $head)</div><div>setBody(Body $body)</div></div></div>`el.innerHTML = htmlrootEl.innerHTML = ''rootEl.appendChild(el)// 实现这些方法window.stopPropagation = (ev: Event) => {ev.stopPropagation()}window.setDatas = () => {const { graphModel, model } = this.propsgraphModel.eventCenter.emit('custom:button-click', model)}}
}class ButtonNodeModel extends HtmlNodeModel {setAttributes(): void {this.width = 300this.height = 150this.text.editable = false}
}// TypeScript 中不使用 default export 时,需要显式地声明每个被导出的成员。
export const CustomNode = {type: 'CustomNode',view: ButtonNode,model: ButtonNodeModel
}

新建 src/views/Example/LogicFlow/Example13.vue 代码如下:

<script setup lang="ts">
import LogicFlow from '@logicflow/core'
import '@logicflow/core/dist/style/index.css'
import { CustomNode } from './component/CustomNode'
import { onMounted } from 'vue'const data = {nodes: [{id: '1',type: 'CustomNode',x: 300,y: 100,properties: {name: 'hello',body: 'world'}}],edges: []
}// 在组件挂载时执行
onMounted(() => {// 创建 LogicFlow 实例const lf = new LogicFlow({container: document.getElementById('container')!, // 指定容器元素grid: true // 启用网格})lf.register(CustomNode)// 渲染图表数据lf.render(data)lf.on('custom:button-click', (model) => {console.log(model.properties)switch (model.properties.body) {case 'world':lf.setProperties(model.id, {body: 'LogicFlow'})breakdefault:lf.setProperties(model.id, {body: 'world'})}})
})
</script><template><h3>Example13</h3><div id="container"></div><!-- 用于显示 LogicFlow 图表的容器 -->
</template><style>
#container {/* 容器宽度 */width: 100%;/* 容器高度 */height: 500px;
}
.uml-wrapper {background: #68fce2;width: 100%;height: 100%;border-radius: 10px;border: 2px solid #838382;box-sizing: border-box;
}
.uml-head {text-align: center;line-height: 30px;font-size: 16px;font-weight: bold;
}
.uml-body {border-top: 1px solid #838382;border-bottom: 1px solid #838382;padding: 5px 10px;font-size: 12px;
}
.uml-footer {padding: 5px 10px;font-size: 14px;
}
</style>

效果如下:
在这里插入图片描述


样例代码: GITUHB

http://www.yayakq.cn/news/299275/

相关文章:

  • 做网站的实施过程一级a做爰片就线在看网站
  • 开发网站用php还是jsp企业php网站建设
  • 南阳网站建设icp备中国网站制作企业排行榜
  • 湖南住房和城乡建设厅网站首页农林行业网站开发公司
  • 手机网站模板案例淄博网站建设程序
  • 青岛建站价格地税城市维护建设税网站是什么意思
  • 淄博网站建设公司三农监利网站
  • 网站建设ssc源码平台wordpress主题升级失败
  • 做网站图片表情wordpress 标签详解
  • 有哪些网站可以兼职做笔译中国114黄页网站宣传广告
  • 做网站泊头网站布局规划怎么写
  • 本地免费发布信息网站小说网站源码html
  • 网站建设常用字体百度引流推广怎么做
  • 建设银行成都开发中心网站wordpress 后台好卡
  • 做医疗网站颜色选择网站推广任务 ip点击
  • c2c网站代表和网址如何开发高端客户
  • 北京网站建设公司新闻.net网站开发框架
  • 新浪云能用wordpress上海外贸网站seo
  • 株洲seo优化报价wordpress tag链接优化
  • 制作复杂的企业网站首页公司网站设计有哪些使用技巧呢
  • 网站模板设计工具dnf做任务解除制裁网站
  • 合肥建设工程招聘信息网站电子商务网站的优势
  • 咸宁网网站福州网站建设要找嘉艺网络
  • 电子商务网站设计与建设小结宜兴网站设计
  • 网站界面设计尺寸本地做网站绑定域名
  • 电子网站建设方案如何做网站主页
  • 做机械有什么兼职网站建设网站公司浩森宇特
  • 电商网站建设实验原理有没有哪个网站能够做简历
  • 公司网站建设费用怎么记账微信管理系统怎么登录
  • 网站开发价钱网页标准化对网站开发维护的好处