01-Zepto

初识Zepto

  • Zepto是一个轻量级的针对现代高级浏览器的Javascript库,与jQuery有着类似的api
  • jQuery更多是在PC端被应用,Zepto更多是在移动端被应用
    • jQuery用在PC端,所以jQuery考虑了很多低级浏览器的兼容性问题,所以代码更多体积更大
    • Zepto用在移动端,所以Zepto则是直接抛弃了低级浏览器的适配问题,所以代码更少体积更小
  • Zepto其实就是专门用于移动端的轻量级的jQuery
  • Zepto特点
    • Zepto采用了模块化的开发,将不同的功能放到了不同的模块中
    • 在使用过程中我们可以按需导入,也就是需要什么功能就导入什么模块
  • Zepto注意点
    • 如果是从官方网站下载的,那么已经包含了默认的一些模块
    • 如果是从github下载的,那么需要我们自己手动导入每一个模块
    • 后续学了NodeJS后,我们也可以自己控制
  • Zepto动画
    • 需要导入fx.js和fx_methods.js文件
    • 与jQuery的区别是:Zepto是通过C3来实现的,jQuery是通过修改DOM的值来实现的
Tap事件
  • 无论是PC端还是移动端都支持click事件,而且不仅仅是jQuery和Zepto支持,原生的JS也支持
  • 移动端click事件注意点
    • 在企业开发中如果需要在移动端监听点击事件,一般不会使用click来监听
    • 因为移动端的事件很多(单机/双击/轻扫/捏合/拖拽等等)
    • 通过click来监听,系统需要花费100~300毫秒判断到底是什么事件
    • 移动端对事件的响应速度要求很高,事件响应越快用户体验就越好
    • 所以如果需要在移动端监听点击事件,那么使用tap事件
  • Tap事件是Zepto自己封装的一个事件,解决了原生click事件100~300毫秒的延迟问题
移动端Touch事件
  • 虽然tap事件是Zepto自己封装的事件,但是无论如何封装肯定都是通过原生JS来实现的
  • 在原生的JS中专门为移动端新增了几个事件
    • touchstart:手指按下
    • touchmove:手指在元素上移动
    • touchend:手指抬起
  • 注意点:这几个事件只支持移动端,不支持PC端
Touch事件对象
  • 移动端的touch事件也是一个事件,所以被触发的时候系统也会自动传递一个事件对象给我们
  • 移动端touch事件对象中比较重要的三个子对象
    • touches: 当前屏幕上所有手指的列表
    • targetTouches: 保存了元素上所有的手指列表
    • changedTouches: 当前屏幕上刚刚接触的手指或者离开的手指
  • Touch事件位置
    • screenX/screenY是相对于屏幕左上角的偏移位
    • clientX/clientY是相对于可视区域左上角的偏移位
    • pageX/pageY是相对于内容左上角的偏移位
移动端点透问题
  • 当一个元素覆盖了另一个元素,覆盖的元素监听touch事件,而下面的元素监听click事件,并且touch事件触发后覆盖的元素就消失了,那么就会出现点透问题
  • 移动端点透问题三种解决方案
    • 在touch事件中添加event.preventDefault();阻止事件扩散
    • 使用Zepto,但是需要注意老版本的Zepto也会出现点透问题
    • 使用Fastclick,最早解决点透问题的插件
swipe事件
  • 轻扫事件:手指快速的往左边滑动/或者右边滑动/或者上边滑动/或者下边滑动

你可能感兴趣的:(01-Zepto)