JS实现兼容性较好的随屏滚动效果


Posted in Javascript onNovember 09, 2015

本文实例讲述了JS实现兼容性较好的随屏滚动效果。分享给大家供大家参考,具体如下:

代码中的参数解释如下:

id 你要滚动的内容的id
l 横坐标的位置 不写为紧贴右边
t 你要放在页面的那个位置默认是贴着底边 0是贴着顶边
f 1表示固定 不写或者0表示滚动。

本代码滚动时不会出现抖动,随着屏幕大小而变动

运行效果截图如下:

JS实现兼容性较好的随屏滚动效果

在线演示地址如下:

具体代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>随屏滚动</title>
<style>
 html,body{
  padding:0;
  margin:0;
 }
</style>
</head>
<body>
 <div id="aa" style="width:200px;height:200px;background:#c0c0c0;" >我在随屏滚</div>
 <div id="bb" style="width:200px;height:200px;background:#c0c0c0;" >我静止不动</div>
 <div style="width:100%;height:500px;background:#000"></div>
 <div style="width:100%;height:500px;background:green"></div>
 <div style="width:100%;height:500px;background:red"></div>
</body>
</html>
<script>
function scroll(p){
 var d = document,dd = d.documentElement,db = d.body,w = window,o = d.getElementById(p.id),ie = /msie/i.test(navigator.userAgent),style;
  if(o){
  o.style.cssText +=";position:"+(p.f&&!ie?'fixed':'absolute')+";"+(p.l==undefined?'right:0;':'left:'+p.l+'px;')+(p.t!=undefined?'top:'+p.t+'px':'bottom:0');
   if(p.f&&ie){
   o.style.cssText +=';left:expression(body.scrollLeft + '+(p.l==undefined?db.clientWidth-o.offsetWidth:p.l)+' + "px");top:expression(body.scrollTop +'+(p.t==undefined?db.clientHeight-o.offsetHeight:p.t)+'+ "px" );'
    db.style.cssText +=";background-image:url(about:blank);background-attachment:fixed;"
   }else{
    if(!p.f){
     w.onresize = w.onscroll = function(){
      var timer,timer1;
      return function(){
       if(timer)
        clearTimeout(timer);
       timer = setTimeout(function(){
        timer1 = setInterval(function(){
         var st = db.scrollTop,c;
         c = st - o.offsetTop + (p.t!=undefined?p.t:(w.innerHeight||db.clientHeight)-o.offsetHeight);
         if(c!=0){
          o.style.top = o.offsetTop + Math.ceil(Math.abs(c)/10)*(c<0?-1:1) + 'px';
         }else{
          clearInterval(timer1);  
         }
        },10)
       },100)//控制滚动的频率越大频率越慢
      }
     }()
    }
   }
  } 
 }
 scroll({
  id:'aa'
 })
  scroll({
  id:'bb',
  l:0,
  t:200,
  f:1
  })
</script>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
基于jQuery的图片大小自动适应实现代码
Nov 17 Javascript
js的Boolean对象初始值示例
Mar 04 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 Javascript
javascript实现查找数组中最大值方法汇总
Feb 13 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
AngularJS extend用法详解及实例代码
Nov 15 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
Nov 22 Javascript
javascript实现最长公共子序列实例代码
Feb 05 Javascript
在vscode里使用.vue代码模板的方法
Apr 28 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
Mar 12 Javascript
使vue实现jQuery调用的两种方法
May 12 jQuery
详解Vue3.0 前的 TypeScript 最佳入门实践
Jun 18 Javascript
初步了解javascript面向对象
Nov 09 #Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
Nov 09 #Javascript
JS实现网页每隔3秒弹出一次对话框的方法
Nov 09 #Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
Nov 09 #Javascript
JavaScript实现同时调用多个函数的方法
Nov 09 #Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 #Javascript
jquery实现简易的移动端验证表单
Nov 08 #Javascript
You might like
如何正确理解PHP的错误信息
2006/10/09 PHP
PHP中Session的概念
2006/10/09 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php的ddos攻击解决方法
2015/01/08 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
php计算整个目录大小的方法
2015/06/01 PHP
PHP实现的简单缓存类
2015/07/29 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
Django工程的分层结构详解
2019/07/18 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
中专生自我鉴定书范文
2013/12/28 职场文书
发展部经理职责规定
2014/02/22 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
APP界面设计技巧和注意事项
2022/04/29 杂记