Zepto
用文档的话来说,Zepto是一个轻量级的针对现代高级浏览器的JavaScript库, 它与jquery有着类似的api。 如果你会用jquery,那么你也会用zepto。
主要针对移动端,因为不兼容IE浏览器,所以更轻量级,体积更小,才10k左右,为移动端各事件提供很好的支持,但它也有部分API是和jQuery的实现方式是不同的
入门
引入zepto.min.js文件(可自行到官网或者菜鸟https://www.runoob.com/manual/zeptojs.html里面下载)
$(document).ready(function () {
$('div').html("Hello Zepto")
});
事件ready和onload的区别
$(document).ready(function () {
//DOM加载完毕,图片并未完全加载,调用时机比较快
});
$(function () {
});
$().ready(function () {
})
window.onload = function () {
//全部文件加载完毕,调用时机比较久
}
zepto转Dom对象
如果需要用到原生js的api,可将zepto的对象和dom对象互相转换
$(document).ready(function () {
// zepto对象转DOM对象
$('div')[0].className = "one"
// dom对象转zepto对象
$(two).addClass("two")
});
选择器
选择器的使用基本跟jquery类似,基本选择器,后台选择器,子元素选择器,相邻元素选择器等等
你好
你好
22
33
44
55
66
$(document).ready(function () {
//元素选择器
//$('div').html("我是元素选择器")
//id选择器
$('#demo1').html("我是id选择器")
//类选择器
$('.demo2').html("我是类元素选择器")
//群组选择器
$('.p1,.p2').html("我们是群组选择器")
//通配符选择器
$('*').addClass("act")
//后代选择器
$("#demo3 .one p").css("color","red");
//子元素选择器
$("#demo4 > .two").css("font-size","30px")
//相邻元素选择器
$("#demo5 div + p").css("color","blue")
//兄弟选择器
$("#demo6 div ~ p").css("color","green")
//属性过滤选择器
$("#demo7 div[title='demo9']").html("属性过滤选择器")
//子元素过滤选择器
$("#demo13 div:nth-child(2)").html("我是子元素过滤选择器")
})
Zepto对DOM的操作
你好
要被替换的节点
被包裹的节点
$(document).ready(function () {
//var $demo = $("
//$("#demo").append($demo); //元素插入到选中的元素后面
//$demo.appendTo("#demo")
//$("#demo").prepend($demo) //元素插入到选中元素的第一个
//$demo.prependTo("#demo")
//$("#demo").after($demo) //插入到元素之后,同级别
//$demo.insertAfter("#demo")
//$("#demo").before($demo)
//删除操作
//$("ul li").remove() //节点删除
//$("ul li").empty()
//复制节点
// $("ul li").click(function () {
// $(this).clone().appendTo("ul")
// })
// 替换节点replaceWith
//$("p").replaceWith("我已被替换")
//包裹节点 wrap
$("#demo1").wrap("div")
})
Zepto对dom属性操作
.red{
color: red;
}
.lager{
font-size: 30px;
}
//console.log($("div").attr("title")) //获取属性值
//$("div").attr("name","att") //添加属性值
//$("div").attr({"name":"attr","class":"test"})//添加多个属性值
//删除属性值
//$("div").removeAttr("title")
//添加样式操作
//$("div").addClass("red lager")
//删除样式
//$("div").removeClass()
//切换样式 toggle toggleClass(控制样式的添加和删除)
$("button").click(function () {
//$("div").toggle()
$("div").toggleClass("red")
});
//判断是否含有某个样式 hasClass
console.log($("div").hasClass("red"));
获取元素对象api
我是第一个元素
我是第三个元素
$(document).ready(function () {
//next是取得紧邻的后面的同辈元素
console.log($("#demo p").next())
//prev获取紧邻的前面的同辈元素
console.log($("#demo h3").prev())
//siblings获取前后的所有同辈元素
console.log($("#demo h3").siblings())
//获取直系父节点
console.log($("#demo h3").parent())
console.log($("#demo h3").parents())
})
Zepto进行css样式修改
$(document).ready(function () {
//$(".one").css("color","red").css("font-size","36px");
$(".one").css({
color:"blue",
fontSize:"30px"
});
$(".one").width(500);
$(".one").height(500);
$(".one").css("background","red");
})
事件绑定
$(document).ready(function () {
$("#one").bind("click",function (ev) {
console.log("我是bind方式的绑定")
})
$("#one").click(function (ev) {
console.log("我是click方式的点击")
})
$("#one").on("click",function (ev) {
console.log("我是on事件")
})
});
事件冒泡和事件捕获
Zepto不能进行事件捕获,所以需要用原生js,并将绑定事件默认值false改成true
//事件冒泡,从底到顶级冒泡,过程中凡是元素添加事件的,都会被执行
$(document).ready(function () {
$("#c").bind("click",function () {
console.log("我是事件c")
})
$("#a").bind("click",function () {
console.log("我是事件a")
})
});
//从顶级到底,过程中凡是元素添加事件的,都会被执行
// document.getElementById("a").addEventListener("click",function () {
// console.log("我是事件a")
// },true);
// document.getElementById("c").addEventListener("click",function () {
// console.log("我是事件c")
// },true);
事件委托
$(document).ready(function () {
//绑定事件非常消耗性能
// $("li").bind("click",function () {
// console.log("我被bind事件绑定了")
// })
//click非常消耗性能
// $("li").click(function () {
// console.log("我被click事件绑定了")
// })
//one 只能被调用一次
// $("li").one("click",function () {
// console.log("one事件只能被执行一次")
// })
//live document绑定事件(只绑定一次) 存在多层冒泡缺点
// 利用冒泡事件的方式,就叫做事件委托或代理
// $("li").live("click",function () {
// console.log("live方式绑定")
// })
//delegate 事件代理
// $("ul").delegate("li","click",function () {
// console.log("delegate事件代理绑定")
// })
// on 事件以上几种方式的集合
$("ul").on("click","li",function () {
console.log("on事件代理绑定")
})
//事件解除绑定
$("ul").off()
$("ul").unbind()
});
事件其他用法
$(document).ready(function () {
//自定义事件
// $("button").bind("muke",function () {
// console.log("触发自定义事件")
// })
// $("button").trigger("muke")
//命名空间
// $("button").bind("click",function () {
// console.log("我是普通的点击事件")
// })
// $("button").bind("click.muke",function () {
// console.log("我是第二个普通事件")
// })
// $("button").unbind(".muke")
//绑定多个事件
$("button").bind("click",function () {
console.log("111")
}).bind("touchstart",function () {
console.log("222")
})
})
Zepto动画
因为zepto.min是轻量级的,只保留核心功能,所以动画需要引入相关的js代码,可自行到git下载
$(document).ready(function () {
$("div").css({"fontSize":"30px","color":"red"})
$("button").bind("click",function () {
//$("div").toggle("slow") //切换元素的显示和隐藏
//$("div").hide(3000) 隐藏
//$("div").hide("slow")
//$("div").show("slow")
//$("div").fadeIn("slow")
//$("div").fadeOut("slow")
//$("div").fadeToggle("slow") //切换元素的淡入和淡出
//$("div").fadeToggle("slow")
$("div").fadeTo(3000,0.3)
})
})
自定义animate动画函数
div{
position: absolute;
width: 200px;
height: 200px;
background-color: #f27c01;
text-align: center;
line-height: 200px;
top: 0;
left: 0;
}
// animate 动画函数
$(document).ready(function () {
$("div").click(function () {
// $("div").animate({"left":"500px"},3000,function () {
// alert("动画执行完毕")
// })
// $("div").animate({"left":"500px"},3000,function () {
// this.animate({"height":"500px"},3000,function () {
// alert("动画已执行")
// });
// });
$("div").animate({"left":"500px","height":"500px"},3000,function () {
alert("执行完毕")
})
})
})
移动端事件
div{
width: 250px;
height: 250px;
line-height: 250px;
background-color: #f27c01;
text-align: center;
}
$(document).ready(function () {
$("div").bind("touchmove",function (e) {
e.preventDefault()
})
function listen_to(el) {
$(el).tap(function () {
console.log("| tap")
}).doubleTap(function () {
console.log("double tap")
}).swipe(function () {
console.log("| swipe")
}).swipeLeft(function () {
console.log("swipe left")
}).swipeUp(function () {
console.log("swipe up")
}).swipeDown(function () {
console.log("swipe down")
})
}
listen_to("div")
})
自定义Zepto插件
;(function ($) {
$.fn.color = function(option){
var options = $.extend({
col:"blue",
fz:"20px"
},option);
this.css("color",options.col);
this.css("fontSize",options.fz);
return this
}
})(Zepto);
$('div').color()
将以上zepto相关demo代码过一遍,基本就算入门了。
Copyright © 2022 摩洛哥世界杯_直播世界杯决赛 - dgaida.com All Rights Reserved.