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

jsp网站购物车怎么做南昌网站建设索q.479185700

jsp网站购物车怎么做,南昌网站建设索q.479185700,自学网页设计难吗,如何租用服务器做网站目录 📚入口 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/356758/

相关文章:

  • 江山网站建设做百度网站费用多少
  • 国外可以做非法网站吗长沙网站建设 个人
  • 嵌入式网站开发网站建设厂商
  • 和建设银行类似的网站大连公路建设有限公司网站
  • 深圳品牌创意网站建设wordpress教程w3c
  • 余姚专业做网站公司论坛网站开发
  • 网站地图如何做网站点击赚钱怎么做
  • 网站设计怎么边加载变查看京东网上商城手机
  • 做网站 微信开发前景全自动引流推广软件下载
  • 网站建设需要的条件网站pc转移动端代码
  • 引流软件下载站网站开发流程联系方式
  • 如何在百度举报网站wordpress手机版注册
  • 网站建设与运营固定资产wordpress 邮箱验证码
  • 做抢单软件的网站福建网站建设开发
  • 保山公司网站建设铜陵app网站做招聘信息
  • 临沂网站公众号建设网站模板安装出现预先建设数据库
  • 简洁手机导航网站模板下载安装注册公司最好用老年人
  • 做网站一般的尺寸做资质去哪个网站填资料
  • 学校网站开发图片素材网站后台插件
  • .net网站开发技术简介微信开发者工具快捷键
  • 企业网站开发信息网站建设零基础教学
  • 怎么样可以做网站wordpress 标签 取消
  • 无限建站系统ui界面交互设计
  • 湖南中核建设工程公司官方网站天津建设工程信息网怎么上传资质企业
  • 医院网站建设模板下载qq网页版登录官网登录入口
  • 百度网站提交收录湛江人怎么样
  • 网站的方案网站交互图片怎么做的
  • 为什么买的网站模版不好用手机版网站建设
  • c 做网站如何调用dll手机网站建设制作教程视频教程
  • 大朗镇住房规划建设局网站个人网站费用