ZRender文档研读 (基于4.3.2版本)

article/2025/9/21 3:52:30

ZRender文档研读 (基于4.3.2版本)

不使用最新的5.x.x的版本是因为线上文档和最新版本JS文件不匹配-2022年6月13日

1、文档地址

  • 1、官方文档的地址:https://ecomfe.github.io/zrender-doc/public/api.html#zrenderdisplayable

  • 2、Github地址:https://github.com/ecomfe/zrender

2、zrender.Group

  • 继承自 zrender.Element组。
  • Group 是一个容器,可以插入子节点,Group 的变换也会被应用到子节点上。

构造函数

zrender.Group()

var g = new zrender.Group();
g.position[0] = 100;
g.position[1] = 100;
g.add(new zrender.Circle({style: {x: 100,y: 100,r: 20,}
}));
zr.add(g);

3、元素不支持css的hover属性,需要使用onmouseover和onmouseout方法

{onmouseover: function () {console.log("over")this.attr({style: {textFill: "#f00", // 颜色}})},onmouseout: function () {this.attr({style: {textFill: "#0f0", // 颜色}})},
}
  • 官方中的注释
  • 11217 - 11223 (zrebder.js 4.3.2)

Do not trigger mouseout here, in spite of mousemove(mouseover) is
triggered in touchstart. This seems to be illogical, but by this mechanism,
we can conveniently implement “hover style” in both PC and touch device just
by listening to mouseover to add “hover style” and listening to mouseout
to remove “hover style” on an element, without any additional code for
compatibility. (mouseout will not be triggered in touchend, so “hover
style” will remain for user view)

4、在一个实例添加鼠标事件

  • 1、第一种是直接在这个实例创建的时候,直接添加。如下代码:
var BezierCurve = new zrender.BezierCurve({ // 以一个贝塞尔曲线为例,其他的同理…… // 各种属性onmouseover:function(){ // 添加鼠标的over事件,用来模拟鼠标的hover事件this.attr({style:{stroke:"#00f"}})},onmouseout:function(){ // 添加鼠标的out事件,用来模拟鼠标的hover事件this.attr({style:{stroke:"#333"}})},onclick:function(){ // 添加点击事件console.log("点击了线");},oncontextmenu:function(e){ // 添加右键事件// console.log(e)e.event.preventDefault();// zr.remove(this);var x = e.event.clientX;var y = e.event.clientY;contentMenu.show();contentMenu.attr({position:[x, y],})contentMenu.b = this;}});

2、 实例创建之后,通过on的方法绑定

var BezierCurve = new zrender.BezierCurve({ // 以一个贝塞尔曲线为例,其他的同理…… // 各种属性
});
// 添加有右键鼠标事件
// 注意,这里事件名称没有“on”  oncontextmenu =>  contextmenu
BezierCurve.on("contextmenu",(e)=>{// console.log(e)e.event.preventDefault();// zr.remove(this);var x = e.event.clientX;var y = e.event.clientY;contentMenu.show();contentMenu.attr({position:[x, y],})contentMenu.b = this;
});

4.1、实例添加鼠标事件之后的e不是原始的e

  • 1、请看下面的截图

XT1Cvt.png

其中的e.event才是鼠标的e事件。


http://chatgpt.dhexx.cn/article/d3wl8d3y.shtml

相关文章

【ZRender 渲染引擎 - 贰】 | Vue 框架集成与绘制其他图元

theme: cyanosis 持续创作,加速成长!这是我参与「掘金日新计划 10 月更文挑战」的第 8 天,点击查看活动详情 1. Vue 中使用 ZRender 上一篇中,我们通过最原始的方式体验了一下 ZRender 的使用。接下来,为了更方便管理…

zrender实现图形缩放功能

zrender实现图形缩放功能 一、绘制一个矩形图 <div id"main-container"></div>#main-container {width: 500px;height: 300px;border: 1px solid #888; }import * as zrender from zrenderconst container document.querySelector(#main-container) c…

ECharts 3.0底层zrender 3.x源码分析1-总体架构

zrender是一个轻量级的Canvas类库&#xff0c;作为百度Echarts 3.0的底层基础。截至目前查看的zrender源码和文档&#xff0c;包括官网文档都还停留在2.x时代&#xff0c;我打算用一个系列介绍下zrender 3.x的使用和源码&#xff0c;一些demo和没有在博客中介绍的源码请进我的g…

ZRender (Canvas)简单使用(拖拽、缩放、旋转、文字、层级)

一、ZRender 是二维绘图引擎&#xff0c;它提供 Canvas、SVG、VML 等多种渲染方式。ZRender 也是 ECharts 的渲染器&#xff1b; 二、下面是以图片做的简单demo&#xff0c;分为左中右三部分&#xff0c;左边是需要的图片&#xff0c;中间是绘图部分&#xff0c;右边是添加文字…

源码解读之zrender-ZRender 类(3)

00 小结 当我们在 zrender.init(document.getElementById(“canvas”))时&#xff0c;首先实例化了一个 ZRender 实例&#xff0c;在这个实例化过程中&#xff0c;主要实例化了&#xff1a; Storage 类&#xff0c;作用类似于全局状态管理Painter 类&#xff0c;可以理解为画…

【ZRender 渲染引擎 - 壹】 | 基础图形元素绘制

theme: cyanosis 持续创作&#xff0c;加速成长&#xff01;这是我参与「掘金日新计划 10 月更文挑战」的第 7 天&#xff0c;点击查看活动详情 开篇前言 在掘金认识我的都知道&#xff0c;我主要是研究 Flutter 的。其实我一直希望开发出一套好用的 Flutter 的图表库&#xf…

zrender学习

这个是项目总结&#xff0c;不适合学习 <div id"canvas" style"background-image:url(./canvasbg.gif)"></div> 定义zrender初始化对象&#xff0c;背景是一个gif图 样式如下 ↓ 工程里&#xff0c; topo.html <div id "containe…

zrender源码学习笔记(一):认识zrender

本文内容 入门zrender绘制原理 入门zrender zrender是Echarts底层的2D绘图引擎&#xff0c;在搞懂其原理之前&#xff0c;我们先学会如何使用zrender&#xff0c;我们从绘制一个简单圆形入门。这里也给出官网入门教程 初始化 zrender.init(dom)初始化zrender实例&#xff0c…

zrender 知识:使用zrender搭建流程图工具

首先看下最终的效果图&#xff1a; 主要使用的技术是zrender.js和vue.js&#xff0c;zrender 用于实现流程图&#xff0c;vue搭建整体架构。 本篇文章主要面向对zrender有一定了解的同学。 本篇文章只讲解核心flowchart的实现方法。 一.分析 流程图主要包含节点node、联系e…

zrender基础入门,简单的案例图形绘制

一、简单介绍 ZRender是二维绘图引擎&#xff0c;它提供 Canvas、SVG、VML 等多种渲染方式。ZRender也是ECharts的渲染器。 流程图&#xff1a; 二、使用入口 (1)npm install zrender&#xff0c;因为zrender不是浏览器自带不同于前面的canvas与svg&#xff0c;需要先下载 …

二维绘图引擎ZRender

1、开始使用 描述 ZRender是二维绘图引擎&#xff0c;它提供 Canvas、SVG、VML 等多种渲染方式。ZRender 也是 ECharts 的渲染器。 下载 ZRender 项目在 gitHub ,也可以使用 npm install zrender 下载。 在 dist 目录下找到 zrender.js 和 zrender.min.js&#xff0c;前者是开发…

MATLAB中求矩阵的特征值和特征向量

矩阵特征值的数学定义 设A是n阶方阵&#xff0c;如果存在常数λ和n维非零列向量x&#xff0c;使得等式Axλ x成立&#xff0c;则称λ为A的特征值&#xff0c;x是对应特征值λ的特征向量。 求特征值和特征向量&#xff1a; eig(A)&#xff1a;求矩阵A的全部特征值&#xff0c…

简单易懂的特征值与特征向量

特征值与特征向量是线性代数中一个很基础的知识&#xff0c;但是很多人对这两个概念没有一个直观的概念&#xff0c;从直觉上&#xff0c;很难理解这两个东西&#xff0c;只知道公式&#xff0c;但是不知道它代表的意义。当年上现代课的时候&#xff0c;老师根本不会去讲这些东…

特征值和特征向量的几何意义

1. 特征值和特征向量 我们首先回顾下特征值和特征向量的定义如下&#xff1a; A x λ x Ax\lambda x Axλx 其中A是一个 n n n\times n nn的实对称矩阵&#xff0c; x x x是一个n维向量&#xff0c;则我们说 λ \lambda λ是矩阵A的一个特征值&#xff0c;而 x x x是矩阵A的…

特征值和特征向量的通俗解释

我们知道&#xff0c;特征向量的公式是 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 其中A代表矩阵&#xff0c;x代表特征向量&#xff0c;代表特征值。 众所周知&#xff0c;特…

对特征值和特征向量的理解

Agenda 1. 特征值和特征向量1.1 特征值和特征向量的通俗解释1.2 如何计算矩阵的特征值和特征向量1.3 特征多项式1.4 特征值和特征向量的性质 1. 特征值和特征向量 在讨论特征值和特征向量之前&#xff0c;必须声明的是现在我们关注的是有限维 线性空间上的线性变换。这里两个关…

线性代数(五)特征值和特征向量

文章目录 一&#xff1a;特征值与特征向量二&#xff1a;特征方程2.1行列式求解的另一种方法--初等变换2.2可逆矩阵定理以及行列式性质的补充2.3特征方程/特征多项式2.4相似性 三&#xff1a;对角化3.1从例子出发3.2定理3.3例子 一&#xff1a;特征值与特征向量 1.定义&#x…

特征值和特征向量(三)

特征值和特征向量&#xff08;三&#xff09; 一、先看一下教科书上的定义&#xff1a;设A是n阶方阵&#xff0c;如果存在常数及非零n向量x&#xff0c;使得&#xff0c;则称是矩阵A的特征值&#xff0c;x是A属于特征值的特征向量。给定n阶矩阵A&#xff0c;行列式 的结果是关…

网页游戏脱机脚本制作视频教程

网页游戏脱机脚本制作视频教程 百度网盘 布脖练馅辰杖怖铱试疤促钩咏合躺酱澈纸罢旨谖谘帘婪尾拾碧鸥居丶骨碳捍饰炔幌干衫乖商衣临衣氛捍运阂妊痰煤籽媒移惶心谑源谑丫松橙湛叭坪佳蛊八婪毒鄙刮碧悠凳炔捍灰钩贺篮媒梅敝粱寡油倨制柿囊谐举婪贫婪奖堂虏啄腊谘剿镜感诺衣挥堂猎…

python可以制作游戏脚本吗_用Python写一个游戏脚本,你会吗?

学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手。如果你也想多练项目实战。可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目 听说pywin32写脚本还不错 pyw…