js網頁特效(四)事件
1.事件
(1)事件物件的相容性寫法
var event = event || window.event;
event物件常用屬性
屬性 作用
-----------------------------------------------------
data 返回拖拽物件的URL字串(dragDrop)
width 該視窗或框架的高度
height 該視窗或框架的高度
pageX 游標相對於該網頁的水平位置(ie無)
pageY 游標相對於該網頁的垂直位置(ie無)
screenX 游標相對於該螢幕的水平位置
screenY 游標相對於該螢幕的垂直位置
target 該事件被傳送到的物件
type 事件的型別
clientX 游標相對於該客戶區的水平位置
clientY 游標相對於該客戶區的垂直位置
三個事件的重要座標:
clientX clientY
當前視窗的左上角為基準點pageX pageY
以當前文件的左上角為基準點screenX screenY
當前螢幕的左上角為基準點
注意:
IE678不支援pageX和pageY 但是我們可以採取另一種方式
client和documentElement.scroll在IE678中都支援
var pageY = event.pageY || event.clientY +
document.documentElement.scrollTop;
var pageX = event.pageX || event.clientX +
document.documentElement.scrollLeft;
示例程式碼:
document.onclick = function (event) {
//var event = event || window.event;
var event = eventUtil.getEvent(event);
console.log("client: " + event.clientX + "--" + event.clientY);//瀏覽器
//page有相容問題 client沒有 我們可以用client來計算page
//var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
//var pageX = getPageX(event);
var pageX = eventUtil.getPageX(event);
//var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
var pageY = getPageY(event);
console.log("page: " + event.pageX + "--" + event.pageY);//頁面
console.log("screen: " + event.screenX + "--" + event.screenY);//螢幕
};
常用事件:
onmouseover 滑鼠經過
onmouseout 滑鼠離開
onmousedown 滑鼠按下
onmouseup 滑鼠彈起
onmousemove 滑鼠移動
其他內容:
1.清除選中的內容
window.getSelection ? window.getSelection().removeAllRanges()
: document.selection.empty(); //三目運算
正常瀏覽器支援:window.getSelection()
IE678以下支援:document.selection
2.判斷文字選中
window.getSelection ? window.getSelection().toString()
: document.selection.createRange().text;//三目運算子
(2)事件註冊的兩種方式
element.addEventListener(“事件型別”,”事件處理函式”,”是否使用捕獲”)
特點:
addEventListener的好處是不會將其他事件覆蓋,但是有相容性問題
removeEventListener可以移除指定事件
addEventListener便於管理事件佇列 但一般用on的就可以了比較簡單
(3)事件冒泡的三個階段
1捕獲階段
2目標階段 //執行當前物件的事件處理程式
3冒泡階段
阻止事件冒泡:
//相容性寫法
function stopPropagation(event) {
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
}
事件相容性總結(封裝函式):
function getEvent(event) {
//事件的相容性
return event || window.event;
}
//page的相容性
function getPageX(event) {
return event.pageX || event.clientX + document.documentElement.scrollLeft;
}
function getPageY(event) {
return event.pageY || event.clientY + document.documentElement.scrollTop;
}
//冒泡事件的相容性問題
function stopPropagation(event) {
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
}
//獲取目標事件相容性的問題
function getTarget(event) {
return event.target || event.srcElement;
}
//對相容性封裝的函式
var eventUtil = {
getEvent: function (event) {
return event || window.event;
},
getPageX: function (event) {
return event.pageX || event.clientX + document.documentElement.scrollLeft;
},
getPageY: function (event) {
return event.pageY || event.clientY + document.documentElement.scrollTop;
},
stopPropagation: function (event) {
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
},
getTarget: function (event) {
return event.target || event.srcElement;
}
};
2.滑鼠事件和鍵盤事件
常用滑鼠事件:
mousedown、mouseup、mousemove、mouseover、mouseout、click、dblclick
onmousedown滑鼠按下 onmouseup滑鼠彈起
onmouseclick=onmousedown+onmouseup
常用鍵盤事件:
keydown、keypress、keyup onkeydown鍵盤按下 onkeyup鍵盤彈起
onkeypress=onkeydown+onkeyup
onkeydown onkeyup 輸出的是鍵盤碼 onkeypress輸出的是ASCII碼錶
相關文章
- 網頁特效(四)網頁特效
- 網頁特效網頁特效
- 網頁特效(二)網頁特效
- 網頁特效(一)網頁特效
- 網頁特效(三)網頁特效
- Fool.js惡搞整人網頁特效jQuery外掛JS網頁特效jQuery
- 網頁特效夢工廠 XP 2.0網頁特效
- jquery網頁特效地址收藏jQuery網頁特效
- 網頁特效大公開(轉)網頁特效
- 仿照(小米官網首頁輪播圖)特效js程式碼特效JS
- 網頁特效,網頁模板,pdf下載 - IT書包網頁特效
- 網頁隨處點選出現小火花簡約特效 html+css+js網頁特效HTMLCSSJS
- js頁面載入觸發事件JS事件
- 簡單演算法――網頁特效夢工廠 XP 1.5演算法網頁特效
- JS 網頁列印 頁邊距 頁首頁尾JS網頁
- 分享js列印 網頁JS網頁
- 網站開發之滑鼠懸停簡單特效實現(四)網站特效
- 監控網頁中元素的事件 (轉)網頁事件
- 如何實現婚戀app原始碼移動端網頁特效?APP原始碼網頁特效
- NodeJS使用PhantomJs抓取網頁NodeJS網頁
- js之返回網頁頂部JS網頁
- js操作網頁中的元素JS網頁
- JS 網頁列印解決方案JS網頁
- js禁用頁面所有輸入框以及點選事件JS事件
- Vuejs基本知識(四)【頁面渲染過程 】VueJS
- 處理JS分頁載入的網頁_recvJS網頁
- JS實現把網頁設定為首頁JS網頁
- js事件JS事件
- JS 專案拾粹 四: TimeCat 超高壓縮比的網頁無損錄屏JS網頁
- JSP頁面動態生成表格併為表格新增事件JS事件
- Html前端網頁顏色的四種表示HTML前端網頁
- js/jq 獲取網頁寬高JS網頁
- Jsp動態網頁開發JS網頁
- js 做網頁右鍵選單JS網頁
- JS事件(事件冒泡和事件捕獲)JS事件
- 班門弄斧之暴破網頁特效小精靈 (6千字)網頁特效
- 全網最詳bpmn.js教材-事件篇JS事件
- JS特效之狀態列冒泡 (轉)JS特效