这篇文章主要介绍了 js 实现分享到随页面滚动而滑动效果的方法, 实例分析了 javascript 操作页面元素滚动效果的方法, 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
本文实例讲述了 js 实现分享到随页面滚动而滑动效果的方法。分享给大家供大家参考。具体如下:
页面向上向下滚动,分享到的模块随着滑动。
要点:
- var scrtop =document.documentElement.scrollTop||document.body.scrollTop;
- var height = document.documentElement.clientHeight||document.body.clientHeight;
- var top = scrtop + (height - jb51.offsetHeight)/2;
- top = parseInt(top);
获得页面垂直居中的位置
上代码:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="gb2312" />
- <title>
- 无标题文档
- </title>
- <style>
- body{margin:0; padding:0; font:12px/1.5 arial; height:2000px;} #jb51{width:100px;
- height:200px; line-height:200px; text-align:center; border:1p solid #ccc;
- background:#f5f5f5; position:absolute; left:-100px; top:0;} #jb51_tit{position:absolute;
- right:-20px; top:60px; width:20px; height:60px; padding:10px 0; background:#06c;
- text-align:center; line-height:18px; color:#fff;}
- </style>
- <script>
- window.onload = function() {
- var jb51 = document.getElementById("jb51");
- jb51.onmouseover = function() {
- startrun(jb51, 0, "left")
- }
- jb51.onmouseout = function() {
- startrun(jb51, -100, "left")
- }
- window.onscroll = window.onresize = function() {
- var scrtop = document.documentElement.scrollTop || document.body.scrollTop;
- var height = document.documentElement.clientHeight || document.body.clientHeight;
- var top = scrtop + (height - jb51.offsetHeight) / 2;
- top = parseInt(top);
- startrun(jb51, top, "top")
- }
- }
- var timer = null
- function startrun(obj, target, direction) {
- clearInterval(timer);
- timer = setInterval(function() {
- var speed = 0;
- if (direction == "left") {
- speed = (target - obj.offsetLeft) / 8;
- speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
- if (obj.offsetLeft == target) {
- clearInterval(timer);
- } else {
- obj.style.left = obj.offsetLeft + speed + "px";
- }
- }
- if (direction == "top") {
- speed = (target - obj.offsetTop) / 8;
- speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
- if (obj.offsetTop == target) {
- clearInterval(timer);
- } else {
- obj.style.top = obj.offsetTop + speed + "px";
- }
- document.title = obj.offsetTop + ',' + target + ',' + speed;
- }
- },
- 30)
- }
- </script>
- </head>
- <body>
- <div id="jb51">
- 分享到内容
- <span id="jb51_tit">
- 分享到
- </span>
- </div>
- </body>
- </html>
希望本文所述对大家的 javascript 程序设计有所帮助。
来源: