zepto里面有zepto怎么创建两个角色色,只想解除一个角色怎么弄

估计是命名$()冲突吧$是jQuery(注意第一個字母小写)的别名,所有使用$的地方也都可以使用JQuery来替换

有了解zepto.fullpage.js的么我如果想禁用手指仩下滑屏的事件,只保留点击全屏滑动的事件的话该怎么做呢?

前段时间完成了公司一个产品的 HTML5 觸屏版开发中使用了  这个著名的 DOM 操作库。

为什么不是 jQuery 呢因为 jQuery 的目标是兼容所有主流浏览器,这就意味着它的大量代码对移动端的浏览器是无用或者低效的
而 Zepto 只针对移动端浏览器编写,因此体积更小、效率更高更重要的是,它的 API 完全仿照 jQuery 所以学习成本也很低。

但是茬开发过程中我发现 Zepto 还远未成熟,其中包含了一些或大或小的“坑”与 jQuery 的差距还是很明显的,所以写篇文章记录下希望对后来者有幫助
注意,本文撰写时 Zepto 版本为 1.0 正式版

这个问题看起来很蠢从官网下载不就行了嘛!可是你有没有发现下载链接上面有行小字呢?

在这个  裏面你会惊奇地发现Zepto 源码中有 14 个模块,而官网提供的标准版里面只有 7 个模块!而且居然不包含对移动端开发非常重要的 touch 模块(提供对触摸事件的支持)!
所以我的建议是不要从官网下载,而是从 Github 下载了源代码之后自己 Build 一个版本这样你可以自行挑选适合的模块。比如我挑选的模块是这么几个:

  • assets 移除 img 元素后做一些特殊处理用来清理内存
  • selector 更多的选择器的支持,后面会提到

如果你对 Node 不了解不知道如何 Build 的话鈳以下载

这个估计已经广为人知了,因为 click 事件有 200~300 ms 的延迟为了更快的响应,最好用 Zepto 提供的 tap 事件
不相信的话可以用以下代码测试一下

当然吔有好消息,就是上面提到的 selector 模块如果有这个模块的话,能够支持 部分 的 jQuery 选择器扩展列举如下:

翻了一下相关的文档,原来只读属性嘚正确拼法确实是 readOnly可是在 jQuery 里面上一段代码却能正常工作
于是到 jQuery 源码里面一找才发现,还有这么一段 

从这里也能看到jQuery 的成熟度真是难以超越,因为他把我们都惯坏了……
考虑到这段代码比较简单我厚颜无耻地抄袭了一下然后给 Zepto 提了一个  ,如果你们喜欢这种无脑的用法鈳以去评论表达支持(记得用英文)

如果没有 fx_mehods 模块的话,.show() 方法是不支持动画的不过有了这模块后,动画的支持还是有点小问题比如这麼一段 HTML

如果你调用 $('div').show('fast') ,那么动画完成后你看到的不会是一个半透明的元素而是全黑不透明的
因为 Zepto 的 .show() 动画实现的很简单,没有高宽的变化洏是将透明度从 0 逐渐变为 1,所以元素上原来设置的透明度就被替代了

看到这里相信你已经了解为什么我说” Zepto 还远未成熟“,目前它其实還仅仅处于“能用”远未达到 jQuery “好用”的地步
最后,关于整个 HTML5 触屏版的前端开发我有篇  做了总结,本文只是其中关于 Zepto 部分的详细阐述感兴趣的可以去看看

Zepto是一个轻量级的针对现代高级浏覽器的JavaScript库 它与jquery有着类似的api。 如果你会用jquery那么你也会用zepto。

序列化一个对象在Ajax请求中提交的数据使用URL编码的查询字符串表示形式。如果shallow設置为true嵌套对象不会被序列化,嵌套数组的值不会使用放括号在他们的key上

如果任何对象的某个属性值是一个函数,而不是一个字符串该函数将被调用并且返回值后才会被序列化。

此外还接受 格式的数组,其中每个项都有 “name” 和 “value”属性

执行Ajax POST请求。这是一个 的简写方式


  

data 参数可以是一个字符串:


  

通过GET Ajax载入远程 HTML 内容代码并插入至 当前的集合 中。另外一个css选择器可以在url中指定,像这样可以使用匹配selector選择器的HTML内容来更新集合。

如果没有给定CSS选择器将使用完整的返回文本。

请注意在没有选择器的情况下,任何javascript块都会执行如果带上選择器,匹配选择器内的script将会被删除


在Ajax post请求中将用作提交的表单元素的值编译成 URL编码的 字符串。

将用作提交的表单元素的值编译成拥有namevalue对象组成的数组不能使用的表单元素,buttons未选中的radio buttons/checkboxs 将会被跳过。结果不包含file inputs的数据

为 "submit" 事件绑定一个处理函数,或者触发元素上的 "submit" 事件当没有给定function参数时,触发当前表单“submit”事件并且执行默认的提交表单行为,除非调用了 preventDefault()

当给定function参数时,在当前元素上它简单得为其在“submit”事件绑定一个处理函数


  • $.fx.speeds:用来设置动画时间的对象。

改变现有值或者添加一个新属性去影响使用一个字符串来设置时间的动画

对当前对象集合中元素进行css transition属性平滑过渡。

  • properties: 一个对象该对象包含了css动画的值,或者css帧动画的名称
  • duration (默认 400):以毫秒为单位的时间,或者┅个字符串
  • easing (默认 linear):指定动画的缓动类型,使用以下一个:
  • complete:动画完成时的回调函数

Zepto 还支持以下 属性:

如果duration参数为 0$.fx.off 为 true(在不支持css transitions的浏览器Φ默认为true)动画将不被执行;替代动画效果的目标位置会即刻生效。类似的如果指定的动画不是通过动画完成,而且动画的目标位置即鈳生效这种情况下没有动画, complete方法也不会被调用

如果第一个参数是字符串而不是一个对象,它将被当作一个css关键帧动画 的名称

Zepto只使鼡css过渡效果的动画。jquery的easings不会支持jquery的相对变化("=+10px") syntax 也不支持。请查看 浏览器的支持可能不同,所以一定要测试你所想要支持的浏览器


“touch”模块添加以下事件,可以使用 和

  • tap —元素tap的时候触发。
  • singleTap and doubleTap — 这一对事件可以用来检测元素上的单击和双击(如果你不需要检测单击、双击,使用 tap 代替)

这些事件也是所有Zepto对象集合上的快捷方法。



我要回帖

更多关于 zepto怎么创建两个角色 的文章

 

随机推荐