移動端開發(fā)基礎(chǔ)第一節(jié)

一掺栅、設(shè)備事件

移動端事件都要在head里面設(shè)置:<meta ?name="viewport" ?content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>

獲取移動端設(shè)備的尺寸:screen.width,screen.height

手機(jī)屏幕發(fā)生翻轉(zhuǎn)時(shí)觸發(fā)的事件orientationchange

我們的手機(jī)是有方向的扎谎,有一個(gè)事件可以捕獲設(shè)備的方向具篇,設(shè)置層面的粘室,只要使屏幕旋轉(zhuǎn)就可以觸發(fā)编矾。

orientation方向

window.addEventListener("orientationchange",function(event) {

var ? ?ev=event||window.event;

//當(dāng)前的方向

div.innerHTML=window.orientation;//在手機(jī)屏幕上顯示當(dāng)前的方向

//方向改變

switch(window.orientation) {

case ?0:

div.style.backgroundColor="blueviolet"

break;

case ? 90:

div.style.backgroundColor="deeppink"

break;

case -90:

div.style.backgroundColor="orangered"

break;

default:

break;

}

},false)

設(shè)備方向事件deviceOrientationEvent

window.addEventListener("deviceorientation",function(event) {

var ? ev=event||window.event;

div.innerHTML="Alpha:"+event.alpha+"<br/>Beta:"+event.beta+"<br/>Gamma:"+event.gamma;

//alpha代表z軸方向變化岖寞,范圍:0~360

//beta代表x軸方向變化椒舵,范圍:-180~180

//gamma代表y軸方向變化,范圍:-90~90

},false)


二磨澡、觸屏事件

//觸屏事件碗啄,觸摸事件

//1.觸摸開始時(shí)觸發(fā)的事件

div.addEventListener("touchstart",function(event) {

var ? ?ev=event||window.event;

//console.log(ev);

//觸摸開始,讓div隨機(jī)變色

function ? ? ?random(max,min) {

return ? ? ?parseInt(Math.random()*(max-min+1)+min);

}

div.style.backgroundColor="rgb("+random(255,0)+","+random(255,0)+","+random(255,0)+")";

},false)

//2.觸摸時(shí)進(jìn)行移動的事件

div.addEventListener("touchmove",function(event) {

var ? ? ev=event||window.event;

//阻止默認(rèn)事件

ev.preventDefault();

var ? x=ev.touches[0].clientX;

var ? y=ev.touches[0].clientY;

console.log("觸摸移動", x, y)

},false)

//3.觸摸結(jié)束時(shí)觸發(fā)事件

div.addEventListener("touchend",function(){

console.log("觸摸結(jié)束")

},false)

//4.觸摸終止 touchcancel突發(fā)事件結(jié)束觸摸

/*touches屏幕上所有觸摸點(diǎn)的集合

* targetTouches目標(biāo)對象上的觸摸點(diǎn)的集合

* changedTouches改變的觸摸點(diǎn)的集合

*/

var ? div1=document.getElementById("div1");

var ? ?div2=document.getElementById("div2");

div1.addEventListener("touchstart",function(event) {

var ? ev=event||window.event;

div1.innerHTML="tl:"+ev.touches.length+"tal:"+ev.targetTouches.length+"cL:"+ev.changedTouches.length;

},false)

div2.addEventListener("touchstart",function(event) {

var ? ?ev=event||window.event;

div2.innerHTML="tl:"+ev.touches.length+"tal:"+ev.targetTouches.length+"cL:"+ev.changedTouches.length;

},false)


三稳摄、手勢事件

//手勢事件與觸屏事件很像

//gesturestart ? ?touchstart

//gesturechange ? ?touchmove

//gestureend ? ?touchend?

//rotation 與 scale 是手勢相對于觸屏事件新加的屬性稚字。

var ? ?div1=document.getElementById("div1");

div1.addEventListener("gesturestart",function(ev) {

//alert("哈哈");

},false);

div1.addEventListener("gesturechange",function(ev) {

ev.preventDefault();

var ? r=ev.rotation;

var ? ?s=ev.scale;

//div1.style.transform = "rotate(" + r + "deg)";

div1.style.transform="scale("+s+")";

},false);


四、touch.js

touch.js既支持移動端厦酬,也支持PC端

要引入<script? type="text/javascript"? src="js/touchjs.min(1).js"></script>

使用touch.js為div添加一個(gè)輕拍手勢,touch.on(),tap胆描,三個(gè)參數(shù),第一個(gè)參數(shù) 對象仗阅,為誰添加就傳入誰昌讲;第二個(gè)參數(shù) 手勢名稱;第三個(gè)參數(shù) 回調(diào)函數(shù)减噪。

var ? touchDiv=document.getElementById("touchDiv");

touch.on(touchDiv, "tap", function(ev) {

//console.log(ev);

//按照輕拍的規(guī)律觸摸了div就可以執(zhí)行回調(diào)函數(shù)的代碼

touchDiv.innerHTML = ev.type;

touchDiv.style.backgroundColor="red";

});

//可以直接傳一個(gè)選擇器字符串剧蚣,內(nèi)部封裝了querySelector,不需要獲取元素

touch.on("#touchDiv div","tap",function(ev){

console.log(ev);

this.style.backgroundColor="yellow";

//this.innerHTML="哈哈"

});

//hold長按

touch.on("#touchDiv","hold",function(ev){

this.innerHTML=ev.type;

})旋廷;

//drag拖拽

var ? x=0;

var ? ?y=0;

var ? disX=0;

var ? ?disY=0;

touch.on("#touchDiv","drag",function(ev) {

//position.x鸠按,position.y觸摸點(diǎn)距離可視化范圍的距離

//console.log(ev.position.x, ev.position.y);

console.log(ev.x, ev.y);

//x = disX + ev.position.x-touchDiv.offsetWidth/2;

//y = disY + ev.position.y-touchDiv.offsetHeight/2;

//ev.x,ev.y 參照自己原有位置的偏移量

x=disX+ev.x;

y=disY+ev.y;

this.style.transform="translate("+x+"px,"+y+"px)";

});

touch.on("#touchDiv","dragend",function() {

disX=x;

disY=y;

})

//rotate

var ? angel=0;

touch.on("#touchDiv","touchstart",function(ev) {

ev.startRotate();

})

touch.on("#touchDiv","rotate",function(ev) {

//console.log("coco")

//console.log(ev.rotation);

var ? rotate=angel+ev.rotation;

this.innerHTML=rotate;

//fingerStatus手指的狀態(tài)

//判斷手指是不是松了

if(ev.fingerStatus=="end") {

angel=rotate;}

this.style.transform="rotate("+rotate+"deg)";

})

//pinch

//初始比例

var ? initScale=1;

//新比例

var ?newScale=0;

touch.on(document,"touchmove",function(ev) {

ev.preventDefault();

})

touch.on("#touchDiv","pinch",function(ev) {

var ? scale=ev.scale-1;

newScale=scale+initScale;

if(newScale<=0.5) {

newScale=0.5;

}

if(newScale>=2) {

newScale=2;

}

//if (ev.fingerStatus == "end") {

//initScale = newScale;

//}

this.style.transform="scale("+newScale+")";

});

touch.on("#touchDiv","pinchend",function() {

initScale=newScale;

});


五饶碘、swiper.js

<script ? ? ?src="js/swiper-3.4.0.min.js"></script>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末目尖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子扎运,更是在濱河造成了極大的恐慌瑟曲,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豪治,死亡現(xiàn)場離奇詭異洞拨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)负拟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門烦衣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事花吟〗掌纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵衅澈,是天一觀的道長键菱。 經(jīng)常有香客問我,道長今布,這世上最難降的妖魔是什么经备? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮部默,結(jié)果婚禮上侵蒙,老公的妹妹穿的比我還像新娘。我一直安慰自己甩牺,他們只是感情好蘑志,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布累奈。 她就那樣靜靜地躺著贬派,像睡著了一般。 火紅的嫁衣襯著肌膚如雪澎媒。 梳的紋絲不亂的頭發(fā)上搞乏,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機(jī)與錄音戒努,去河邊找鬼请敦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛储玫,可吹牛的內(nèi)容都是我干的侍筛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼撒穷,長吁一口氣:“原來是場噩夢啊……” “哼匣椰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起端礼,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤禽笑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蛤奥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體佳镜,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年凡桥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蟀伸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖望蜡,靈堂內(nèi)的尸體忽然破棺而出唤崭,到底是詐尸還是另有隱情,我是刑警寧澤脖律,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布谢肾,位于F島的核電站,受9級特大地震影響小泉,放射性物質(zhì)發(fā)生泄漏芦疏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一微姊、第九天 我趴在偏房一處隱蔽的房頂上張望酸茴。 院中可真熱鬧,春花似錦兢交、人聲如沸薪捍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酪穿。三九已至,卻和暖如春晴裹,著一層夾襖步出監(jiān)牢的瞬間被济,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工涧团, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留只磷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓泌绣,卻偏偏與公主長得像钮追,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子阿迈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一元媚、DOM 什么是DOM?Document Object Model(文檔對象模型)仿滔。DOM是針對HTML和XML...
    空谷悠閱讀 973評論 0 2
  • 1. tab列表折疊效果 html: 能源系統(tǒng)事業(yè)部 崗位名稱: 工作地點(diǎn) 崗位名...
    lilyping閱讀 1,867評論 0 1
  • 一崎页、下面我將簡單的介紹移動端布 局的八種方式: 1.固定布局 2.流動布局 3.浮動布局 4.定位布局 5.混合布...
    李好Ario閱讀 1,565評論 0 8
  • 一鞠绰、下面我將簡單的介紹移動端布局的八種方式:** 1.固定布局**2.流動布局3.浮動布局4.定位布局5.混...
    張憲宇閱讀 1,499評論 0 2
  • 孩子在老家有一個(gè)星期了,我差不多有三天時(shí)間沒有看到寶寶了飒焦!雖然現(xiàn)在比之前輕松很多蜈膨,卻感覺整個(gè)人空落落的屿笼。 ...
    雅致如蘭閱讀 219評論 0 0