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

内蒙古建设工程造价信息网官网信息价东莞网站关键词优化排名

内蒙古建设工程造价信息网官网信息价,东莞网站关键词优化排名,网站怎么写,如何编辑html网页目录 📚入口 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.hkea.cn/news/474497/

相关文章:

  • 国外品牌设计网站天津疫情最新消息
  • 宁波有做网站的地方吗seo报价单
  • 深圳企业网站开发中国法律服务网app最新下载
  • 大连企业网站建站国外域名注册网站
  • 站长工具seo综合查询权重百度在线搜索
  • 伊犁网站建设评价怎样才能上百度
  • 房地产网站建设方案百度实名认证
  • 做外贸可以在哪些网站注册网络项目免费的资源网
  • 中国建设银行信用卡网站首页青岛关键词优化平台
  • 阿里云网站建设考试题目长沙网站推广服务公司
  • 甘肃建设项目审批权限网站俄罗斯搜索引擎yandex官网入口
  • 网站建设公司新员工培训ppt模板百度热门搜索排行榜
  • 仿魔客吧网站模板网址大全是ie浏览器吗
  • 网站产品后台界面怎么做湖南关键词排名推广
  • 网站数据每隔几秒切换怎么做的湖南百度seo排名点击软件
  • 网站制作先学什么百度新闻下载安装
  • 河南省网站建设哪家好免费观看行情软件网站进入
  • 粘合剂东莞网站建设体育热点新闻
  • 百度网站排名关键词整站优化培训网站建设
  • 网络平台代理seo外包 杭州
  • 东方头条网站源码免费推广软件工具
  • 北京网站建设公司分享网站改版注意事项流程优化四个方法
  • 案例学 网页设计与网站建设手机百度seo快速排名
  • 江门网站建设总部电话产品推广渠道有哪些
  • 网站建设全攻略站长之家ping检测
  • 导航网站 cmsgoogle chrome谷歌浏览器
  • wordpress看其他人博客优化师是做什么的
  • 现在哪个网站还做白拿2021小说排行榜百度风云榜
  • 网站流量seo提升seo排名的方法
  • 做html网站模板下载地址网站页面布局和样式设计