zepto.js自己去官网下载哈。

DOM操作

$(document).ready(function(){
var $cr = $("<div class='cr'>插入的div</div>");
// 插入操作
$("#a").append($cr);
$cr.appendTo($("#a"));
$("#a").prepend($cr);
$cr.prependTo($("#a"));
$("#a").after($cr);
$cr.insertAfter($("#a"));
$("#a").before($cr);
$cr.insertBefore($("#a")); // 删除 remove\empty
$("ul li").remove();
$("ul li").empty(); // 复制节点
$("ul li").click(function(){
$(this).clone().appendTo("ul");
}); // 替换节点 replaceWith
$("p").replaceWith("<span>是的,哈哈</span>"); // 包裹节点 wrap wrapAll
$("p").wrap("<div></div>");
$("p").wrapAll("<div></div>");
});

属性与样式操作

$(document).ready(function(){
// 属性操作 attr("title") attr("name","att") attr({"name":"att" , "class":"test"}) removeAttr("title name")
console.log($("div").attr("title"));
$("div").attr("name","att");
$("div").attr({"name":"att" , "class":"test"})
$("div").removeAttr("title name"); // 添加样式操作 addClass
$("div").addClass("red").addClass("fs");
$("div").addClass("red fs"); // 删除class类 removeClass
$("div").removeClass(); // 切换样式 toggle toggleClass
$("button").click(function(){
$("div").toggle(); // show和hide的切换
$("div").toggleClass("red"); // addClass("red")和removeClass("red");
}); // 判断是否含有某个样式 hasClass
console.log($("div").hasClass("red fs"))
});

遍历节点

$(document).ready(function(){
// next是取得紧邻的后面的同辈元素
console.log($("#one h3").next()); // prev获取紧邻的前面的同辈元素
console.log($("#one a").prev()); // siblings获取前后的所有同辈元素
console.log($("#one p").siblings()); // parent与parents直系亲属
console.log($("b").parent());
console.log($("b").parents());
});

CSS-DOM操作

$(document).ready(function(){
$(".one").css("color", "red").css("fontSize", "36px");
$(".one").css({
color:"red",
fontSize:"36px"
});
$(".one").width(500);
$(".one").height(500);
});

ready与onload的区别

    // html文件 、 css文件 、 js文件 、 图片文件等
$(document).ready(function(){
// DOM加载完毕,图片并未完全加载,调用时机比较快
});
window.onload = function(){
// 全部文件加载完毕,调用时机比较久
}

事件开头简写

    $(document).ready(function(){

    })
$(function(){ })
$().ready(function(){ })

事件绑定

    $(".one").bind("click", function(e){
console.log("one被点击了!!!")
}) $(".one").click(function(e){
console.log("我是简写方式");
}) $(".one").on("click", function(e){
console.log("我是on事件");
});
---------------------------------
// on
$("ul").on('click', 'li', function(e){ })
// off
$("li").off();

zepto不支持事件捕获

事件其他用法

    // 自定义事件
$("div").bind("muke", function(){
console.log("触发自定义事件");
});
$("div").trigger("muke"); // 命名空间
$("div").bind("click", function(){
console.log("我是普通的click事件");
})
$("div").bind("click.muke", function(){
console.log("我是click.muke的事件");
}) $("div").unbind(".muke"); // 绑定多个事件
$("div").bind("click", function(){
console.log(111)
}).bind("touchstart", function(){
console.log(222)
})

动画

    $('button').on('click' , function(){
$('div').toggle('slow'); //切换元素的显示与隐藏
$('div').hide(3000);
$('div').show('slow');
$('div').fadeIn('slow');
$('div').fadeOut('slow');
$('div, button').fadeToggle('slow');
$("div").fadeTo(3000 , 1)
})

animate() 动画函数

    $("div").animate({left:"300px", height:"300px"}, 3000, function(){
alert("动画执行完毕");
})

Ajax

    function Ajax(){
var xmlHttpReq = null;
if(window.ActiveXObject){
// 兼容IE5、IE6
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}else{
xmlHttpReq = new XMLHttpRequest();
} xmlHttpReq.open("GET", "test.php", true);
xmlHttpReq.onreadystatechange = RequestCallBack; function RequestCallBack(){
if(xmlHttpReq.readyState == 4){
if(xmlHttpReq.status == 200){
console.log("获取数据:"+xmlHttpReq.responseText);
}
}
}
xmlHttpReq.send(null);
}

