热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JSZepto移动端的jQuery

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

Zepto

github地址: https://github.com/madrobby/zepto

官方地址: http://zeptojs.com/

中文版地址: http://www.css88.com/doc/zeptojs_api/

Zepto就是jQuery的移动端版本, 可以看做是一个轻量级的jQuery

注意点

Zepto的设计目的是提供 jQuery 的类似的API,但并不是100%覆盖 jQuery

jQuery的底层是通过DOM来实现效果的, zepto.js 是用css3 来实现的;

官网下载的zepto,就已经包含了官网所述的默认模块了

github上下载的zepto模块需要自己导入







Zepto点击事件

由于移动端的手势多而且分单击双击,所以移动端的click事件有300ms左右的延迟,所以移动端的点击事件用tab

$("div").tap(function(){
        ......
})

zepto中touch相关事件

touchstart

touchstart是手指刚触摸到元素时触发的事件

touchmove

touchmove是手指移动时触发的事件

touchend

当手指离开指定元素时触发

注意点

添加以上三个事件的时候用addEventListener

以上三个事件对pc端无效

zepto中touch事件的对象

touches:

保存了屏幕上所有手指的列表

targetTouches

保存了元素上所有手指的列表

changedTouches

包含了刚刚与屏幕接触的手指或者刚刚离开屏幕的手指

TouchEvent {isTrusted: true, touches: TouchList, targetTouches: TouchList, changedTouches: TouchList}

zepto中touch事件的XY

client: 可视区域

page: 内容

var oDiv = document.querySelector("div");
    /*
    1.注意点:
    无论是event对象中的touches/targetTouches/changedTouches都是一个伪数组
    所以我们想要获取手指位置的时候, 需要从伪数组中取出需要获取的那个手指对象
     */
    oDiv.addEventListener("touchstart", function (event) {
        // 获取手指距离屏幕左上角的位置
        // console.log(event.targetTouches[0].screenX);
        // console.log(event.targetTouches[0].screenY);
        // 获取相对于当前视口的距离
        console.log("clientX", event.targetTouches[0].clientX);
        console.log("clientY", event.targetTouches[0].clientY);
        /*
        clientX 10
        clientY 8
        pageX 1156
        pageY 8
         */
        // 获取相对于当前页面内容的距离
        console.log("pageX", event.targetTouches[0].pageX);
        console.log("pageY", event.targetTouches[0].pageY);
    });

简单案例: 物块拖拽



    
    
    
    


zepto中touch事件的点透问题

如果两个元素是重叠的(一个在另一个上面), 并且上面一个监听了touchstart事件, 下面一个监听了click事件,那么如果上面一个元素触发touchstart事件之后消失了, 那么就会出现点透问题

解决方案: fastclick框架

注: 框架必须在前面调用, 并且所有的元素都被注册了fastclick中的事件, 以后所有的click事件都是fastclick的click事件

zepto中的swipe事件

手指在元素上滑动触发的事件

$("div").swipeLeft(function () {
        // console.log("左滑动");
        $(this).animate({left: "0px"}, 1000);
    });
    $("div").swipeRight(function () {
        // console.log("右滑动");
        $(this).animate({left: "100px"}, 1000);
    });
    $("div").swipeUp(function () {
        // console.log("上滑动");
        $(this).animate({top: "0px"}, 1000);
    });
    $("div").swipeDown(function () {
        // console.log("下滑动");
        $(this).animate({top: "100px"}, 1000);

移动端hover事件

移动端只能使用mouseenter和mouseleave来监听移入和移出

iscroll框架

当我们做移动端侧边栏的时候, 自己实现可能会出现bug也可能比较麻烦,这时候可以用iscroll框架

github地址: https://github.com/cubiq/iscroll

实现步骤

按照框架的需要搭建一个三层的结构

引入iscroll.js框架

创建一个IScroll对象, 把需要滚动的容器给它

var myScroll = new IScroll('.test', {
        mouseWheel: true, // 开启鼠标滚动滚动
        scrollbars: true // 开启滚动条, 但是容器必须是定位的, 否则滚动条的位置不对
    });
    // 相关常用的回调函数
    myScroll.on("beforeScrollStart", function () {
        console.log("手指触摸, 还没有开始滚动");
    });
    myScroll.on("scrollStart", function () {
        console.log("开始滚动");
    });
    myScroll.on("scrollEnd", function () {
        console.log("结束滚动");
    });

swiper框架

Swiper是纯Javascript打造的滑动特效插件,面向手机、平板电脑等移动终端。

Swiper能实现触屏焦点图、触屏Tab切换、触屏多图切换等常用效果。

Swiper开源、免费、稳定、使用简单、功能强大,是架构移动终端网站的重要选择!

如何使用:

引入对应的css和js文件

按照框架的需求搭建三层结构

创建一个Swiper对象, 将容器元素传递给它,第二个参数接收一个对象

  • slider1
  • slider2
  • slider3

推荐教程:《JS教程》

以上就是JS Zepto 移动端的 jQuery的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
author-avatar
小D申俊浩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有