courseware 2010-06-29
代码如下:
//获取光标的水平位置 function getX(e) { //通用化事件对象 e = e || window.event; //先检查非IE浏览器的位置,在检查IE的位置 return e.pageX || e.clientX + document.body.scrollLeft; } //获取光标的垂直位置 function getY(e) { //通用化事件对象 e = e || window.event; //先检查非IE浏览器的位置,在检查IE的位置 return e.pageY || e.clientY + document.body.scrollTop; }
代码如下:
//返回页面的高度(增加内容的时候可能会改变) function pageHeight() { return document.body.scrollHeight; } //返回页面的宽度 function pageWidth() { return document.body.scrollWidht; }
代码如下:
//确定浏览器水平滚动位置的函数 function scrollX() { //一个快捷方式,用在IE6/7的严格模式中 var de = document.documentElement; //如果浏览器存在pageXOffset属性,则使用它 return self.pageXOffset || //否则,尝试获取根节点的左端滚动偏移量 (de && de.scrollLeft) || //最后,尝试获取body元素的左端滚动偏移量 document.body.scrollLeft; } //确定浏览器垂直滚动位置的函数 function scrollY() { //一个快捷方式,用在IE6/7的严格模式中 var de = document.documentElement; //如果浏览器存在pageYOffset属性,则使用它 return self.pageYOffset || //否则,尝试获取根节点的顶端滚动偏移量 (de && de.scrollTop) || //最后,尝试获取body元素的顶端滚动偏移量 document.body.scrollTop; }
代码如下:
//如果需要滚动到浏览器的顶端,可以这么做 window.scrollTo(0,0) //如果需要滚动到指定元素,则可以这样 window.scrollTo(0, pageY(document.getElementById('content')));
代码如下:
//获取元素的Y位置 function pageY(elem) { //查看我们是否位于根元素 return elem.offsetParent ? //如果我们能继续得到上一个元素,增加当前的偏移量并继续往上递归 elem.offsetTop + pageY(elem.offsetParent): //否则,获取当前的偏移量 elem.offsetTop; }
代码如下:
//获取视口的高度 function windowHeight() { //一个快捷方式,用在IE6/7的严格模式中 var de = document.documentElement; //如果浏览器存在innerHeight属性,则使用它 return self.innerHeight || //否则,尝试获取根节点高度 (de && de.clientHeight) || //最后,尝试获取body元素的高度 document.body.clientHeight; } //获取视口的宽度 function windowWidth() { //一个快捷方式,用在IE6/7的严格模式中 var de = document.documentElement; //如果浏览器存在innerWidth属性,则使用它 return self.innerWidth || //否则,尝试获取根节点宽度 (de && de.clientWidth) || //最后,尝试获取body元素的宽度 document.body.clientWidth; }
最后来讲一个比较有意思的效果,现在web前端中也很流行――"拖拽",作者没有给出具体的实现,而是引用了一个不错的js库,dom-drag.js,可以学习下高手的源码,同时介绍了好几个流行的js库,jquery也在其中。好了javascript与css的复习到这了,有什么问题欢迎留言讨论。