js判断是否是IE浏览器

<script>

function test(){

if (window.ActiveXObject || “ActiveXObject” in window){

alert(“ie”)

}else{

alert(“not ie”)

}

}

</script>

测试了好多种方法,都不靠谱,用ua的msie的IE9以后都不行,就这个最好用。

js获取页面滚动高度

获取浏览器显示区域(可视区域)的高度 :   
$(window).height();   
获取浏览器显示区域(可视区域)的宽度 :
$(window).width();   
获取页面的文档高度   
$(document).height();   
获取页面的文档宽度 :
$(document).width(); 
浏览器当前窗口文档body的高度:  
$(document.body).height();
浏览器当前窗口文档body的宽度: 
$(document.body).width();
获取滚动条到顶部的垂直高度 (即网页被卷上去的高度)  
$(document).scrollTop();   
获取滚动条到左边的垂直宽度 :
$(document).scrollLeft(); 
获取或设置元素的宽度:
$(obj).width();
获取或设置元素的高度:
$(obj).height();
某个元素的上边界到body最顶部的距离:obj.offset().top;(在元素的包含元素不含滚动条的情况下)
某个元素的左边界到body最左边的距离:obj.offset().left;(在元素的包含元素不含滚动条的情况下)
返回当前元素的上边界到它的包含元素的上边界的偏移量:obj.offset().top(在元素的包含元素含滚动条的情况下)
返回当前元素的左边界到它的包含元素的左边界的偏移量:obj.offset().left(在元素的包含元素含滚动条的情况下)//返回当前页面高度

function pageHeight(){
if($.browser.msie){
return document.compatMode == "CSS1Compat"? document.documentElement.clientHeight :
document.body.clientHeight;
}else{
return self.innerHeight;
}
};



//返回当前页面宽度
function pageWidth(){
if($.browser.msie){
return document.compatMode == "CSS1Compat"? document.documentElement.clientWidth :
document.body.clientWidth;
}else{
return self.innerWidth;
}
};

弹出窗弹出方向控制

在页面上弹出提示框的时候,因为页面高宽的限制为了保证显示的最优话,弹出的方想需要向不同的方向弹出。如下图的九宫格:

lt

mt

rt 

lm

mm

rm

lb  

mb

rb  

代码如下:

var left = event.clientX;
var top = event.clientY;
var height = this.tips.height() + 2;    //2 为border
var width = this.tips.width() + 2;    //2 为border
var placement = ”;
var windowsHeight = $(‘svg’).height();
var windowsWidth = $(‘svg’).width();

var positionX = ”;
var positionY = ”;

if( (windowsWidth – left) < width ){
positionX = ‘r’;
}else if( left < width ){
positionX = ‘l’;
}else{
positionX = ‘m’;
}

if( (windowsHeight – top) < height){
positionY = ‘b’;
}else if( top < height ){
positionY = ‘t’;
}else{
positionY = ‘m’;
}

switch(positionX+positionY){
case ‘lt’:
break;
case ‘mt’:
placement = ‘bottom’;
left = left – width/2;
break;
case ‘rt’:
left = left – width;
break;
case ‘lm’:
placement = ‘right’;
top = top – height/2;
break;
case ‘mm’:
placement = ‘top’;
top = top – height;
left = left – width/2;
break;
case ‘rm’:
placement = ‘left’;
top = top – height/2;
left = left – width;
break;
case ‘lb’:
top = top – height;
break;
case ‘mb’:
placement = ‘top’;
top = top – height;
left = left – width/2;
break;
case ‘rb’:
top = top – height;
left = left – width;
break;
}

tips.addClass(placement).css({
left: left,
top: top
})

这样写可能算法复杂度多了6点但是可读性更好,更方便调整。