HTML教程 CSS教程 DHTML教程 Dreamweaver FrontPagesJavascript 正则表达式专题
返回首页

关于JS控制DIV滚动条

时间:2010-06-24 13:35来源: 作者:编程狂 点击:
script var dom = document.getElementById; var iex = document.all; function eeSaddEvent(event,method){ this[event] = method; } function eeSremoveEvent(event){ this[event] = null; } function eeSgetElement(name,nest){ nest = nest ? document.+n

<script>
var dom = document.getElementById;
var iex = document.all;
function eeSaddEvent(event,method){
this[event] = method;
}
function eeSremoveEvent(event){
this[event] = null;
}
function eeSgetElement(name,nest){
nest = nest ? "document."+nest+"." : "";
var el = dom ? document.getElementById(name) : iex ? document.all[name] : false;
el.css = el.style;
el.getTop = function(){return parseInt(el.css.top) || 0};
el.setTop = function(y){el.css.top = y+"px"};
el.getHeight = function(){return el.offsetHeight};
el.getClipHeight = function(){return el.offsetHeight};
el.eeSaddEvent = eeSaddEvent;
el.eeSremoveEvent = eeSremoveEvent;
return el;
}
function getYMouse(e){
if (!e) var e = window.event;
if (e.PageY)
  return e.pageY;
else if (e.clientY)
  return e.clientY + document.body.scrollTop;
}

本文来自泠云天天在线

document.eeSaddEvent = eeSaddEvent;
document.eeSremoveEvent = eeSremoveEvent;
// ||||||||||||||||||||||||||||||||||||||||||||||||||
// Scroller Class
ScrollObj = function(speed, dragHeight, trackHeight, trackObj, upObj, downObj, dragObj, contentMaskObj, contentObj){
this.speed = speed;
this.dragHeight = dragHeight;
this.trackHeight = trackHeight;
this.trackObj = eeSgetElement(trackObj);
this.upObj = eeSgetElement(upObj);
this.downObj = eeSgetElement(downObj);
this.dragObj = eeSgetElement(dragObj);
this.contentMaskObj = eeSgetElement(contentMaskObj);
this.contentObj = eeSgetElement(contentObj,contentMaskObj);
this.obj = contentObj+"Object";
eval(this.obj+"=this"); lyttzx.com

this.trackTop = this.dragObj.getTop();
this.trackLength = this.trackHeight-this.dragHeight;
this.trackBottom = this.trackTop+this.trackLength;
this.contentMaskHeight = this.contentMaskObj.getClipHeight();
this.contentHeight = this.contentObj.getHeight();
this.contentLength = this.contentHeight-this.contentMaskHeight;
this.scrollLength = this.trackLength/this.contentLength;
this.scrollTimer = null;

copyright lyttzx.com

if(this.contentHeight <= this.contentMaskHeight){
  this.dragObj.hideVis();
  this.upObj.hideVis();
  this.downObj.hideVis();
  this.trackObj.hideVis();
}else{
  var self = this;
  this.trackObj.eeSaddEvent("onmousedown", function(e){self.scrollJump(e);return false});
  this.upObj.eeSaddEvent("onmousedown", function(){self.scroll(self.speed);return false});
  this.upObj.eeSaddEvent("onmouseup", function(){self.stopScroll()});
  this.upObj.eeSaddEvent("onmouseout", function(){self.stopScroll()});
  this.downObj.eeSaddEvent("onmousedown", function(){self.scroll(-self.speed);return false});
  this.downObj.eeSaddEvent("onmouseup", function(){self.stopScroll()});
  this.downObj.eeSaddEvent("onmouseout", function(){self.stopScroll()});
  this.dragObj.eeSaddEvent("onmousedown", function(e){self.startDrag(e);return false});

本文来自泠云天天在线

  if(iex) this.dragObj.eeSaddEvent("ondragstart", function(){return false});
}
}
ScrollObj.prototype.startDrag = function(e){
this.dragStartMouse = getYMouse(e);
this.dragStartOffset = this.dragObj.getTop();
var self = this;
document.eeSaddEvent("onmousemove", function(e){self.drag(e)});
document.eeSaddEvent("onmouseup", function(){self.stopDrag()});
}
ScrollObj.prototype.stopDrag = function(){
document.eeSremoveEvent("onmousemove");
document.eeSremoveEvent("onmouseup");
}
ScrollObj.prototype.drag = function(e){
var currentMouse = getYMouse(e);
var mouseDifference = currentMouse-this.dragStartMouse;
var dragDistance = this.dragStartOffset+mouseDifference;
var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;
this.dragObj.setTop(dragMovement);
var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);

内容来自泠云天天在线

this.contentObj.setTop(contentMovement);
}
ScrollObj.prototype.scroll = function(speed){
var contentMovement = this.contentObj.getTop()+speed;
var dragMovement = this.trackTop-Math.round(this.contentObj.getTop()*(this.trackLength/this.contentLength));
if(contentMovement > 0){
  contentMovement = 0;
}else if(contentMovement < -this.contentLength){
  contentMovement = -this.contentLength;
}
if(dragMovement < this.trackTop){
  dragMovement = this.trackTop;
}else if(dragMovement > this.trackBottom){
  dragMovement = this.trackBottom;
}
this.contentObj.setTop(contentMovement);
this.dragObj.setTop(dragMovement);
this.scrollTimer = window.setTimeout(this.obj+".scroll("+speed+")",25);
}
ScrollObj.prototype.stopScroll = function(){
if(this.scrollTimer){
  window.clearTimeout(this.scrollTimer);
  this.scrollTimer = null;
}

本文来自泠云天天在线


}
ScrollObj.prototype.scrollJump = function(e){
var currentMouse = getYMouse(e);
var dragDistance = currentMouse - findPosY(this.trackObj);
var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;
this.dragObj.setTop(dragMovement);
var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);
this.contentObj.setTop(contentMovement);
}
ScrollObj.prototype.syncBarPosToContent = function(pos){
if (pos) {
  var dragMovement = this.trackTop-Math.round(pos*(this.trackLength/this.contentLength));
} else {
  var dragMovement = this.trackTop-Math.round(this.contentObj.getTop()*(this.trackLength/this.contentLength)); 
}
this.dragObj.setTop(dragMovement);
}
// findPosY
function findPosY(obj)
{
var curtop = 0;
if (obj.offsetParent)
{
  while (obj.offsetParent)
  { 内容来自泠云天天在线
  curtop += obj.offsetTop
  obj = obj.offsetParent;
  }
}
else if (obj.y)
  curtop += obj.y;
return curtop;
} 本文来自泠云天天在线

