天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript 鼠標事件總結

常見的有以下8個:
mousedown:鼠標的鍵鈕被按下。
mouseup:鼠標的鍵鈕被釋放彈起。
click:單擊鼠標的鍵鈕。
dblclick:鼠標的鍵鈕被按下。
contextmenu :彈出右鍵菜單。
mouseover:鼠標移到目標的上方。
mouseout:鼠標移出目標的上方。
mousemove:鼠標在目標的上方移動
mousedown事件與mouseup事件可以說click事件在時間上的細分,順序是mousedown => mouseup => click。因此一個點擊事件,通常會激發幾個鼠標事件。


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
有了它們,我們可以做許多事,但對于高層次的應用(如游戲)是顯然不夠的,于是鼠標事件的點擊事件又根據究竟是點左鍵還是右鍵進行細分。在DOM2.0中,W3C對鼠標事件作了現范,鼠標事件被解析為MouseEvent(我們可以用e.constructor == MouseEvent來判斷其是否為鼠標事件,是左鍵點擊還是右鍵點擊由它的一個叫button的屬性判定。以下就是W3C的標準現范:

0:按下左鍵
1:按下中鍵(如果有的話)
2:按下右鍵
當然微軟是不會妥協的,因為e.button本來就是微軟最先實現的,網景用的是e.which,但相對而言,微軟的復雜多了。

0:沒有鍵被按下
1:按下左鍵
2:按下右鍵
3:左鍵與右鍵同時被按下
4:按下中鍵
5:左鍵與中鍵同時被按下
6:中鍵與右鍵同時被按下
7:三個鍵同時被按下
更詳細的情況見下表。
GE:Gecko ;SA:Safari; OP:Opera; NS:NETscape

IENS 4GE ≥ 1.0
SA 3
OP ≥ 8.0
GE0.9OP<8.0
e.button左鍵1undefined011
中鍵4undefined123
右鍵2undefined232
e.which左鍵undefined1111
中鍵undefined2223
右鍵undefined3332
為此我們可以使用以下函數來綁定左右鍵。
復制代碼 代碼如下:
var mouseEvent = function(){
var arg = arguments[0],
el = arg.el || document,
leftfn = arg.left || function(){},
rightfn = arg.right || function(){},
middlefn = arg.middle || function(){},
buttons = {};
el.onmousedown = function(e){
e = e || window.event;
if(!+"/v1"){
switch(e.button){
case 1:buttons.left = true; break;
case 2:buttons.right = true; break;
case 4:buttons.middle = true; break;
}
}else{
switch(e.which){
case 1:buttons.left = true;break;
case 2:buttons.middle = true; break;
case 3:buttons.right = true;break;
}
}
if(buttons.left){
leftfn();
}else if(buttons.middle){
middlefn();
}else if(buttons.right){
rightfn();
}
buttons = {
"left":false,
"middle":false,
"right":false
};
}
}

它接受一個哈希參數,都是可選項。哈希的el為要綁定鼠標事件的元素,left為點擊左鍵激發的事件,其他兩個類推。用法如下:
復制代碼 代碼如下:
var el = document.getElementById("mouse");
var ex = document.getElementById("explanation");
var left = function(){
ex.innerHTML = "左鍵被按下";
}
var right = function(){
ex.innerHTML = "右鍵被按下";
}
mouseEvent({el:el,left:left,middle:null,right:right});


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
此外,通過鼠標在網頁上的點擊,我們還可以獲得許多有用的參數,如獲得當前鼠標的坐標。根據其參照物的不同,分為以下幾套坐標系。一套是以當前瀏覽器的可視區為參照物(clientX, clientY),另一套是以顯示器的屏幕為參照物(screenX, screenY)。此外微軟還有一套坐標系(x,y),它是相對于觸發事件的對象的offsetParent的,火狐有另一套坐標系(pageX, pageY),它是相對于當前網頁的。我們可以通過如下函數來獲得鼠標在網頁的坐標。
復制代碼 代碼如下:
var getCoordInDocument = function(e) {
e = e || window.event;
var x = e.pageX || (e.clientX +
(document.documentElement.scrollLeft
|| document.body.scrollLeft));
var y= e.pageY || (e.clientY +
(document.documentElement.scrollTop
|| document.body.scrollTop));
return {'x':x,'y':y};
}


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
clientXY
(clientX,clientY)的坐標系,不受滾動條影響
至于mouseover,mousemove,mouseout沒有什么好說,并且無瀏覽器差異。我們來看鼠標滾輪事件,這個差異很嚴重。IE、Safari、 Opera 、chrome是mousewheel事件,Firefox是DOMMouseScroll事件。事件屬性方面,IE等是event. wheelDelta,Firefox是event. detail。IE等往上滾一圈為120,往下滾一圈為-120。Firefox往上滾一圈為-3,往下滾一圈為3。我們可以構造一個函數來削除它們的差異。
復制代碼 代碼如下:
var mouseScroll = function(fn){
var roll = function(){
var delta = 0,
e = arguments[0] || window.event;
delta = (e.wheelDelta) ? e.wheelDelta / 120 : -(e.detail || 0) / 3;
fn(delta);//回調函數中的回調函數
}
if(/a/[-1]=='a'){
document.addEventListener('DOMMouseScroll', roll, false);
}else{
document.onmousewheel = roll;
}
}

此函數接受一函數作為參數,如:
復制代碼 代碼如下:
mouseScroll(function(delta){
var obj = document.getElementById('scroll'),
current = parseInt(obj.offsetTop)+(delta*10);
obj.style.top = current+"px";
});


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

JavaScript技術javascript 鼠標事件總結,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 中文字幕亚洲无限码 | 小SAO货边洗澡边CAO你动漫 | 热巴两次用约老师屁股发底线球 | 亚洲AV蜜桃永久无码精品无码网 | 在线成人精品国产区免费 | 精品国产麻豆免费人成网站 | 红尘影院手机在线观看 | 国产色精品久久人妻99蜜桃麻豆 | 国产精品爽爽久久久久久蜜桃 | 草草久久久亚洲AV成人片 | 国产亚洲精品久久久999密臂 | 蜜芽无码亚洲资源网站 | 99热这里只有精品视频2 | 久久日本精品在线热 | 第一福利视频网站在线 | 国产亚洲色婷婷久久精品99 | 日本免费一本天堂在线 | 亚洲熟妇色自偷自拍另类 | 中文字幕在线不卡日本v二区 | 动听968| 久久学生精品国产自在拍 | 性与肉体电影免费观看 | 国产偷窥盗摄一区二区 | 日本十八禁无遮无挡漫画 | 久久99精品AV99果冻 | 日韩欧美一区二区三区免费看 | 久久婷五月综合色啪首页 | 99久久久精品免费观看国产 | 脱女学小内内摸出水网站免费 | 高h浪荡文辣文神奇宝贝 | 久久99re8热在线播放 | 无套内射CHINESEHD | 伊人大香人妻在线播放 | 成人精品综合免费视频 | 湖南电台在线收听 | 九九热精品视频在线观看 | 91在线青春娱乐精品分类 | 人妻中文字幕乱人伦在线 | 国产三级精品三级男人的天堂 | 91国偷自产一区二区三区 | 秋霞电影伦网理最新在线看片 |