全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JS无缝滚动效果实现方法分析

本文实例讲述了JS无缝滚动效果实现方法。分享给大家供大家参考,具体如下:

效果:

1.默认缓慢往左滚动

2.放到左箭头上还是向左滚动,放到右箭头上向右滚动

3.放到图片上停止滚动,移出继续滚动

思路:

1.计算图片列表ul的宽度

2.开启定时器,使其向左边距不断增大,造成向左运动的效果

3.图片列表复制一份,向左移动时,当左边距大于一份的宽度时,把它的左边距拉回到0。向右移动时,当左边距大于0时,把它的左边距拉到整个两份图片列表一半的宽度(即一份的宽度)。(拉的瞬间很快,用户察觉不到,造成一种无缝滚动的假象)

4.offsetLeft值的正负决定往哪边移动

5.放到图片上停止这个定时器,移开再开启

window.onload=function(){
 var odiv=document.getElementById('div');
 var oul=odiv.getElementsByTagName('ul')[0];
 var oli=oul.getElementsByTagName('oul');
 var btn=document.getElementsByTagName('btn');
 var ispeed=-1;
 var timer=null;
 oul.innerHTML+=oul.innerHTML; //图片列表复制一份
 oul.style.width=oli[0].offsetWidth*oli.length+'px'; //不算出ul的宽度的话,运动过程中后面的会先出现再加载图片,有一种不流畅感,切图片过多会分行,由外面的div决定宽度
 timer=setInterval(function(){
  oul.style.left=oul.offsetLeft+ispeed+'px';  //offsetLeft输出的是数字不带单位,右边也用oul.style.left输出的是字符串,而不是数值,而且它取得是行间样式,无用
  if(oul.offsetLeft<-oul.offsetWidth/2){ //判断时也可以用.style.left或.style.width?(不确定)
   oul.style.left=0;
  }
  else if(oul.offsetLeft>0){
   oul.style.left=-oul.offsetWidth/2;
  }
 ),30};
 btn[0].onmouseover=function(){
  ispeed=-1;
 };
 btn[1].onmouseover=function(){
  ispeed=1;
 };
 oul.onmouseover=function(){
  clearInterval(timer);
 };
 oul.onmouseout=function(){
  timer=setInterval(function(){
   oul.style.left=oul.offsetLeft+ispeed+'px';
   if(oul.offsetLeft<-oul.offsetWidth/2){
    oul.style.left=0;
   }
   else if(oul.offsetLeft>0){
    oul.style.left=-oul.offsetWidth/2;
   }
  ),30}; //如果把速度变大,而定时器的时间也变大是否可以达到相同效果呢?答案是不能。会变成一卡一卡
 };
};

注:这样子取得的宽度是不包含margin的,所以图片间边距的写法可以是li的宽度大于img的宽度,li的宽度-img的宽度,就是两边的边距和

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

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


# JS  # 无缝滚动  # 简单实现js间歇或无缝滚动效果  # js超时调用setTimeout和间歇调用setInterval实例分析  # javascript学习笔记(十五) js间歇调用和超时调用  # javascript动画系列之模拟滚动条  # js实现页面刷新滚动条位置不变  # JS实现的相册图片左右滚动完整实例  # JS实现判断滚动条滚到页面底部并执行事件的方法  # js操作滚动条事件实例  # js判断滚动条是否已到页面最底部或顶部实例  # JS实现单行文字不间断向上滚动的方法  # js网页滚动条滚动事件实例分析  # JS实现间歇滚动的运动效果实例  # 的是  # 变大  # 行间  # 相关内容  # 有一种  # 可以用  # 遍历  # 感兴趣  # 数据结构  # 给大家  # 使其  # 不确定  # 不带  # 这样子  # 更多关于  # 再加  # 拉到  # 可以达到  # 所述  # 程序设计 


相关文章: 如何在万网自助建站平台快速创建网站?  如何在香港服务器上快速搭建免备案网站?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  平台云上自助建站如何快速打造专业网站?  广平建站公司哪家专业可靠?如何选择?  制作企业网站建设方案,怎样建设一个公司网站?  代购小票制作网站有哪些,购物小票的简要说明?  广州商城建站系统开发成本与周期如何控制?  如何实现建站之星域名转发设置?  建站上市公司网站建设方案与SEO优化服务定制指南  如何快速重置建站主机并恢复默认配置?  如何通过虚拟主机快速完成网站搭建?  独立制作一个网站多少钱,建立网站需要花多少钱?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  建站之星如何快速更换网站模板?  如何高效配置香港服务器实现快速建站?  制作网站的软件免费下载,免费制作app哪个平台好?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  如何在阿里云高效完成企业建站全流程?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何零基础开发自助建站系统?完整教程解析  建站主机服务器选购指南:轻量应用与VPS配置解析  盐城做公司网站,江苏电子版退休证办理流程?  建站之星3.0如何解决常见操作问题?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何使用Golang table-driven基准测试_多组数据测量函数效率  小型网站建站如何选择虚拟主机?  如何在Golang中使用replace替换模块_指定本地或远程路径  西安专业网站制作公司有哪些,陕西省建行官方网站?  网站制作新手教程,新手建设一个网站需要注意些什么?  如何通过VPS建站实现广告与增值服务盈利?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  MySQL查询结果复制到新表的方法(更新、插入)  已有域名如何快速搭建专属网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何通过虚拟主机空间快速建站?  ,怎么在广州志愿者网站注册?  寿县云建站:智能SEO优化与多行业模板快速上线指南  香港网站服务器数量如何影响SEO优化效果?  建站之星官网登录失败?如何快速解决?  如何在IIS管理器中快速创建并配置网站?  如何通过西部数码建站助手快速创建专业网站?  如何快速生成ASP一键建站模板并优化安全性?  建站之星安装后如何自定义网站颜色与字体?  建站之星如何优化SEO以实现高效排名?  导航网站建站方案与优化指南:一站式高效搭建技巧解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。