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

江西省建设厅网站资质升级查询制作网页完整步骤手机版

江西省建设厅网站资质升级查询,制作网页完整步骤手机版,济南网站建设yigeseo,百度指数分析目录 📚入口 Circle - 图形 Group - 组 事件捕获 - 流程 step - 1 step - 2 总结 这篇文章我们讲讲Circle圆形,Group组的使用以及大家最熟悉又陌生的事件捕获和冒泡在ZRender中的实现,篇幅较长,且听我慢慢分析。 &#x…

目录

📚入口 

Circle - 图形 

Group - 组

事件捕获 - 流程

step - 1

step - 2

总结


这篇文章我们讲讲Circle圆形,Group组的使用以及大家最熟悉又陌生的事件捕获和冒泡在ZRender中的实现,篇幅较长,且听我慢慢分析。

📚入口 

var zr = zrender.init(document.getElementById("main"));
var circle = new zrender.Circle({scale: [1, 1],shape: {cx: 0,cy: 0,r: 100,},
});var g1 = new zrender.Group({position: [100, 100],
});
g1.add(circle);var g2 = new zrender.Group();
g2.add(g1);var g3 = new zrender.Group();
g3.add(g2);var g4 = new zrender.Group();
g4.add(g3);circle.on("click", function (e) {console.log("Circle");
});
g1.on("click", function (e) {console.log("Group 1");e.cancelBubble = true;
});
g3.on("click", function (e) {console.log("Group 3");// e.cancelBubble = true;
});
g4.on("click", function (e) {console.log("Group 4 should not be triggered");
});zr.add(g4);

Circle - 图形 

Circle.js

Circle没有一些花里胡哨的东西,而且也不需要PathProxy的配置,直接通过ctx.arc()就可以实现,很简单方便。

Group - 组

Group.js

值得注意的是,Group不是继承于Path的而是Element,说明它不属于图形化的一种;而它又有_children属性,又将child.parent = this;这就和我们后面说到的冒泡相呼应了(一套父子关系,层级关系)-- 事件的捕获和冒泡将是我们这篇文章的重点! 

事件捕获 - 流程

HandlerProxy.js

 图中①②两点是初始化过程的补充,涉及初始化可以看我第一篇你真的了解Canvas吗--解密一【ZRender篇】,里面有详细的流程介绍

  • step - 1
未列举完,此对象中是一个个事件函数,可对应后面那张图
HandlerProxy.js-自执行函数(对应所有的事件)

  • step - 2
重要部分我都文字说明了

 这里主要是addEventListener会实时监听事件,触发localDOMHandlers里面的回调函数,this的值绑定到class HandlerDomProxy()的实例对象,就像下图。想了解更多this指向,可参考我的这篇文章我的这篇文章JS中的this

能使用HandlerDomProxy里面的属性
注意这里是初始化时期就动态加入到localDOMHandlers中

函数normalizeEvent咱先不关注,与我们主流程无关

再看看trigger函数,这是个重点函数

_$handlers的数据来源往下看
Handler.js初始化阶段调用的函数
一个对象,key=事件名,value=wrap数组

上面的trigger函数重点执行就是hItem.h.call(hItem.ctx, args[0]);,hItem.ctx是Handler实例对象(针对于主流程),hItem.h就是我们的click事件

ps:on方法在html中也有调用,我这边为什么不用那边的举例呢,大家可以思考一下并留言和我互动哦!答案我会发布在下篇文章中,大家也可以去参考~

Handler.js中我们找到原型链上声明好的回调方法,最终执行了dispatchToElement函数

 dispatchToElement函数就是最后我们将要提到的事件冒泡,由于篇幅原因,我们下一章再讲吧!

总结

这篇文章主要讲了另一个图形Circle以及事件冒泡中我们需要用到的Group,最后一部分就是事件捕获的一系列流程,还是比较复杂且感觉上“乱”的。主要的原因是this的指向问题,因为此处涉及到的hItem.ctx是精髓,确定了哪个实例对象执行对应的方法(Circle,Handler,HandlerDomProxy)

好了,先讲到这里,我们下一篇文章见~~

如果觉得有收获,麻烦给个赞和关注。你的鼓励是我写作的动力,大家一起学习一起进步。

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

相关文章:

  • 网站首页设计有限公司thefox wordpress
  • 51自学网官方网站网站建设人员的工资分配
  • 如何建立虚拟架构网站国内建站 wordpress
  • 做网站常用图标app开发公司前十名
  • 海康打开网站显示建设中互联网推广怎么找客户
  • 网站访问量有什么用免费商城系统哪个好
  • asp电影网站源码专业app开发外包公司
  • 模板建站的网站wordpress文件填写
  • 好的学习网站打广告春秋网络优化技术团队介绍
  • 网站建设维护是什么岗位装饰工程规范
  • 商业网站缩写江西网站开发公司电话
  • 先备案还是先做网站打开网页链接
  • 虚拟主机可以做视频网站嘛贺州网站制作
  • 收录网站工具怎样在wordpress里面调出菜单
  • 沈阳网站公司哪个好3d动画特效制作软件
  • 网站网站做员工犯法吗无锡网站推广优化公司哪家好
  • php网站设置如何使用天津建设网站培训
  • 定制网站设计高端网站建设网页设计网站制作视频教程
  • 深圳建设门户网站广告公司主要做什么
  • 网站更换空间需要怎么做网站开发手册
  • 义乌做网站的公司哪家好免费咨询新冠医生
  • 盘州电子商务网站建设网站建设怎么链接表格
  • 网站开发后端语言wordpress shard
  • 网站建设预付费入什么科目标识标牌制作设计
  • 南京市建设执业资格中心网站手机编写html网页的软件
  • 大型企业门户网站能力建设探索与实践崇州市建设局网站
  • 工信部 网站备案查询天眼查企业查询入口官网
  • 不用下载直接浏览的网站wordpress 主机销售
  • ppt模板下载免费素材网站西安网站建设哪个好
  • 杭州怎么做网站网上商城定制价格