简单实现js间歇或无缝滚动效果


Posted in Javascript onJune 29, 2016

间歇、无缝滚动效果(用gif录制的效果不是很好,有兴趣的可以down代码),具体内容如下

简单实现js间歇或无缝滚动效果

代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>无缝滚动</title>
 <style>
  *{margin:0;padding:0;}
  .box{width: 500px;height: 400px;margin:40px auto;background: #ccc;overflow: hidden;}
  .block{position: relative;width: 500px;height: 400px;overflow: hidden;}
  .item{height: 40px;background: red;color: #fff;line-height: 40px;text-align: center;}
  .item:nth-child(2n){background: #000}
 </style>
 <script>
  var scrollUp=(function(){
   return function(json){
    var objScroll = document.getElementById(json.id);
    objScroll.scrollTop = 0;
    objScroll.innerHTML += objScroll.innerHTML;
    if(json.on){
     function scrollIng(){
      if(objScroll.scrollTop >= objScroll.scrollHeight) {
       objScroll.scrollTop = 0;
      }else{
       objScroll.scrollTop ++; 
      } 
     }
     var myScroll = setInterval(function(){scrollIng()},30);
     objScroll.onmouseover = function(){
      clearInterval(myScroll);
     }
     objScroll.onmouseout = function(){
      myScroll = setInterval(function(){scrollIng()},30);
     }
    }else{
     var timer;
     function startScroll(){
      timer=setInterval(function(){scrollUp()},30);
      objScroll.scrollTop++;
     }
     function scrollUp(){
      if(objScroll.scrollTop % json.height==0){
       clearInterval(timer);
       setTimeout(startScroll,2000);
      }else{
       objScroll.scrollTop++;
       if(objScroll.scrollTop >= objScroll.scrollHeight/2){
        objScroll.scrollTop =0;
       }
      }
     }
     setTimeout(startScroll,1000);
    }
   }
  })()
  window.onload=function(){
   //on:间歇滚动/无缝滚动 height:间歇滚动的高度
   scrollUp({on:true,id:'block'});
   scrollUp({id:'block2',height:120});
  }
  
 </script>
</head>
<body>
 <div class="box">
  <div class="block" id="block">
   <div class="item">1无缝滚动</div>
   <div class="item">2无缝滚动</div>
   <div class="item">3无缝滚动</div>
   <div class="item">4无缝滚动</div>
   <div class="item">5无缝滚动</div>
   <div class="item">6无缝滚动</div>
   <div class="item">7无缝滚动</div>
   <div class="item">8无缝滚动</div>
   <div class="item">9无缝滚动</div>
   <div class="item">10无缝滚动</div>
   <div class="item">11无缝滚动</div>
   <div class="item">12无缝滚动</div>
   <div class="item">13无缝滚动</div>
   <div class="item">14无缝滚动</div>
   <div class="item">15无缝滚动</div>
  </div>
 </div>
 <div class="box">
  <div class="block" id="block2">
   <div class="item">1间歇滚动</div>
   <div class="item">2间歇滚动</div>
   <div class="item">3间歇滚动</div>
   <div class="item">4间歇滚动</div>
   <div class="item">5间歇滚动</div>
   <div class="item">6间歇滚动</div>
   <div class="item">7间歇滚动</div>
   <div class="item">8间歇滚动</div>
   <div class="item">9间歇滚动</div>
   <div class="item">10间歇滚动</div>
   <div class="item">11间歇滚动</div>
   <div class="item">12间歇滚动</div>
   <div class="item">13间歇滚动</div>
   <div class="item">14间歇滚动</div>
   <div class="item">15间歇滚动</div>
  </div>
 </div>
</body>
</html>

注意点:
1.盒子块要css 溢出隐藏:overflow:hidden
2.有两个功能:间歇滚动/无缝滚动
3.先复制一块一模一样的代码,无缝滚动:执行定时器一直增加scrollTop值,当scrollTop值大于盒子高度,在设置scrollTop为0,重新来过。间歇滚动在此基础上加了setTimeout,间歇执行,在scrollTop到达指定的height停止
4.疑问:代码中setInterval(function(){scrollIng()},30);这样写才可以执行,setInterval('scrollIng()',30);这样就不行,有没有大神指导下,两者有啥区别?是啥机制?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
不安全的常用的js写法
Sep 15 Javascript
仿百度输入框智能提示的js代码
Aug 22 Javascript
jQuery的text()方法用法分析
Dec 20 Javascript
JavaScript中的splice方法用法详解
Jul 20 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
Avalonjs 实现简单购物车功能(实例代码)
Feb 07 Javascript
JS实现课堂随机点名和顺序点名
Mar 09 Javascript
详解React 16 中的异常处理
Jul 28 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
微信小程序实现人脸检测功能
May 25 Javascript
详解javascript 正则表达式之分组与前瞻匹配
May 30 Javascript
JSON.stringify()方法讲解
Jan 31 Javascript
js精准的倒计时函数分享
Jun 29 #Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
Jun 29 #Javascript
RequireJS多页面应用实例分析
Jun 29 #Javascript
全面了解JS中的匿名函数
Jun 29 #Javascript
大型JavaScript应用程序架构设计模式
Jun 29 #Javascript
基于JS模仿windows文件按名称排序效果
Jun 29 #Javascript
JavaScript中闭包的写法和作用详解
Jun 29 #Javascript
You might like
PHP 函数执行效率的小比较
2010/10/17 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
javascript中indexOf技术详解
2015/05/07 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
Python内置数据类型详解
2014/08/18 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
法律系毕业生自荐信范文
2014/03/27 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
科学育儿宣传标语
2014/10/08 职场文书
如何拟写通知正文?
2019/04/02 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript