JS實(shí)例-事件對(duì)象

事件對(duì)象:存儲(chǔ)了(描述了)事件更加詳細(xì)的信息

    坐標(biāo)信息(位置):
    橫坐標(biāo)(x軸):
        event.clientX;
        兼容:Chrome,IE系
        
        ev.clientX;
        兼容:高級(jí)瀏覽器
        低級(jí):undefined

    兼容寫(xiě)法:
        var oEvent = ev || event;

查看當(dāng)前鼠標(biāo)的坐標(biāo)位置:
    onmousemove -> 當(dāng)你移動(dòng)鼠標(biāo)時(shí)候
    觸發(fā)非常密 不要用alert 調(diào)試

eg:
div跟著鼠標(biāo)走
*** 使用clientX,clientY 最好加上滾動(dòng)寬度,高度 防止在滾動(dòng)的時(shí)候DIV不跟隨鼠標(biāo)

事件冒泡:

子元素身上的事件赞辩,會(huì)傳遞給父元素雌芽,如果事件相同會(huì)執(zhí)行,不相同不會(huì)執(zhí)行辨嗽,會(huì)繼續(xù)往上冒

發(fā)生包含關(guān)系世落,不是平級(jí)關(guān)系

阻止事件冒泡:
oEvent.cancelBubble = true;

eg 放大鏡(淘寶產(chǎn)品圖):

a). 鼠標(biāo)移入、移出small 顯示糟需、隱藏span/big
    b). 給small添加移動(dòng)事件
        1. 讓span 跟著鼠標(biāo)走
            (減去box的offsetLeft/offsetTop)
        2. 限制范圍
            1). 左邊最大移動(dòng)距離
            small盒模型寬度/高度-span盒模型寬度/高度
            2). 右邊最大移動(dòng)距離
            大img的盒模型寬度/高度-big盒模型寬度/高度
        3. 算比例
            左邊X軸:scaleX = x/maxW
            左邊X軸:scaleY = y/maxH
        4. 右邊比例 - > 算img的left/top
    scaleX = ? / (oImg.offsetWidth-oBig.offsetWidth)
    scaleY = ? / (oImg.offsetHeight-oBig.offsetHeight)

    比例:變化的數(shù)/定死的數(shù)

鍵盤(pán)事件:

<b>onkeydown 當(dāng)按下鍵盤(pán)的時(shí)候</b>

鍵位對(duì)應(yīng)的鍵碼:
oEvent.keyCode -> 鍵碼
對(duì)應(yīng)一個(gè)數(shù)字
規(guī)律
常用的鍵:

刪除鍵:8
回車(chē)鍵:13

左鍵:37
上鍵:38
右鍵:39
下鍵:40

組合鍵:
*** 在js里面鍵碼不能組合使用

    ctrl:
        ctrlKey
    shift:
        shiftKey
    alt: 
        altKey

<b>oncontextmenu 當(dāng)點(diǎn)擊右鍵時(shí)候</b>

默認(rèn)行為:
右鍵有菜單 表單能提交 文本框能輸入內(nèi)容 點(diǎn)擊a鏈接能跳轉(zhuǎn)...

阻止默認(rèn)行為:
return false;

阻止復(fù)制內(nèi)容途徑:
a). ctrl + c
b). 右鍵

<b>eg 拖拽:</b>
a). 按下鼠標(biāo)
onmousedown 當(dāng)按下鼠標(biāo)的時(shí)候
b). 移動(dòng)
onmousemove 當(dāng)移動(dòng)鼠標(biāo)的時(shí)候
c). 抬起鼠標(biāo)
onmouseup 當(dāng)抬起鼠標(biāo)的時(shí)候

問(wèn)題:
    a). 快速拖拽div就不跟著走了
        解決:把move和 up加給docuemnt
    b). 會(huì)選中文字
        系統(tǒng)自帶的
        阻止默認(rèn)行為
        解決:return false;

        IE低版本出問(wèn)題
        捕獲(IE獨(dú)有的):

設(shè)置捕獲
    obj.setCapture();

釋放捕獲:
    obj.releaseCapture();

克绿爰选:
obj.cloneNode(); -> 淺克隆
返回新的物體

obj.cloneNode(true); -> 深度克隆 會(huì)將內(nèi)容也復(fù)制
參數(shù):默認(rèn)是false -> 淺克隆


事件沖突:
同一個(gè)元素身上,添加了一個(gè)事件洲押,但是希望執(zhí)行不同的函數(shù)

添加事件的方式:
    a). <input type="button" onclick="xxx"
    b). oBtn.onclick = xxxx;

事件綁定:解決事件沖突
一種全新的添加事件的方式

事件綁定:
obj.addEventListener(事件名武花,函數(shù)名,是否捕獲);
事件名 -> 不能加上 "on"

兼容:高級(jí)瀏覽器
obj.attachEvent(事件名杈帐,函數(shù)名);
事件名 -> 加上 "on"
兼容: IE10-

兼容性:
    a). || 
    b). if  else

封裝一個(gè)給物體添加綁定事件的函數(shù):
obj -> 哪個(gè)物體
sEv -> 事件名
fn  -> 函數(shù)名
addEvent(obj,sEv,fn);

事件解綁定:
問(wèn)題:
碰見(jiàn)匿名函數(shù)出問(wèn)題了
原因:
函數(shù)每次都是new出來(lái)的体箕,只要是new出來(lái)的東西都不相等

關(guān)于匿名函數(shù):

obj.removeEventListener(事件名,函數(shù)名挑童,是否捕獲);
事件名 -> 不能加上‘on’
參數(shù)要與事件的綁定保持一致
兼容:高級(jí)瀏覽器

obj.detachEvent(事件名累铅,函數(shù)名);
兼容:IE10-

兼容性:
    removeEvent(obj,sEv,fn);

事件冒泡:
子級(jí) -> 父級(jí)
事件的捕獲(下沉):
父級(jí) -> 子級(jí)
事件的捕獲沒(méi)用!站叼! 直接給false
obj.removeEventListener(事件名娃兽,函數(shù)名,false);


this出問(wèn)題的地方:
a). 定時(shí)器里面的this
b). 函數(shù)包了一層
c). 事件綁定有問(wèn)題(attachEvent)

九宮格拖拽:
4個(gè)邊大年,4個(gè)角

右邊:
var downX = oEvent.clientX;
var oldW = oBox.offsetWidth;
下邊:
var downY = oEvent.clientY;
var oldH = oBox.offsetHeight;
左邊:
var downX = oEvent.clientX;
var oldW = oBox.offsetWidth;
var oldL = oBox.offsetLeft;
上邊:
var downY = oEvent.clientY;
var oldH = oBox.offsetHeight;
var oldT = oBox.offsetTop;


碰撞檢測(cè)::
a). 什么時(shí)候碰上
r1 > l2 && b1 > t2 && l1 < r2 && t1 < b2
b). 判斷沒(méi)碰上 √
r1 < l2 || b1 < t2 || l1 > r2 || t1 > b2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末换薄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子翔试,更是在濱河造成了極大的恐慌轻要,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垦缅,死亡現(xiàn)場(chǎng)離奇詭異冲泥,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)壁涎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)凡恍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人怔球,你說(shuō)我怎么就攤上這事嚼酝。” “怎么了竟坛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵闽巩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我担汤,道長(zhǎng)涎跨,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任崭歧,我火速辦了婚禮隅很,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘率碾。我一直安慰自己叔营,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布播掷。 她就那樣靜靜地躺著审编,像睡著了一般。 火紅的嫁衣襯著肌膚如雪歧匈。 梳的紋絲不亂的頭發(fā)上垒酬,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音件炉,去河邊找鬼勘究。 笑死,一個(gè)胖子當(dāng)著我的面吹牛斟冕,可吹牛的內(nèi)容都是我干的口糕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼磕蛇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼景描!你這毒婦竟也來(lái)了十办?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤超棺,失蹤者是張志新(化名)和其女友劉穎劫乱,沒(méi)想到半個(gè)月后化漆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體儒士,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叽躯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氧苍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夜矗。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖让虐,靈堂內(nèi)的尸體忽然破棺而出紊撕,到底是詐尸還是另有隱情,我是刑警寧澤澄干,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布逛揩,位于F島的核電站,受9級(jí)特大地震影響麸俘,放射性物質(zhì)發(fā)生泄漏辩稽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一从媚、第九天 我趴在偏房一處隱蔽的房頂上張望逞泄。 院中可真熱鬧,春花似錦拜效、人聲如沸喷众。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)到千。三九已至,卻和暖如春赴穗,著一層夾襖步出監(jiān)牢的瞬間憔四,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工般眉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留了赵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓甸赃,卻偏偏與公主長(zhǎng)得像柿汛,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子埠对,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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

  • 鼠標(biāo)滾輪滾動(dòng): 鼠標(biāo)滾輪事件:在頁(yè)面滾動(dòng)鼠標(biāo)滾輪彈出1:onmousewheel -> 當(dāng)滾動(dòng)鼠標(biāo)的滾輪的時(shí)候兼容...
    lemontree2000閱讀 283評(píng)論 0 0
  • 聲明:本文來(lái)源于http://www.webzsky.com/?p=731我只是在這里作為自己的學(xué)習(xí)筆記整理一下(...
    angryyan閱讀 6,968評(píng)論 1 6
  • 事件對(duì)象 鼠標(biāo)事件 event.clientX在可視區(qū)中络断,鼠標(biāo)點(diǎn)擊的x坐標(biāo) event.clientY在可視區(qū)中裁替,...
    LaBaby_閱讀 583評(píng)論 0 1
  • 什么是事件: 事件是交互體驗(yàn)的核心功能 一.事件冒泡: 當(dāng)一個(gè)事件發(fā)生時(shí),這個(gè)事件會(huì)從內(nèi)向外逐層傳遞貌笨。 二.為什么...
    輕描淡寫(xiě)mua閱讀 512評(píng)論 0 0
  • 今天胯究,我看一個(gè)電視,他給我留下了深刻的印象躁绸。 這個(gè)電視就是《我愛(ài)發(fā)明》。 講一個(gè)魏先生用手工割核桃的一層綠慢臣嚣,就自...
    賈民喆閱讀 373評(píng)論 0 0