用来确定和修改window对象位置的属性和方法有很多。IE. Safari、Opera和Chrome都提供了screenLeft和screenTop属性,分别用于表示窗口相对于屏幕左边和上边的位置。Firefox则在screenX和screenY属性中提供相同的窗口位置信息,Safari和Chrome也同时支持这两个属性。Opera虽然也支持screenX和screenY属性,但与screenLeft和screenTop属性并不对应,南昌网站设计公司技术人员在此建议大家不要在Opera中使用它们。使用下列代码可以跨浏览器取得窗口左边和上边的位置:
var leftPos=(typeof window. screenLeft=="number”) ;
window. screenLeft :window. screenX;
var topPos= (typeof window.screenTop=="number”) ;
window. screenTop:window. screenY;
这个例子运用二元操作符首先确定screenLeft和screenTop属性是否存在,如果是(在IE、Safari、Opera和Chrome中),则取得这两个属性的值。如果不存在(在Firefox中),则取得screenX和screenY的值。
在使用这些值的过程中,还必须注意一些小问题。在IE. Opera和Chrome中,screenLeft和screenTop中保存的是从屏幕左边和上边到由window对象表示的页面可见区域的距离。换句话说,如果window
对象是最外层对象,而且浏览器窗口紧贴屏幕最上端——即y轴坐标为0,那么screenTop的值就是位于页面可见区域上方的浏览器工具栏的像素高度。但是,在Firefox和Safari中,screenTop中保存的是整个浏览器窗口相对于屏幕的坐标值,即在窗口的y轴坐标为0时返回0。
南昌网络公司技术人觉得更让人捉摸不透是,Firefox. Safari和Chrome始终返回页面中每个框架的top.screenX和top.screenY值。即使在页面由于被设置了外边距而发生偏移的情况下,相对于window对象使用screenX和screenY每次也都会返回相同的值。而IE和Opera则会给出框架相对于屏幕边界的精确坐标值。
最终结果,就是无法在跨浏览器的条件下取得窗口左边和上边的精确坐标值。然而,使用moveTo()和moveBy()方法倒是有可能将窗口精确地移动到一个新位置。这两个方法都接收两个参数,其中moveTo()接收的是新位置的x和y坐标值,而rmoveBy()接收的是在水平和垂直方向上移动的像素数。
下面来看几个例子:
//将窗口移动到屏幕左上角
window.moveTo(O,0);
//将窗向下移动100像素
window.moveBy(0,100);
//将窗口移动到(200,300)
window.moveTo( 200,3 00);
//将窗口向左移动50像素
window. moveBy(-50.O);
需要注意的是,这两个方法可能会被浏览器禁用;而且,在Opera和IE 7(及更高版本)中默认就是禁用的。另外,这两个方法都不适用于框架,只能对最外层的window对象使用。
本文仅限内部技术人员学习交流,不得作于其他商业用途.文章出自:南昌网站建设公司-百恒网络 http://www.jxbh.cn 如转载请注明出处!