Zepto移動端框架

2021-09-27 09:47:20 字數 4654 閱讀 3556

理論概念

什麼是zepto.js

乙個移動端框架,是jquery的輕量級替代品,api與語句與jquery相似,但檔案要小得多(壓縮最小8kb)

特點:1.用於移動端 2.輕量級 3.與jquery相似,易於學習 4.響應,執行快,5,以$作為核心函式與核心物件

與jquery相同的api

$(function () );

$('.box2').on('touchstart',function () );

$('.box3').on('touchstart',function () )

})

與jquery不同的api

1.prop與attr

jquery中attr與prop的不同

prop多用於標籤的固有屬性,布林值屬性,比如selected

attr多用於自定義屬性,利用attr去獲取布林值屬性且該布林值屬性在標籤中沒有定義的時候會返回undefined

$('option').each(function (index, item) );
在zepto中attr也可以獲取布林值屬性,但prop的優先順序比attr高,建議使用prop

$('option').each(function (index, item) );

$('#btn').click(function () , 2000);

});

2.dom操作

a.在jquery操作dom的時候新增配置物件不會起作用(配置屬性選擇器之類的)

$(function () );

});

b.在zepto中使用配置物件可以起作用,新增的配置物件會直接反應到對應的標籤中,可以操作,影響dom元素

$(function () );

});

3.each方法的遍歷

$.each(collection, function(index, item))

a.在jquery中each的使用

可以遍歷陣列 index-item的形式

可以遍歷物件 key-vaule的形式

不可以用於遍歷字串以及json字串

var arr = [1,'a',3,'b',5];

var obj = ;

//遍歷陣列,

$.each(arr, function(index,item) );

$.each(obj, function(key,value) );

//不可以遍歷字串。

var str = 'adfdfdf';

$.each(str,function(index))

})

b.在zepto中each方法的使用

可以遍歷陣列,以index,tiem的形式,

可以遍歷物件,以key-value的形式,

也可以遍歷字串。

var arr = [1,'a',3,'b',5];

var obj = ;

$.each(arr, function(index,item) );

$.each(obj, function(key,value) );

var str = 'abcdef';

//可以遍歷字串,同對陣列的遍歷方法一樣以index-item的形式。

$.each(str, function(index,item) );

4.offset()方法的區別

在jquery中的使用

獲取匹配元素在當前視口的相對偏移。

返回的物件包含兩個整型屬性:top 和 left。此方法只對可見元素有效。

jquery

在zepto中的使用

與jquery不同的是 :返回乙個物件含有: top, left, width和height(獲取的寬高是盒模型可見區域的寬高)

$(function())
5.width()與height()的區別

在jquery中獲取寬高的方法

(1)width(),height()—content內容區的寬高,沒有單位px;

(2).css(『width』)----可以獲取content內容區的寬高,padding,border的值,有單位px;

(3)innerheight(),innerwidth()—outerheight(),outerwidth()來獲取

//jquery中width(),height(),.css()返回的始終是content區域的寬高

console.log($('#box').width());

console.log($('#box').height());

console.log($('#box').css('width'));

//可以通過css()獲取padding,border的值

console.log($('#box').css('padding'));

console.log($('#box').css('border-width'));//此方法存在爭議

//也可以利用innerheight(),outerheight(),innerwidth(),outerwidth()等來獲取padding和border的值

console.log($('#box').innerheight());

console.log($('#box').outerheight()+'outerheight');

在zepto中獲取寬高

(1)zepto用width(),height()是根據盒模型決定的,並且不包含單位px

(2)包含padding的值,border的值

//zepto中沒有innerheight(),innerwidth()---outerheight(),outerwidth()

console.log($('#box').width());

console.log($('#box').height());

//用.css('width')獲取的是content的寬高。

console.log($('#box').css('width'));

//* 單獨獲取padding,border的值

console.log($('#box').css('padding'));

console.log($('#box').css('border-width')+'border');

6.獲取隱藏元素的寬高

在jquery中可以獲取隱藏元素的寬高

在zepto中無法獲取隱藏元素的寬高

hello

重要的事件委託

事件委託的概念

將子元素的事件委託到父元素上,原理是冒泡機制,並最終在子元素上執行

作用:減少dom操作,新新增的子元素也可以響應事件

在jquery中的事件委託

a的事件委託

b的事件委託

#a事件委託

click me!

2.zepto中的touch event

按鈕1按鈕2按鈕3

button

zepto事件處理機制

1.zepto有自己的一套事件機制,並且對不同的瀏覽器做了相容的內部封裝處理。

2.新版本的zepto用on off來處理事件,廢除了deletage bind die

$(function());

//事件委託

$('#box1').on('touchstart','p',function());

//解除繫結事件

//$('#box').off('touchstart');

//一次函式

$('#box2').one('touchstart',function());

})

zepto表單form

1、serialize()

* 在ajax post請求中將用作提交的表單元素的值編譯成 url-encoded 字串。—key(name)/value

2、serializearray()

* 將用作提交的表單元素的值編譯成擁有name和value物件組成的陣列。

* 不能使用的表單元素,buttons,未選中的radio buttons/checkboxs 將會被跳過。

3、submit()

* 為 「submit」 事件繫結乙個處理函式,或者觸發元素上的 「submit」 事件。

* 當引數function沒有給出時,觸發當前表單「submit」事件,並且執行預設的提交表單行為,除非阻止預設行為。

zepto ajax

vue 移動端框架

採用vant vue vuex axios webpack iconfont 構建的移動端專案模板 1.目前vuex主要用於儲存登入的token,使用者資訊,訊息列表等等 2.axios主要用於介面請求前新增統一的token,和攔截伺服器返回的狀態碼,這裡攔截401錯誤,並重新跳入登頁重新獲取tok...

Vue PC端 移動端框架彙總

在學習vue的過程之中,我發現不管是 bat 大廠,還是創業公司,vue 都有著廣泛的應用,而且框架層出不窮,學習文件也越來越多,vue也越來越受歡迎。下面是我整理的 vue pc端和移動端的ui框架,建議收藏,方便以後學習的時候拿出來檢視。vue pc端框架 1.element 中文文件 2.iv...

zepto 移動端為動態元素繫結事件的解決方案

動態新增元素繫結事件,如果是pc端為動態新增元素繫結事件的解決方案為 1 element on 事件,callback 2 element live 事件,callback 3 document on 事件,元素 callback 但是以上方法在移動端,沒有效果,沒有效果,沒有效果 接下來移動端的事...