ajax请求

    // get
$.get('urlxxx',function(response){
$(document.body).append(response)
}); // post
$.post('urlxxx', { sample: 'payload' }, function(response){ }); // ajax
$.ajax({
type: 'GET',
url: 'urlxxx',
data: { name: 'Zepto.js' },
dataType: 'json',
success: function(data){
this.append(data.project.html)
},
error: function(xhr, type){
alert('Ajax error!')
}
})

touch模块
先引入touch.js

  <script type="text/javascript" src="../../lib/touch.js"></script>

touch.js

;(function($){
var touch = {},
touchTimeout, tapTimeout, swipeTimeout, longTapTimeout,
longTapDelay = 750,
gesture function swipeDirection(x1, x2, y1, y2) {
return Math.abs(x1 - x2) >=
Math.abs(y1 - y2) ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down')
} function longTap() {
longTapTimeout = null
if (touch.last) {
touch.el.trigger('longTap')
touch = {}
}
} function cancelLongTap() {
if (longTapTimeout) clearTimeout(longTapTimeout)
longTapTimeout = null
} function cancelAll() {
if (touchTimeout) clearTimeout(touchTimeout)
if (tapTimeout) clearTimeout(tapTimeout)
if (swipeTimeout) clearTimeout(swipeTimeout)
if (longTapTimeout) clearTimeout(longTapTimeout)
touchTimeout = tapTimeout = swipeTimeout = longTapTimeout = null
touch = {}
} function isPrimaryTouch(event){
return (event.pointerType == 'touch' ||
event.pointerType == event.MSPOINTER_TYPE_TOUCH)
&& event.isPrimary
} function isPointerEventType(e, type){
return (e.type == 'pointer'+type ||
e.type.toLowerCase() == 'mspointer'+type)
} $(document).ready(function(){
var now, delta, deltaX = 0, deltaY = 0, firstTouch, _isPointerType if ('MSGesture' in window) {
gesture = new MSGesture()
gesture.target = document.body
} $(document)
.bind('MSGestureEnd', function(e){
var swipeDirectionFromVelocity =
e.velocityX > 1 ? 'Right' : e.velocityX < -1 ? 'Left' : e.velocityY > 1 ? 'Down' : e.velocityY < -1 ? 'Up' : null
if (swipeDirectionFromVelocity) {
touch.el.trigger('swipe')
touch.el.trigger('swipe'+ swipeDirectionFromVelocity)
}
})
.on('touchstart MSPointerDown pointerdown', function(e){
if((_isPointerType = isPointerEventType(e, 'down')) &&
!isPrimaryTouch(e)) return
firstTouch = _isPointerType ? e : e.touches[0]
if (e.touches && e.touches.length === 1 && touch.x2) {
// Clear out touch movement data if we have it sticking around
// This can occur if touchcancel doesn't fire due to preventDefault, etc.
touch.x2 = undefined
touch.y2 = undefined
}
now = Date.now()
delta = now - (touch.last || now)
touch.el = $('tagName' in firstTouch.target ?
firstTouch.target : firstTouch.target.parentNode)
touchTimeout && clearTimeout(touchTimeout)
touch.x1 = firstTouch.pageX
touch.y1 = firstTouch.pageY
if (delta > 0 && delta <= 250) touch.isDoubleTap = true
touch.last = now
longTapTimeout = setTimeout(longTap, longTapDelay)
// adds the current touch contact for IE gesture recognition
if (gesture && _isPointerType) gesture.addPointer(e.pointerId)
})
.on('touchmove MSPointerMove pointermove', function(e){
if((_isPointerType = isPointerEventType(e, 'move')) &&
!isPrimaryTouch(e)) return
firstTouch = _isPointerType ? e : e.touches[0]
cancelLongTap()
touch.x2 = firstTouch.pageX
touch.y2 = firstTouch.pageY deltaX += Math.abs(touch.x1 - touch.x2)
deltaY += Math.abs(touch.y1 - touch.y2)
})
.on('touchend MSPointerUp pointerup', function(e){
if((_isPointerType = isPointerEventType(e, 'up')) &&
!isPrimaryTouch(e)) return
cancelLongTap() // swipe
if ((touch.x2 && Math.abs(touch.x1 - touch.x2) > 30) ||
(touch.y2 && Math.abs(touch.y1 - touch.y2) > 30)) swipeTimeout = setTimeout(function() {
if (touch.el){
touch.el.trigger('swipe')
touch.el.trigger('swipe' + (swipeDirection(touch.x1, touch.x2, touch.y1, touch.y2)))
}
touch = {}
}, 0) // normal tap
else if ('last' in touch)
// don't fire tap when delta position changed by more than 30 pixels,
// for instance when moving to a point and back to origin
if (deltaX < 30 && deltaY < 30) {
// delay by one tick so we can cancel the 'tap' event if 'scroll' fires
// ('tap' fires before 'scroll')
tapTimeout = setTimeout(function() { // trigger universal 'tap' with the option to cancelTouch()
// (cancelTouch cancels processing of single vs double taps for faster 'tap' response)
var event = $.Event('tap')
event.cancelTouch = cancelAll
// [by paper] fix -> "TypeError: 'undefined' is not an object (evaluating 'touch.el.trigger'), when double tap
if (touch.el) touch.el.trigger(event) // trigger double tap immediately
if (touch.isDoubleTap) {
if (touch.el) touch.el.trigger('doubleTap')
touch = {}
} // trigger single tap after 250ms of inactivity
else {
touchTimeout = setTimeout(function(){
touchTimeout = null
if (touch.el) touch.el.trigger('singleTap')
touch = {}
}, 250)
}
}, 0)
} else {
touch = {}
}
deltaX = deltaY = 0 })
// when the browser window loses focus,
// for example when a modal dialog is shown,
// cancel all ongoing events
.on('touchcancel MSPointerCancel pointercancel', cancelAll) // scrolling the window indicates intention of the user
// to scroll, not tap or swipe, so cancel all ongoing events
$(window).on('scroll', cancelAll)
}) ;['swipe', 'swipeLeft', 'swipeRight', 'swipeUp', 'swipeDown',
'doubleTap', 'tap', 'singleTap', 'longTap'].forEach(function(eventName){
$.fn[eventName] = function(callback){ return this.on(eventName, callback) }
})
})(Zepto)

