页面的各种尺寸

» 2009-8-25 19:28:39 已被归档于 JavaScript
copycode:
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量


例子详解:



xhtml不支持document.body.scrollTop
当为html文档加上如下头以支持xhtml过渡标准时候,使用document.body.scrollTop值始终为0.这是document.body.scrollTop始终为0,这时需要用document.documentElement.scrollTop才能获得正确的值,而如果不加xhtml的申明,document.documentElement.scrollTop将为0

scrollTop的一些事
用它可以来做一些网页的滚动效果.经常见到的是图片游览.
比如,简单的这个:


看这段代码:
copycode:
function up(){
var a=$("img_scroll_box").scrollTop;
var b=$("img_scroll_box").scrollTop;
while(a>b-58){
a=a-6;
$("img_scroll_box").scrollTop=a;}}

关于scrollTop在前面也已有详解.主要是根据当前的scrollTop的大小来确定下一次scrollTop的大小.根据这一点.可以简单的做一个滚动效果的.如下:


分享一些高手们的技巧
scroll滚动的封装
(1)http://www.css88.com


(2)这个版本是朋友给,没有地址,所以保留作者.
这里有2个封装.很强大.
copycode:
//<!-作者:风飘无影 -->
//参数说明: 要滚动的容器ID,方向r,l,t,b(t,b要注意内容必须是多行),延时速度,宽度,高度
function $(id){return document.getElementById(id);}
function myMarquee(_id,_mode,_speed,_w,_h)
{
this.ID=_id;
this.mode=_mode;
this.speed=_speed;
this.txt=$(_id).innerHTML;
this.width=_w;
this.height=_h;
var s='<div id="'+_id+'content" style="overflow: hidden;height:'+_h+'px;width:'+_w+'px;white-space: nowrap;"><div id="'+_id+'_show" style="display: inline">'+this.txt+'</div><div id="'+_id+'_hide" style="display: inline"></div></div>'
$(_id).innerHTML=s;
}

myMarquee.prototype.run=function()
{

$(this.ID+'_hide').innerHTML=$(this.ID+'_show').innerHTML;
var temp='mymarquee'+this.ID+'=setInterval(\'doing("'+this.mode+'","'+this.ID+'")\','+this.speed+')'
eval(temp)

var _id=this.ID;
var _mode=this.mode;
var _speed=this.speed;
$(this.ID+'content').onmouseover=function()
{
eval('clearInterval(mymarquee'+_id+')')
}
$(this.ID+'content').onmouseout=function()
{
eval('mymarquee'+_id+'=setInterval(\'doing("'+_mode+'","'+_id+'")\',_speed)');
}
}

function doing(mode,ID)
{
// alert(ID)
switch(mode) {
case 'l':
if($(ID+'_show').offsetWidth-$(ID+'content').scrollLeft<=0)
$(ID+'content').scrollLeft-=$(ID+'_show').offsetWidth
else{
$(ID+'content').scrollLeft++
}
break;
case 'r':
if($(ID+'content').scrollLeft<=0)
$(ID+'content').scrollLeft+=$(ID+'_show').offsetWidth
else{
$(ID+'content').scrollLeft--
}
break;
case 't':
if($(ID+'_hide').offsetTop-$(ID+'content').scrollTop<=0)
$(ID+'content').scrollTop-=$(ID+'_show').offsetHeight
else{
$(ID+'content').scrollTop++
}
break;
case 'b':
if($(ID+'_show').offsetTop-$(ID+'content').scrollTop>=0)
$(ID+'content').scrollTop+=$(ID+'_hide').offsetHeight
else{
$(ID+'content').scrollTop--
}
break;
}
}

实例2应用下载:下载

相关评论(共0条)

暂无评论