热门标签 | 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社区 其它相关文章!


推荐阅读
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 在Notepad++中配置Markdown语法高亮及实时预览功能
    本文详细介绍了如何在Notepad++中配置Markdown语法高亮和实时预览功能,包括必要的插件安装和设置步骤。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
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社区 版权所有