使用时:

  <script>
$(document).ready(function(){
$('#touch_test').bind('touchmove', function(e) { e.preventDefault() }) listen_to('#touch_test') 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!')
})
.swipeRight(function(){
console.log(' | swipe right!')
})
.swipeUp(function(){
console.log(' | swipe up!')
})
.swipeDown(function(){
console.log(' | swipe down!')
})
.longTap(function(){
console.log(' | long tap!')
})
.singleTap(function(){
console.log(' | single tap!')
})
}
});
</script>

插件的写法
先编写自定义插件js文件
zepto.color.js

;(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); //多组插件写法
/*
;(function($){ $.extend($.fn, {
color: function(option){
var options = $.extend({
col: "blue",
fz : "20px"
}, option); this.css("color", options.col);
this.css("fontSize", options.fz); return this;
}, background: function(option){
var options = $.extend({
bg: "blue"
}, option); this.css("background", options.bg); return this;
}
}) })(Zepto);
*/

使用时:

    <script type="text/javascript" src="../../lib/zepto.color.js"></script>
<script type="text/javascript">
$("div").color({
col : "red"
}).addClass("helloworld");
</script>

WebApp开发-Zepto的更多相关文章

  1. 【blade利刃出鞘】一起进入移动端webapp开发吧

    前言 在移动浪潮袭来的时候,小钗有幸进入框架组做webapp框架开发,过程中遇到了移动端的各种坑,也产生了各种激情,就我们公司的发展历程来说 第一阶段:使用传统方式开发移动站点,少量引入HTML5元素 ...

  2. webapp开发调试环境--weinre配置

    用谷歌调试工具中的手机模拟器模拟手机进行webapp的开发,与真机上的效果还是有些偏差,opera手机模拟器的效果亦不佳.有时在pc上开发出来的webapp效果良好,在部分真机上就出现了偏差,这时候就 ...

  3. webapp开发中的一些注意的

    和大多数响应式的布局一样,webapp开发也是需要浮动布局和百分比布局,需要考虑的是小屏幕手机250px和大屏幕设备768px,但是习惯以320px和640px来分割,jq中的一句话$(functio ...

  4. 【原】webapp开发中兼容Android4.0以下版本的css hack

    话说现在的手机型号越来越多,主要还是android和ios这2个巨头称霸了江湖,而他们自带的浏览器内核是webkit,那对于做移动网页开发的同事来说,一般只要做好webkit内核浏览器的展现效果就行了 ...

  5. jquery mobile自己定义webapp开发实例(一)——前言篇

    用jquery mobile做了一段时间的webapp开发,准备用自己的一个小demo做一个模块化的分享 点击demo演示 手机演示二维码: 此demo已经是比較老的版本号,用户体验流畅度确实还存在非 ...

  6. 跟我一起玩转Sencha Touch 移动 WebApp 开发1

    跟我一起玩转Sencha Touch 移动 WebApp 开发(一) 1.目录 移动框架简介,为什么选择Sencha Touch? 环境搭建 创建项目框架,框架文件简介 创建简单Tabpanel案例 ...

  7. 移动端WEBAPP开发遇到的坑,以及填坑方案!持续更新~~~~

    前言:在移动端WEBAPP开发中会遇到各种各样的问题,通过此文对遇到的问题做一个归纳总结,方便自己日后查询,也给各位前端开发友人做一个参考.   此文中涉及的问题是本人开发中遇到的,解决方案是本人思考 ...

  8. WebApp开发总结

    WebApp开发总结 框架的使用网络上都有教程,就不写了,主要记录下个人的开发总结以方便以后开发注意. css公用样式统一定义 css样式抽出复用 appearance: none; 取消系统默认样式 ...

  9. 移动前端webApp开发点滴积累20140629

    #移动前端webApp开发点滴积累20140629 ##关于input行内居中的问题 给input设定一个比较高的高度,在某些版本的移动设备上,文字不能垂直居中,即使设定了相同的行高也不行.(见图) ...

随机推荐

  1. 形象解释各种卷积算法(Convolution animations)

    No padding, no strides Arbitrary padding, no strides Half padding, no strides Full padding, no strid ...

  2. Codeforces_803

    A. 填k个1,使矩阵主对角线对称,相同情况选择上面1数量多的. #include<bits/stdc++.h> using namespace std; ][] = {}; int ma ...

  3. Codeforces_442_A_枚举

    http://codeforces.com/problemset/problem/442/A 想想成5*5的图,一共能划10条线,枚举2^10次即可. 判断每种情况是否符合条件的方法,若存在点,被线穿 ...

  4. bzoj 50题纪念

    bzoj好难,边看题解边做终于水到了50t,不知道水平提没提高啊TAT

  5. 论文《Entity Linking with Effective Acronym Expansion, Instance Selection and Topic Modeling》

    Entity Linking with Effective Acronym Expansion, Instance Selection and Topic Modeling 一.主要贡献 1. pro ...

  6. 杭电-------2046骨牌铺方格(C语言写)

    #include<stdio.h> ] = { }; long long recrusion(int n) { || a[n]>) { return a[n]; } ) + recr ...

  7. NIO学习笔记,从Linux IO演化模型到Netty—— 究竟如何理解同步、异步、阻塞、非阻塞

    我的观点 首先,分开各自理解. 1. 同步:描述两个(或者多个)个体之间的协调关系. 比如,单线程中,methodA调用了methodB,methodB返回后,methodA才往下执行,那么称A同步调 ...

  8. 花 1 小时,开源设计 LoRa 继电器开关

    提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议. 提示2:您可以免费复制,修改和商用本项目,请注明锐米原创. 提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 sup ...

  9. v-charts x轴字体斜显示

    如下图,因为X轴内容太多,放不下,插件默认间隔显示需求:X轴内容要全部显示出来(只有斜显示或固定宽多余的用省略代替,本来需要就是想显示全部内容,所以只能取斜显示的方案) 先看看v-charts的文档: ...

  10. JS求1到100的累计值

    sum=0 for(i=1;i<=100;i++) { sum+=i } alert(sum)   作者:kerwin-chyl 文章链接:https:////www.cnblogs.com/k ...