如何控制框架页的滚动

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

如何控制框架页的滚动

解决思路:

利用框架文档中window对象的scrollBy方法来滚动。

具体步骤:

1. 包含框架页的代码。

<script>

var itv,stepX,stepY,obj

function scrollStart(x,y){

stepX=x //X轴方向上的偏移量

stepY=y //Y轴方向上的偏移量

obj=document.frames.demo //捕获框架对象

//设置间隔事件,每10毫秒以stepX和stepY为偏移量滚动一次

itv=setInterval("obj.scrollBy(stepX,stepY)",10)

}

function scrollStop(){

clearInterval(itv) //取消间隔事件,达到停止滚动的效果

}

</script>

<iframe frameborder="0" scrolling="no" name="demo"

src="demo.htm"></iframe>

<button onmouseover="scrollStart(0,-1)"

onmouseout="scrollStop()" onmousedown="stepY=-5"

onmouseup="stepY=-1">上</button>

<button onmouseover="scrollStart(0,1)"

onmouseout="scrollStop()" onmousedown="stepY=5"

onmouseup="stepY=1">下</button>

<button onmouseover="scrollStart(-1,0)"

onmouseout="scrollStop()" onmousedown="stepX=-5"

onmouseup="stepX=-1">左</button>

<button onmouseover="scrollStart(1,0)"

onmouseout="scrollStop()" onmousedown="stepX=5"

onmouseup="stepX=1">右</button>

2.demo.htm页代码。这里仅仅是为了测试效果,可以替换为你自己的页面。

<script>

//为了产生横向滚动条

document.write(new Array(100).join("1&nbsp;&nbsp;"))

//为了产生纵向滚动条

document.write(new Array(100).join("1<br>"))

</script>

注意:如果iframe所加载的页为站外URL,将导致跨域问题,拒绝访问。凡是涉及到对框架页的访问及控制,都会有跨域问题。

特别提示

代码运行后的效果如图1.6.8所示。鼠标移上四上按钮上后,iframe内所加载的页面将分别向上、下、左和右四个方面滚动,在按下鼠标时滚动速度加快,松开鼠标(仍然在按钮上)时恢复速度,鼠标移开后滚动停止。

1.6.8 控制iframe的滚动

特别说明

本例主要是window对象的scrollBy方法的应用。通过设置横向滚动速度stepX和纵向滚动速度stepY为全局变量,在鼠标移上时在函数中用setInterval不断调用scrollBy方法滚动页面,通过参数控制滚动方向,在鼠标按下时放大全局变量stepX或stepY的值,人而达到加快滚动速度的效果,而鼠标移开后再用clearInterval方法清除之前的setInterval事件以停止滚动。

scrollBy 将窗口滚动 x 和 y 偏移量。

setInterval 每经过指定毫秒值后计算一个表达式。

clearInterval 使用 setInterval 方法取消先前开始的间隔事件。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航