//  自定义
window.onload = function() {
    var div = document.getElementById('scrollerContainer'); // 这两句是让'scrollerContainer' 这里面的内容自动定位到最下面
  div.scrollTop = div.scrollHeight;  //  这两句是让'scrollerContainer' 这里面的内容自动定位到最下面 内容来自泠云天天在线

myScroll = new ScrollObj(7,28,96,"track","up","down","drag","scrollerContainer","scrollerContent");
}
</script>

copyright lyttzx.com

上面都是JS 我是从网上找到的。 现在设置了让DIV层中的内容显示在最下面。可是控制旁边的滚动条就反了。 我是想让他也自动下面 哎。能帮改改吗。
谢了 内容来自泠云天天在线

<style type="text/css">
#content1 {
margin:0; padding:0;
float:left;
width: 305px;
height: 147px;
font-size: 11px;
line-height: 24px;
color: #FFF;
}
/* scroller */
#scrollerContainer {
position:absolute; width:285px; height:121px; clip:rect(0,375px,290px,0); overflow:hidden; z-index:6;
}
#scrollerContent {
position:absolute; left:0; top:0; width:285px;
}
#scrollerButtons {
position: absolute;
top: 0px;
left: 287px;
width: 16px;
height: 114px;
}
#scrollerButtons #up {
position: absolute;
top: 0px;
left: 0;
width: 16px;
height: 16px;
background:#000000;
z-index: 2;
cursor:pointer;
}
#scrollerButtons #track {
position:absolute;
top: 16px;
width:16px;
height:82px;
background:url(images/dao_bg.GIF) no-repeat;
z-index: 3;
} 泠云工作室
#scrollerButtons #drag {
position: absolute;
top: 20px;
left: 2px;
width:12px;
height:10px;
background:#000000;
z-index: 4;
cursor:pointer;
}
#scrollerButtons #down {
position: absolute;
top: 98px;
left: 0;
width: 16px;
height: 16px;
background:#000000;
z-index: 5;
cursor:pointer;
}
</style>
<div id="scrollerContainer">
<div id="scrollerContent" style="color:#000000;"> <b>Natalia Mager Sacasa - Senior Director</b> <br />
<b>Vanessa Critchell - Director (West Coast)</b> <br />
<b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> <b>Vanessa Critchell - Director (West Coast)</b> <br /> 泠云工作室
最下面
</div></div>
<div id="scrollerButtons">
<div id="up"></div>
<div id="track"></div>
<div id="drag" style="top:20px; z-index: 4;"></div>
<div id="down"></div>
</div> 内容来自泠云天天在线

(责任编辑:泠云)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
发布者资料
编程狂 查看详细资料 发送留言 加为好友 用户等级:高级会员 注册时间:2009-10-07 08:10 最后登录:2010-09-08 15:09