html中设置某个区域手动上下滚动

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>手动滚动</title>
<style type="text/css">

#mybox{

overflow:hidden;

background:#CCC;

height:100px;

width:200px;

}
.up ,.down{ background:#63F;width:200px;}

</style>

<script type="text/javascript" src="jquery-1.3.js"></script>

<script type="text/javascript">

var myTimer;

// 速度毫秒值越小速度越快
var speed=200;

// 值越大越快
var stepSpeed=4;

$(function(){

var mybox=$("#mybox");

//向上
$(".up").bind("mouseover",function(){

var nowPos=mybox[0].scrollTop;//当前值

changePos(mybox,nowPos,0);

}).bind("mouseout",function(){

if(myTimer){window.clearInterval(myTimer);}

});

//向下
$(".down").bind("mouseover",function(){

var nowPos=mybox[0].scrollTop;//当前值

var maxPos=mybox[0].scrollHeight;//最大值

changePos(mybox,nowPos,maxPos);

}).bind("mouseout",function(){

if(myTimer){window.clearInterval(myTimer);}

});
});

function changePos(box,from,to){

if(myTimer){window.clearInterval(myTimer);}

var temStepSpeed=stepSpeed;

if(from>to){

myTimer=window.setInterval(function(){

if(box[0].scrollTop>to)

{box[0].scrollTop-=(5+temStepSpeed);}

else{window.clearInterval(myTimer);}

},speed);

}else if(from < to){

myTimer=window.setInterval(function(){

if(box[0].scrollTop<to)

{box[0].scrollTop+=(5+temStepSpeed);}

else{window.clearInterval(myTimer);}
},speed);
}
}
</script>
</head>

<body>
<div class="up">向上</div>
<div id="mybox">
测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容
</div>
<div class="down">向下</div>
</body>
</html>


实现的主要思路:
固定div的宽度和高度,设置CSS的overflow:hidden,然后使用js代码修改div的scrollTop值就可以实现滚动了。
元素内容总高度(若没有设置滚动条,内容可以展开的高度) element.scrollHeight
已被滚动卷去的上方像素 document.body.scrollTop | document.documentElement.scrollTop
元素内容总宽度 (若没有设置滚动条,内容可以展开的宽度)element.scrollWidth
已被滚动卷去的左方像素 document.body.scrollLeft | document.documentElement.scrollLeft

可以依据这些实现的其它功能:
动滚动,图片滚动等功能,这是上下滚动,左右滚动的实现应该也没有什么问题了吧

原帖地址:http://bbs.chinaunix.net/thread-2297953-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值