2023年2月19日個人部落格文章--遷移到segmentfault
當我們在編寫js用於處理事件時,由於考慮到不同瀏覽器間js**相容不同,**不易記憶,於是做出如下整理。(當然以後還會增加更新的。。。)
示例**如下:
(1)阻止預設事件
obj.onclick=function(ev)else
}
(2)獲取下(上)乙個兄弟節點
function nextnode(obj) else
}function prenode(obj) else
}
(3)獲取第乙個子(最後乙個)節點
function firstnode(obj) else
}function lastnode(obj) else
}
(4)新增(移除)事件監聽
function addevent(obj,type,fn)else
}function removeevent(obj,type,fn)else
}
(5)舉例click事件阻止事件傳播
obj.onclick=function(ev)else
}
(6)mouseover與mouseover的事件委託(經常用到,用於去除當 滑鼠浮動到元素容器中不同子元素間出現閃動問題。只需在函式function(ev){} 頭部新增以下**即可)
// mouseover委託事件
var event=ev||window.event;
// var from=event.fromelement||event.relatedtarget;
//在mouseover事件中from,表示滑鼠來自哪個元素,也是事件委託型別,和target與srcelement相反
// alert(from);
var from=event.fromelement||event.relatedtarget;
while(from);
from=from.parentnode;
}//mouseout委託事件
var event=ev||window.event;
var to=event.toelement||event.relatedtarget;
//在mouseout事件中to,表示滑鼠指向那個元素,也是事件委託型別,和target與srcelement相反
// alert(to)
while(to);
to=to.parentnode;
}
(7)滾輪事件
box.onmousewheel=function (ev) else;
}*/box.addeventlistener('dommousescroll',function (ev),false)//ie678不支援
8.js按需載入 非同步載入
demo.js如下
function test()
index.html如下
function loadscript(url,callback)
}}else
}script.src=url; //寫在這裡是為了防止onreadystatechange狀態不改變
}loadscript('demo.js',function())
CSS不同瀏覽器間相容技巧
當你想在乙個瀏覽器裡改變樣式而不像在其他瀏覽器中改變時,這些選擇器很有用。ie6以下 example source code www.52css.com html ie 7 以下 example source code www.52css.com first child html html 只對ie...
CSS相容不同瀏覽器
製作頁面的時候,由於瀏覽器的不同,對css的解析也會有所不同,從而達不到我們預期想要的頁面效果,這個時候我們就需要針對不同的瀏覽器去寫不同的css,讓它能夠同時相容不同的瀏覽器。css hank。原始 歡迎光臨!減號是ie6專有的hack 9 ie6 ie7 ie8 ie9 ie10都生效 0 ie...
js事件相容處理(不同瀏覽器的事件相容處理)
var eventutil else if element.attachevent else removehandler function element,type,handler else if element.detachevent else getevent function event ge...