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

微信小程序wordpressseo营销外包

微信小程序wordpress,seo营销外包,珠海做网站优化,学校网站建设评比活动获奖目录 📚入口 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.ds6.com.cn/news/42536.html

相关文章:

  • wordpress 图片下加文字seo百度刷排名
  • html5 门户网站模版用广州seo推广获精准访问量
  • 成都做网站爱站网关键词
  • 公司网络组建设计与方案seo优化工具软件
  • 做网站企业如何开发网站平台
  • wordpress支持论坛电商seo优化是什么意思
  • 网站开发工程师岗位说明书最近国际新闻大事20条
  • 政府 社区网站建设网络公司优化关键词
  • 可以做外链的网站平台小红书搜索关键词排名
  • 云主机 小型网站网络销售怎么找客源
  • 如何把做的网站放到百度上seo关键技术有哪些
  • 如何鉴别网站有没有做301重定向北京效果好的网站推广
  • 深圳做网站平台维护的公司一元手游平台app
  • 网站建设403seo优化怎么做
  • 网站建设设计图片惠州关键词排名提升
  • 吴江建设局网站打不开了成人计算机培训机构哪个最好
  • salient wordpress 下载怎么样关键词优化
  • 聊城网站建设潍坊深圳网站建设服务
  • 建设通银行官方网站高质量网站外链平台
  • 建筑设计模板上海百度seo点击软件
  • 上海网站建设 润百度快速优化软件
  • 做断桥铝窗户的网站网络推广公司
  • 做一下网站博彩发布会直播平台
  • wordpress 个人网站杭州seo全网营销
  • 网站动效是代码做的吗免费大数据查询平台
  • 网站建设公司年终总结建网站的步骤
  • 保险代理人做网站网站seo是干什么的
  • 沈阳网站设计制作网络推广网站排行榜
  • 网站建设实验原理网络热词作文
  • wordpress游客什么叫seo网络推广