一、javascript方式实现
1、记录js的获取屏幕的宽度和高度
网页可见区域宽: document.body.clientWidth //你在网页中做看到的宽度
网页可见区域高: document.body.clientHeight //你在网页中做看到的宽度
网页正文全文宽: document.body.offsetWidth (包括边线的宽)
网页正文全文高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth //返回全文的宽度(通过滚动条滚动的)
网页正文全文高: document.body.scrollHeight //返回全文的高度(通过滚动条滚动的)
网页被卷去的高: document.body.scrollTop //滚动条滚的离网页上边框的距离
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop //网页距离屏幕上边框的距离
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height //屏幕的分辨力
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight //屏幕的可使用区域的高度
屏幕可用工作区宽度: window.screen.availWidth
<script language="javascript"> function screenInfo(){ var s = ""; s += "\r\n网页可见区域宽:"+ document.body.clientWidth; s += "\r\n网页可见区域高:"+ document.body.clientHeight; s += "\r\n网页可见区域宽:"+ document.body.offsetWidth +" (包括边线的宽)"; s += "\r\n网页可见区域高:"+ document.body.offsetHeight +" (包括边线的宽)"; s += "\r\n网页正文全文宽:"+ document.body.scrollWidth; s += "\r\n网页正文全文高:"+ document.body.scrollHeight; s += "\r\n网页被卷去的高:"+ document.body.scrollTop; s += "\r\n网页被卷去的左:"+ document.body.scrollLeft; s += "\r\n网页正文部分上:"+ window.screenTop; s += "\r\n网页正文部分左:"+ window.screenLeft; s += "\r\n屏幕分辨率的高:"+ window.screen.height; s += "\r\n屏幕分辨率的宽:"+ window.screen.width; s += "\r\n屏幕可用工作区高度:"+ window.screen.availHeight; s += "\r\n屏幕可用工作区宽度:"+ window.screen.availWidth; alert(s); } </script>2、获取鼠标的位置
通过事件获取鼠标的坐标
event.clientX //相对文档的水平座标 event.clientY //相对文档的垂直座标 event.offsetX //相对容器的水平坐标 event.offsetY //相对容器的垂直坐标
获取鼠标坐标的函数
document.onmousemove = mouseMove; function mouseMove(ev){ ev = ev || window.event; var mousePos = mousePosition(ev); } function mousePosition(ev){ if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop }; }为了让 ev 在所有浏览器下获取了 event 事件,在Firefox下"||window.event"将不起作用,因为ev已经有了赋值。在 IE 中 ev 为空,所以得到 window.event 。
var leftpos = (typeof window.screenLeft == "number")?window.screenLeft:window.screenX; var toppos = (typeof window.screenTop == "number")?window.screenTop:window.screenY;
在firefox和safari中,screenTop保存的是浏览器上端相对于屏幕边界的距离,其他的浏览器会带上浏览器上端的工具栏
moveTo和moveBy能够将浏览器窗口精确地移动到一个新的位置,moveTo接受新位置的坐标x,y,moveBy接收水平和垂直方向上移动的像素数。
window.moveTo(0,0);//将窗口移动到屏幕的左上角 window.moveBy(0,100);//将窗口向下移动100px window.moveBy(-50,0);//将窗口向左移动50px三、导航和打开窗口
window.open("http://baidu.com","test","height=40,width=400,resizeable=yes");四、location对象
适合mvc框架的url function getQueryParams(name) { var r = new RegExp("(\\?|#|&)" + name + "=([^&#]*)(&|#|$)"); var m = location.href.match(r); if(!m){ r=new RegExp("(/)" + name + "/([^&#/]*)(/)"); m=location.href.match(r); } return decodeURIComponent(!m ? "" : m[2]); };
function getParam(){ var search = location.search?location.search:""; if(search.length>0){ search = search.substring(search.indexOf("?")+1); var arr=search.split('&'); var params = {}; for(var i in arr){ var param = {}; var carr = arr[i].split('='); param["name"]=carr[0]; param["value"]=carr[1]; params[i]=param; } return params; } else{ return false; } }
五、history对象
history.go(-1);//后退一页 等同于history.back();
history.go(1);//前进一页 等同于history.forward();
if(history.length==0); // 确定这是用户打开窗口的第一个页面