DIV+CSS结合js控制页面滚动的效果 - IT生活资讯网 - 专注IT精品资讯 关注IT生活 提供丰富有价值的IT教程 - TechFeel.Com

摩族智能手机社区 动力互联科技提供带宽支持

中国IDC圈

手机频道智能手机 电子书 铃声 主题 游戏  IDC主机托管域名 空间 邮局 托管

 
您的位置:首页 > 网页设计 > Div+CSS >

DIV+CSS结合js控制页面滚动的效果

整理:互联网 来源:TechFeel我要收藏】 进入论坛 发布时间:2007-08-19 15:36:29

DIV+CSS结合js控制页面滚动的效果,非常实用,兼容ie,ff。

 <head>zqsTechFeel
<style type="text/css">zqsTechFeel
#container{zqsTechFeel
  text-align: left;zqsTechFeel
  background-color: #faf7ec;zqsTechFeel
  width: 500px;zqsTechFeel
  margin: 20px auto 0 auto;zqsTechFeel
  padding: 0;zqsTechFeel
  font-family:Arial, Helvetica, sans-serif;zqsTechFeel
  font-size:12px;zqsTechFeel
}zqsTechFeel
#block0, #block1, #block2, #block3, #block4, #block5 {zqsTechFeel
  border-top: solid 1px #785a3c;zqsTechFeel
  margin: 0;zqsTechFeel
  padding: 10px;zqsTechFeel
}zqsTechFeel
.active {zqsTechFeel
  background-color: #fff;zqsTechFeel
}zqsTechFeel
.visited {zqsTechFeel
  background-color: #ede7da;zqsTechFeel
}zqsTechFeel
#block0, #block0.active, #block0.visited {zqsTechFeel
  text-align: center;zqsTechFeel
  background-color: #a0dcf8;zqsTechFeel
  border-top: none;zqsTechFeel
  border-bottom: solid 4px #785a3c;zqsTechFeel
}zqsTechFeel
</style>zqsTechFeel
<script>zqsTechFeel
var ScrollWin = {zqsTechFeel
  w3c : document.getElementById,zqsTechFeel
  iex : document.all,zqsTechFeel
  scrollLoop : false,zqsTechFeel
  scrollInterval : null, // setInterval idzqsTechFeel
  currentBlock : null,   // object referencezqsTechFeel
  getWindowHeight : function(){zqsTechFeel
    if(this.iex) return (document.documentElement.clientHeight) ? zqsTechFeel
document.documentElement.clientHeight : document.body.clientHeight;zqsTechFeel
    else return window.innerHeight;zqsTechFeel
  },zqsTechFeel
  getScrollLeft : function(){zqsTechFeel
    if(this.iex) return (document.documentElement.scrollLeft) ? zqsTechFeel
document.documentElement.scrollLeft : document.body.scrollLeft;zqsTechFeel
    else return window.pageXOffset;zqsTechFeel
  },zqsTechFeel
  getScrollTop : function(){zqsTechFeel
    if(this.iex) return (document.documentElement.scrollTop) ? zqsTechFeel
document.documentElement.scrollTop : document.body.scrollTop;zqsTechFeel
    else return window.pageYOffset;zqsTechFeel
  },zqsTechFeel
  getElementYpos : function(el){zqsTechFeel
    var y = 0;zqsTechFeel
    while(el.offsetParent){zqsTechFeel
      y += el.offsetTopzqsTechFeel
      el = el.offsetParent;zqsTechFeel
    }zqsTechFeel
    return y;zqsTechFeel
  },zqsTechFeel
  scroll : function(num){zqsTechFeel
    if(!this.w3c){zqsTechFeel
      location.href = "#"+this.anchorName+num;zqsTechFeel
      return;zqsTechFeel
    }zqsTechFeel
    if(this.scrollLoop){zqsTechFeel
      clearInterval(this.scrollInterval);zqsTechFeel
      this.scrollLoop = false;zqsTechFeel
      this.scrollInterval = null;zqsTechFeel
    }zqsTechFeel
    if(this.currentBlock != null) this.currentBlock.className = this.offClassName;zqsTechFeel
    this.currentBlock = document.getElementById(this.blockName+num);zqsTechFeel
    this.currentBlock.className = this.onClassName;zqsTechFeel
    var doc = document.getElementById(this.containerName);zqsTechFeel
    var documentHeight = this.getElementYpos(doc) + doc.offsetHeight;zqsTechFeel
    var windowHeight = this.getWindowHeight();zqsTechFeel
    var ypos = this.getElementYpos(this.currentBlock);zqsTechFeel
    if(ypos > documentHeight - windowHeight) ypos = documentHeight - windowHeight;zqsTechFeel
    this.scrollTo(0,ypos);zqsTechFeel
  },zqsTechFeel
  scrollTo : function(x,y){zqsTechFeel
    if(this.scrollLoop){zqsTechFeel
      var left = this.getScrollLeft();zqsTechFeel
      var top = this.getScrollTop();zqsTechFeel
      if(Math.abs(left-x) <= 1 && Math.abs(top-y) <= 1){zqsTechFeel
        window.scrollTo(x,y);zqsTechFeel
        clearInterval(this.scrollInterval);zqsTechFeel
        this.scrollLoop = false;zqsTechFeel
        this.scrollInterval = null;zqsTechFeel
      }else{zqsTechFeel
        window.scrollTo(left+(x-left)/10, top+(y-top)/10);   zqsTechFeel
      }zqsTechFeel
    }else{zqsTechFeel
      this.scrollInterval = setInterval("ScrollWin.scrollTo("+x+","+y+")",20);    zqsTechFeel
      this.scrollLoop = true;zqsTechFeel
    }zqsTechFeel
  }zqsTechFeel
};zqsTechFeel
ScrollWin.containerName = "container"; zqsTechFeel
ScrollWin.anchorName    = "anchor";   zqsTechFeel
ScrollWin.blockName     = "block";     zqsTechFeel
ScrollWin.onClassName   = "active";    zqsTechFeel
ScrollWin.offClassName  = "visited";   zqsTechFeel
</script>zqsTechFeel
</head>

