jQuery插件 +zepto

jQuery插件+zepto

插件

http://plugins.jquery.com

https://www.jq22.com

1、类级插件
// 类级别的插件:扩展$下的方法,如 $.map $.each
; (function ($) {
    $.extend({
        方法名1: function () { },
        方法名2: function () { }
    })
})(jQuery);
// 使用
$.方法名1();
$.方法名2();
2、对象级插件
// 对象级插件:扩展jQuery对象下的方法,如 jQuery对象.css() jQuery对象.html()
; (function ($) {
    $.fn.extend({
        方法名1: function () { },
        方法名2: function () { }
    });
})(jQuery);
// 使用
jQuery对象.方法名1();
jQuery对象.方法名2();
3、插件的基本要点

1、jQuery 插件的文件名推荐命名为 jquery.[插件名].js,以免和其他 javascript 库插件混淆。

2、所有的对象方法都应当附加到 jQuery.fn 对象上,而所有的全局函数都应当附加到jQuery 对象本身上。

3、在插件内部,this 指向的是当前通过选择器获取的 jQuery 对象,而不像一般的方法那样,例如 click(),内部的 this 指向的是 DOM 元素。

4、可以通过 this.each 来遍历所有元素。

5、所有的方法或函数插件,都应当以分号结尾,否则压缩的时候可能出现问题,为了更稳妥些,甚至可以在插件头部先加上一个分号,以免他人的不规范代码给插件带来影响。

6、插件应该返回一个 jQuery 对象,以保证插件的可链式操作,除非插件需要返回的是一些需要获取的量,例如字符串或者数组等。

7、避免在插件内部使用 作 为 j Q u e r y 对 象 的 别 名 , 而 应 该 使 用 完 整 的 j Q u e r y 表 示 。 这 样 可 以 避 免 冲 突 。 当 然 , 也 可 以 利 用 闭 包 这 种 技 巧 来 回 避 这 个 问 题 , 使 插 件 内 部 继 续 使 用 作为 jQuery 对象的别名,而应该使用完整的 jQuery 表示。这样可以避免冲突。当然,也可以利用闭包这种技巧来回避这个问题,使插件内部继续使用 jQuery使jQuery使使作为 jQuery 的别名。很多插件都是这样做的。

4、应用
;
(function($) {
 $.fn.extend({
    color: function(obj) {
   if (obj) {
//this 指向地址,地址不变,但地址内数据变了。
return $(this).css('color', obj); //css()方法也会有返回值,返回地址中数据。目的不影响链式编程。
 //返回地址中数据。
// return $(this);
} else {
      var arr = [];
      $(this).each(function(index, item) {
      arr[index] = $(item).css('color');
       });
         return arr;
	}
		}
     });
})(jQuery);


$('li').color('green').css('font-size', 30); // 设置颜色,并可以链式调用

// console.log($('li').color()); // 获取颜色,获取所有元素的颜色,以数组形式展示

zepto

Zepto 是移动端开发框架,是 jQuery 的轻量级代替品;API 及语句同 jQuery 相似,但文件更小(可压缩至 8KB)。是目前功能完备的库中最小的一个。随着移动端的愈加火爆,目前很多 HTML5 的框架都在支持移动方向,Zepto 就是 jQuery 的移动端版本, 可以看做是一个轻量级的jQuery。*如果你会用jQuery,那么你也会用Zepto*, Zepto的设计目的是提供 jQuery的类似的 API,但并不是 100%覆盖 jQuery 。Zepto 有一个 5-10k 的通用库、下载并快速执行、有一个熟悉通用的 API,所以你能把你主要的精力放到应用开发上。

Zepto.js 中文文档:https://zeptojs.bootcss.com/

Zepto.js 介绍

1)Zepto.js 特点

  • 1、针对的是移动端

  • 2、轻量级,压缩版本只有 9.6KB

  • 3、语法大部分同 jQuery 一样,学习成本低,上手快

2)jQuery 和 Zepto 的区别在哪里

  • 1、jQuery 更多是在 PC 端被应用,因此,考虑了很多低级浏览器的的兼容性问题;而Zepto.js 则是直接抛弃了低级浏览器的适配问题,显得很轻盈;
  • 2、Zepto.js 在移动端被运用的更加广泛;
  • 3、jQuery 的底层是通过 DOM 来实现效果的,Zepto.js 是用 css3 来实现的;
  • 4、Zepto.js 可以说是轻量级版本的 jQuery

zepto模块

为了保持原码的精简,Zepto 默认只加载一些模块,当你需要某些模块时,可以把对应的模块加载进来。

zepto的使用

<script src="js/zepto.js"></script>
<script src="js/touch.js"></script>
<script src="js/fx.js"></script>
<script>
    $('#box').on('tap', function () {
        console.log('点我了');

        $(this).animate({
            background: 'green', // 它的运动是用css3来实现
            width: 300,
            height: 300
        }, 3000)
    })
</script>

zepto的特点

获取元素宽高
var box = $('#box');

// Zepto 的 width()、height()是根据盒模型决定的,包含 padding 和 border 的值。
// Zepto 中没有 innerWidth()和 outerWidth()系列。

console.log(box.width()); // 122  width+padding+border

console.log(box.innerWidth());
console.log(box.outerWidth());
offset
// 元素.offset()   jQuery 返回的只有 top 和 left。而 Zepto 返回的还包括 width 和 height。

console.log($('.box3').offset()); // {left: 108, top: 88, width: 159, height: 80}

console.log($('.box3').position()); // jQuery和zpeto相同

touch事件

原生事件

  • ​ touchcancel (事件被打断)
  • ​ touchend (触摸结束)
  • ​ touchmove (触摸中)
  • ​ touchstart (触摸开始)

以下均为zepto模拟出来的移动端事件

var box = $('#box');

// 点击
box.on('tap', function () {
    console.log('tap');
})

// singleTap 和 doubleTap 这一对事件可以用来检测元素上的单击和双击。(如果你不需要检测单击、双击,使用 tap 代替)
// 单击
box.on('singleTap', function () {
    console.log('单击了');
})

// 双击
box.on('doubleTap', function () {
    console.log('双击了');
})


// 长按  当一个元素被按住超过 750ms 触发
box.on('longTap', function () {
    console.log('长按');
})


// 滑动    当元素被划过(同一个方向滑动距离大于 30px)时触发
box.on('swipe', function () {
    console.log('滑动');
})

box.on('swipeLeft', function () {
    console.log('左滑');
})

box.on('swipeRight', function () {
    console.log('右滑');
})

box.on('swipeUp', function () {
    console.log('上滑');
})

box.on('swipeDown', function () {
    console.log('下滑');
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值