//获取滚动条滚动的距离
function getScrollOffset(){
if(window.pageXOffset){
return {
x : window.pageXOffset,
y : window.pageYOffset
}
}else{
return {
x : document.body.scrollLeft + document.documentElement.scrollLeft,
y : document.body.scrollTop + document.documentElement.scrollTop,
}
}
}
//获取浏览器窗口大小
function getViewportOffset(){
if(window.innerWidth){
return {
w : window.innerWidth,
h : window.innerHeight
}
}else{
if(document.compatMode === "BackCompat"){
return {
w : document.body.clientWidth,
h : document.body.clientHeight
}
}else{
return {
w : document.documentElement.clientWidth,
h : document.documentElement.clientHeight
}
}
}
}
//添加事件
function addEvent(ele,type,handle){
if(ele.addEventListener){
ele.addEventListener(type,handle,false);
}else if(ele.attachEvent){
ele.attachEvent('on' + type, function(){
handle.call(ele);
})
}else{
ele['on' + type] = handle;
}
}
//移除事件
function removeEvent(elem,type,fn){
if(elem.removeEventListener){
elem.removeEventListener(type,fn,false);
}else if(elem.detachEvent){
elem.detachEvent('on' + type, fn);
}
elem['on' + type] = null;
}
//获取事件源对象
div.onclick = function (e){
var event = e || window.event;
var target= event.target || event.srcElement;
console.log(target)
}
//阻止默认事件
function cancelHandler(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false;
}
}
//取消事件冒泡
function stopBubble(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
//鼠标拖拽
function drag(elem){
var disX,disY;
addEvent(elem,'mousedown',mousedown);
function mousedown(e){
var event = e || window.event;
disX = event.pageX - parseInt(elem.style.left);
disY = event.pageY - parseInt(elem.style.top);
addEvent(document,'mousemove',mousemove);
addEvent(document,'mouseup',mouseup);
stopBubble(event);
cancelHandler(event)
}
function mousemove(e){
var event = e || window.event;
var target = event.target || event.srcElement;
elem.style.left = event.pageX - disX +'px';
elem.style.top = event.pageY - disY +'px';
}
function mouseup(){
removeEvent(document,"mousemove",mousemove)
}
}
//异步加载script标签
function loadScript(url,callback){
var script = document.createElement('script');
script.type = 'text/javascript';//可省略
if(script.readyState) {
script.onreadystatechange = function(){ //ie
if(script.readyState == 'complete' || script.readyState == 'loaded'){
callback();
}
}
}else{
script.onload = function () { //Safari chrome firefox opera
callback();
}
}
script.src = url;
document.head.appendChild(script);
}
js函数封装
最新推荐文章于 2022-10-15 18:42:19 发布