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 $.get 的妙用 访问本地文本文件
Jul 12 Javascript
jQuery滚动新闻实现代码
Jun 26 Javascript
Highcharts入门之简介
Aug 02 Javascript
JS基于正则表达式实现的密码强度验证功能示例
Sep 21 Javascript
利用vue.js实现被选中状态的改变方法
Feb 08 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 Javascript
React Native中Mobx的使用方法详解
Dec 04 Javascript
解决layui动态加载复选框无法选中的问题
Sep 20 Javascript
在vue中使用echars实现上浮与下钻效果
Nov 08 Javascript
js实现微信聊天效果
Aug 09 Javascript
React实现全选功能
Aug 25 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
Oct 13 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页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
pandas中Timestamp类用法详解
2017/12/11 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
Python银行系统实战源码
2019/10/25 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
Python3如何判断三角形的类型
2020/04/12 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
英国儿童图书网站:Scholastic
2017/03/26 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
客服专员岗位职责范本
2013/11/29 职场文书
交通事故协议书
2014/04/15 职场文书
产品包装策划方案
2014/05/18 职场文书
廉政承诺书2015
2015/04/28 职场文书
交通事故协议书范本
2016/03/19 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL