`
cppmule
  • 浏览: 448273 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

了解轻量级的移动开发Javascript类库- Zepto.js

 
阅读更多
了解轻量级的移动开发Javascript类库- Zepto.js 现代的javascript类库都非常巨大,看看jQuery就可以了,当你需要创建一个基于移动设备的应用,这些类库显得非常臃肿,记得前段时间我们介绍过的5个jQuery的备选轻量级移动客户端开发(Mobile development)类库?其中就有我们今天即将介绍的zepto.js。 移动设备中使用桌面类库和的几个问题 新酷技术支持下的互联网在最近发展的很快,几乎是跳跃的发展。我们从静态的页面发展到动态的web应用程序,然后到实时的动态高度responsive的web应用。其中最明显的就是移动客户端的而发展。 大家想想,很多用户都使用智能手机,甚至在家里我们也愿意是用平板电脑进行浏览和上网。这类的设备都非常适合进行页面浏览工作。 作为一个开发人员来说,我们需要考虑相关的因素,例如,带宽资源。很多时候不是所有的设备都拥有超棒的硬件条件或者网络状况。 我估计大家已经猜到了我介绍的以上内容。 很多超大的类库jQuery或者Prototype肯定在移动开发中扮演重要的角色,但是依然很多情况下你需要使用更加锐利的类库,相信很多的开发人员都同意我的观点。 所有代码使得一个类库可以兼容所有的浏览器 另外一个很大的问题在于一些很知名的类库都使用了大量代码来兼容不同的浏览器。事实上,jQuery就内建了很多代码用来处理不同浏览器的兼容性问题,这些问题往往对于开发人员是比较难于克服的。事实上,即使现在jQuery很实用了很多代码用来处理不同浏览器的兼容性问题。 但是如果我们需要开发的应用只需要支持特定的设备呢?你是不是觉得还有必要去处理如此多的兼容性问题? 如果你去掉这些代码,你可以: 去掉代码可以大大提高性能 是的你开发文件更小,帮助客服移动设别带宽问题 是不是觉得我们小题大作了?看看下面的jQuery代码吧: isPlainObject: function( obj ) { // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don't pass through, as well if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } .... 或者这些: // Perform a simple check to determine if the browser is capable of // converting a NodeList to an array using builtin methods. // Also verifies that the returned array holds DOM nodes // (which is not the case in the Blackberry browser) try { Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; // Provide a fallback method if it does not work } catch( e ) { // The intended fallback } .... 代码可能并不是很复杂,但是你看到的确处理了很多的不同设备浏览器的问题。如果所有这些代码加起来,最后的性能问题我觉得你不得不考虑。 使用Zepto有什么区别? 我可以听到大家再说”说的够多的了!告诉我们这个类库“。接下来我们开始介绍它 Zepto是一个javascript的框架用来处理我们上面提到的问题。非常小的一个代码,总共只有8kb。 它删除了处理跨浏览器问题的代码,因此非常的苗条。当初开发的时候,就是用来处理webkit内核浏览器。当然mobile版本的webkit。现在它已经扩展支持桌面浏览器。当然,只支持现代浏器。 别指望它支持IE6这种古董界别的浏览器。 另外一个使得zepto非常轻量级的原因是避免了太多的特性。核心类库不包含过多的功能。甚至是AJAX和动画功能都是作为模块独立存在的。对于那些主要使用类库来处理DOM操作的人来说,这个类库非常棒。 还有一点,zepto的类库和jQuery类库是兼容的。如果你使用jQuery,其实你已经知道如何使用zepto了。 Zepto和jQuery是否可以互换? 是的!因为Zepto的核心API很大程度的模仿了jQuery类库。目的是为了减少学习难度。很多的方法,例如,处理DOM操作,都使用一样参数,甚至一样的顺序。我们看看下面例子: $('#gbin1element').html("Hey! Are you using gbin1.com?"); 看起来是不是非常熟悉?实际上和你使用jQuery来开发代码一模一样。而不仅仅是这一个方法。很多其它的功能API类似,例如,AJAX。 另一方面, API并不是100%的一样。Zepto放弃了一些在jQuery中破坏你的代码的方法。事实上,zepto是jQuery的一个子集,你可能会错过一些特别的内建功能,例如,Deferred。你不能指望在zepot和jQuery中方法执行一样。 对于我来说,最大的障碍在于很多方法都来自于jQuery,但是有不同的特性。有些时候最让人恼火的是你认为这么使用正确,但是其实并不正确。clone方法来拷贝事件handler就是一个很好的例子。如果不看代码的话,绝对不知道这个问题。 了解核心的API 废话不说了,这里我们开始介绍核心API。 修改一个容器的HTML内容 这是典型的DOM操作:读取并且修改HTML的内容。使用zepto,你可以调用html方法,传递新的HTML,如下: var containerText = $('#gbin1element').html(); 或者修改内容: $('#gbin1element').html("do you use gbin1.com"); 是不是很简答? 向一个容器添加或者前端添加元素 和jQuery类似,zepto也使用append和preappend方法。如下: $('#gbin1element').append("

This is the appended element.

"); 或者 $('#gbin1element').prepend("

This is the appended element.

"); 事件(Events) Zepto提供了一堆非常容易使用的方法。很多都是基于on方法,是不是和jQuery很类似? $('#gbin1element').on('click', function(e){ // 添加你需要执行的代码 }); 如果你觉得需要使用bind,delegate或者live,千万不要,因为和jQuery一样,这些方法都已经deprecated了。 AJAX 很多现代类库都提供使用简答的AJAX方法,zepto也不例外。 $.ajax({ type: 'POST', url: '/project', data: { name: 'gbin1.com' }, dataType: 'json', success: function(data){ //成功时执行的方法 }, error: function(xhr, type){ alert('Hi, Not work?') } }); 看起来复杂,其实非常明了。 创建一个AJAX对象并且传递参数 指定POST方法。缺省应该是GET 指定POST处理的URL 指定需要传递到服务器URL的参数,这里我们创建了gbin1.com这个值。 指定方法成功后或者失败执行的callback。 对于jQuery来说,它拥有分开的GET和POST及其load方法 动画 那么动画如何处理呢?Zepto提供了animate方法用来处理动画: $('#gbin1element').animate({ opacity: 0.50, top: '30px', color: '#656565' }, 0.5) 我们只需要选择执行动画的元素,调用anmiate方法,指定动画属性,zepto会帮助我们处理其它。 如果你需要显示/隐藏元素,调用toggle方法。 到这里我相信大家都非常清楚了 - Zepto的DOM,动画和事件API都不同程度模仿了jQuery,我们都知道jQuery非常擅长处理这些。如果你使用过jQuery,那么使用zepto绝对很简单。 触摸事件及其其它超棒的特性 Zepto也提供了对于触摸设备的事件支持,如下: swipe tap doubleTap longTap - 当你长按超过750ms会触发这个事件 这里是一个例子:
  • List item 1 DELETE
  • List item 2 DELETE
<script> // show delete buttons on swipe $('#items li').swipe(function(){ $('.delete').hide() $('.delete', this).show() }) // delete row on tapping delete button $('.delete').tap(function(){ $(this).parent('li').remove() }) </script> 当你挥击一个项目,其它项目的删除按钮会隐藏,点击删除,这个项目会被删除。 总结 以上就是所有的Zepto介绍,可能仁者见仁,智者见智,不同人对于这个类库理解也不一样。可能你依然愿意使用jQuery来处理web应用,但是还是希望你能够使用zepto来尝试一样,毕竟俩者的代码构造变化不大,希望大家觉得这篇文章有帮助,如果你有问题,请给我们留言,谢谢!
分享到:
评论

相关推荐

    javascript框架- zepto.js

    zepto.js是一款专门为移动Web开发设计的轻量级JavaScript库,它的目标是成为jQuery在移动端的替代品。鉴于jQuery在桌面浏览器上的强大功能,zepto.js在保持相似API的同时,专注于移动设备的需求,以较小的体积提供...

    Zepto.js移动端左右滑动导航菜单.zip

    Zepto.js作为一种专为移动端优化的轻量级JavaScript库,其出色的性能和简洁的API使其成为了开发移动端交互式功能的热门选择。本文将详细介绍一个基于Zepto.js开发的移动端左右滑动导航菜单项目,深入探讨其技术实现...

    移动框架zepto.js

    Zepto.js是一款轻量级的JavaScript库,专为移动端浏览器设计,与jQuery有着相似的API,但体积更小,更适合移动设备的性能和网络条件。它提供了丰富的DOM操作、事件处理、动画效果以及Ajax功能,是开发移动Web应用的...

    H-ui.admin 前端框架

    H-ui.admin是用H-ui前端框架开发的轻量级网站后台模版 采用源生html语言,完全免费,简单灵活,兼容性好 让您快速搭建中小型网站后台 程序员的的福音 \根目录 │ _blank.html 空白页(每次我们都拿空白页去创建,...

    H-ui.admin_v2.3.1

    │ zepto zepto库 │ ueditor 百度编辑器 │ Highcharts 图表插件 │ dataTables 表格排序,检索插件 │ WebUploader 百度文件上传组件 │ lightbox2 图片预览组件 │ │ html5.js html5插件,让低版本IE支持...

    zepto.js手机移动端城市选择插件代码

    zepto.js是一款轻量级的JavaScript库,专为移动设备的Web开发设计,它提供了类似于jQuery的API,使得开发者在移动端进行DOM操作、事件处理、动画制作等更加便捷。在这个"zepto.js手机移动端城市选择插件代码"中,...

    zepto.min.js

    Zepto是用于现代浏览器的极简JavaScript库,具有与 jQuery兼容的API。 移动端常用js

    zepto.js的中文手册,中文api说明,zepto中文注释

    Zepto.js是一个轻量级的JavaScript库,旨在为移动Web开发提供与jQuery类似的API。它体积小、性能高且易于使用,非常适合移动设备上的Web应用开发。Zepto.js支持大部分jQuery的核心功能,包括DOM操作、事件处理、Ajax...

    zepto.js中文离线手册网页版

    zepto.js是一款轻量级的JavaScript库,专为移动设备的浏览器设计,特别是针对iOS和Android等触屏设备。它提供了与jQuery相似的功能,但体积更小,加载速度更快,适合移动环境。Zepto.js的核心目标是实现一个适用于...

    移动端开发教程-Zepto.js入门视频教程

    总之,Zepto.js是一个高效、轻量级的前端框架,适用于移动端开发。通过学习Zepto.js,你可以利用熟悉的jQuery语法,同时享受更优的性能和更低的资源消耗。配合提供的视频教程,相信你将很快成为一名熟练的Zepto.js...

    zepto.js 版时间 日期 下拉 省市区级联

    Zepto.js是一款轻量级的JavaScript库,设计目标是对标jQuery,但在移动设备上性能更优,更适合移动端开发。它提供了一套简洁的API,用于处理DOM操作、事件绑定、Ajax请求等常见任务。在实现日期时间下拉选择时,...

    轻量级移动组件库LEGO-Mobile.zip

    Lego Mobile 是基于 zepto 和 seajs 的轻量级移动组件库,提供了一系列webapp的UI解决方案。支持 UC,QQ,Opera,Safari,Chrome 等国内主流手机浏览器。 环境搭建: node, npm grunt v0.4 - npm install grunt-...

    zepto库中touch.js

    Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery有着类似的api。 如果你会用jquery,那么你也会用zepto。touch库实现'swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown', 'doubleTap',...

    好用的zepto.js

    zepto.js 这个可以用tap事件

    zepto.js v1.2.0 (for development)

    Zepto is a minimalist JavaScript library for modern browsers with a largely jQuery-compatible API. If you use jQuery, you already know how to use Zepto. While 100% jQuery coverage is not a design goal...

    Zepto.js宝箱开启动画抽奖.zip

    首先,Zepto.js是一个轻量级的JavaScript库,它是jQuery的一个替代品,特别适合移动设备上的Web应用。Zepto.js提供了与jQuery相似的API,但体积更小,加载更快,尤其在移动端,可以显著提高网页性能。在"Zepto.js...

    zepto.slider:基于zepto的移动图片轮播插件

    zepto.slider 基于zepto的移动图片轮播插件,依赖zepto.js ##Platform 和zepto支持的平台一样 ##Depend 依赖zepto v1.0.0+,除默认模块还需touch模块支持 ##Building 构建过程使用ant,安装ant参照 构建时在项目根...

    Zepto.js宝箱开启动画抽奖特效源码.zip

    而Zepto.js是一个轻量级的JavaScript库,它是为移动浏览器设计的,目标是尽可能接近jQuery的功能,但体积更小,更适合移动设备。在这个"Zepto.js宝箱开启动画抽奖特效源码.zip"中,我们将会探讨如何使用Zepto.js实现...

    轻量级滑动锁Zepto.SliderLock.js.zip

    Zepto.SliderLock.js 是 Zepto 的扩展,实现了轻量级滑动锁,可以注册到达、成功、失败事件,支持lock,单文件,支持touch 标签:Zepto

Global site tag (gtag.js) - Google Analytics