Html5中你使用哪种方法点击事件?
2013-10-28 15:21
218 查看
Html5中有两种常见的方法可以用来点击事件的方法有两种,SVG和Canvas。这两者都能使你在浏览器中绘图,但是他们的原理就大相径庭了。最近我对于SVG和Canvas都做了很细致的研究和使用,大致弄清了这两者之间的区别,下面就为大家进行详细的讲解,希望对大家能够有帮助。
首先为大家简单介绍一下这两种方法的工作原理,SVG是在XML中描述二维图形,所以在SVG DOM中的每一个元素都是可用的,你可以为每一个元素增加JS事件处理器。而Canvas是在fly上绘画2D图形,也是使用JS事件处理器,它的绘画能够按照像素重新生成。除此之外,在SVG中,每个图形都会被标记,只要SVG对象属性发生改变,浏览器就会自动重新生成相对应的新图像了,而在Canvas中,一旦图形完成,就会被遗忘,不会被标记,更不用说根据目标对象属性的改变而重新生成新图像了。
第二点,SVG和Canvas的一些其他区别。首先在分辨率上,Canvas是非常依赖图形的分辨率的,这也就限制了我们对于图形的选择,导致大家的实际操作出现很多的麻烦和困难,而SVG对于分辨率就不是那么依赖了,对于图形的选择更加自由。其次,SVG还能支持事件处理器,相对于不能支持事件处理器的Canvas来说,也是十分方便的。最后,在应用方面,由于SVG复杂高度的渲染能力使得它适合带有大型渲染区域的应用程序,例如谷歌地图,而Canvas它的文本渲染能力很弱,渲染速度快,最适合图像密集型的游戏。
首先为大家简单介绍一下这两种方法的工作原理,SVG是在XML中描述二维图形,所以在SVG DOM中的每一个元素都是可用的,你可以为每一个元素增加JS事件处理器。而Canvas是在fly上绘画2D图形,也是使用JS事件处理器,它的绘画能够按照像素重新生成。除此之外,在SVG中,每个图形都会被标记,只要SVG对象属性发生改变,浏览器就会自动重新生成相对应的新图像了,而在Canvas中,一旦图形完成,就会被遗忘,不会被标记,更不用说根据目标对象属性的改变而重新生成新图像了。
第二点,SVG和Canvas的一些其他区别。首先在分辨率上,Canvas是非常依赖图形的分辨率的,这也就限制了我们对于图形的选择,导致大家的实际操作出现很多的麻烦和困难,而SVG对于分辨率就不是那么依赖了,对于图形的选择更加自由。其次,SVG还能支持事件处理器,相对于不能支持事件处理器的Canvas来说,也是十分方便的。最后,在应用方面,由于SVG复杂高度的渲染能力使得它适合带有大型渲染区域的应用程序,例如谷歌地图,而Canvas它的文本渲染能力很弱,渲染速度快,最适合图像密集型的游戏。
相关文章推荐
- 使用js写点击一个事件使页面返回顶部以及控制一个元素在右下角的固定位置的方法
- 使用ButterKnife方法,点击事件响应里面,执行performClick失效,不能再同一帧响应多个点击事件
- html5 svg 中元素点击事件添加方法
- 关于使用DrawerLayout建立侧滑菜单时,下层布局依然可响应点击事件的解决方法
- ListView使用自定义适配器的情况下实现适配器的控件点击事件执行Activity界面中的方法
- 使用jquery on()方法解决html页面点击元素,事件无响应的问题
- Android 控件使用Animator动画后,点击事件失效解决方法
- jquery中交替点击事件toggle方法的使用示例
- echart 在点击事件中使用setTimeout 方法
- Angularjs中使用指令绑定点击事件的方法
- Android中封装View提供接口供点击事件回调的方法及使用
- 关于使用DrawerLayout建立侧滑菜单时,下层布局依然可响应点击事件的解决方法
- HTML5标签点击事件方法:无法传递对象类型参数
- 使用layout方法实现控件的移动并且不影响点击事件
- android studio使用ButterKnife 8.0.1报空指针错误以及点击事件无效的解决方法
- jquery中交替点击事件toggle方法的使用示例
- easyUI下拉列表点击事件使用方法
- Angularjs中使用指令绑定点击事件的方法
- android studio使用ButterKnife 8.0.1报空指针错误以及点击事件无效的解决方法
- 使用Java自动化方法模拟Android手机点击、触屏事件