zqsTechFeel
<body>zqsTechFeel
<div align="center">zqsTechFeel
<div id="container">zqsTechFeel
  <a name="anchor0"></a>zqsTechFeel
  <div id="block0">zqsTechFeel
    <a href="javascript:ScrollWin.scroll('1')">链接 1</a> |zqsTechFeel
    <a href="javascript:ScrollWin.scroll('2')">链接 2</a> |zqsTechFeel
    <a href="javascript:ScrollWin.scroll('3')">链接 3</a> |zqsTechFeel
    <a href="javascript:ScrollWin.scroll('4')">链接 4</a> |zqsTechFeel
    <a href="javascript:ScrollWin.scroll('5')">链接 5</a>zqsTechFeel
  </div>zqsTechFeel
  <a name="anchor1"></a>zqsTechFeel
  <div id="block1">zqsTechFeel
    <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">顶部</a> zqsTechFeel
  链接 1</h3>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
  </div>zqsTechFeel
  <a name="anchor2"></a>zqsTechFeel
  <div id="block2">zqsTechFeel
    <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">顶部</a> zqsTechFeel
  链接 2</h3>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
  </div>zqsTechFeel
  <a name="anchor3"></a>zqsTechFeel
  <div id="block3">zqsTechFeel
    <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">顶部</a> zqsTechFeel
  链接 3</h3>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
  </div>zqsTechFeel
  <a name="anchor4"></a>zqsTechFeel
  <div id="block4">zqsTechFeel
    <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">顶部</a> zqsTechFeel
  链接 4</h3>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
  </div>zqsTechFeel
  <a name="anchor5"></a>zqsTechFeel
  <div id="block5">zqsTechFeel
    <h3><a href="#" onclick="javascript:ScrollWin.scroll('0'); return false;">顶部</a> zqsTechFeel
  链接 5</h3>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
    <p>内容</p>zqsTechFeel
  </div>zqsTechFeel
</div>zqsTechFeel
</div>zqsTechFeel
</body> zqsTechFeel

关键字: DIV+CSS,滚动,效果

评论】【 】【打印】【关闭

※ 相关信息
 ·如何用CSS实现文字环绕图片的效果  (2007-08-19 15:33:31)
 ·div+css布局时应注意的几个浏览器兼容性问题  (2007-08-18 11:34:51)
 ·Illustrator CS制作刺绣效果  (2007-08-16 10:39:41)
 ·fw2004学习:立体感文字效果  (2007-08-16 04:19:36)
 ·Photoshop 制作草地效果简明教程  (2007-08-13 07:25:50)
 ·30余个精典的CSS导航菜单效果  (2007-08-13 06:20:42)
 ·Div+CSS布局入门教程 页面制作-用好border和clear  (2007-08-13 06:16:06)
 ·Div+CSS布局入门教程 页面顶部制作之二  (2007-08-13 06:13:13)
 ·Div+CSS布局入门教程 页面顶部制作之一  (2007-08-13 05:57:04)
 ·Div+CSS布局入门教程  (2007-08-13 05:47:52)
发表评论
用户名: 密码:
验证码: 匿名发表
TechFeel.Com 旗下网站:  摩族智能手机网 | 中国教程在线 | 动力互联科技
网站留言关于我们 | 广告服务| 合作媒体 | 联系我们 | 免责声明网站地图
Copyright © 2005 - 2007 All Rights Reserved
冀ICP备 05024357