js实现图片无缝滚动


Posted in Javascript onDecember 23, 2015

js无缝滚动效果几乎在任何网页上都能看到它的身影,有的可能是使用插件,其实使用原始的javascript比较简单。

主要的是使用js位置知识。

  • 1.innerHTML:设置或获取元素的html标签
  • 2.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距
  • 3.offsetWidth:设置或获取指定标签的宽度
  • 4.setInterval():设置方法定时启动
  • 5.clearInterval();清除定时器

效果图:

js实现图片无缝滚动

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>javascript scroll制作</title>
</head>
<body>
<style>
  /*conment*/
  *{
  margin: 0;
  padding: 0;
 }
 img{max-width: 100%;}
 .container{
  max-width: 620px;
  margin: 0 auto;
  padding-top: 50px;
 }
 .text-center{text-align: center;}
 .list-inline li{
  display: inline-block;
 }
 .hide{display: none;}
 hr{
  margin:20px 0; 
 }
 .tag{
  background-color: #ccc;
  padding: 5px 0;
 }
 .tag li{
  padding: 0 10px;
  border-left: 1px solid #fff;
  cursor:pointer;
 }
 .tag li:first-child{
  border-left: transparent;
 }
 .tag li.active{
  background-color: #ddd;
 }
 .scroll{
  position: relative;
  padding: 10px;
  margin-bottom: 20px;
  background-color: #ddd;
 }
 .wrap{
  overflow: hidden; 
 }
 .content{
  min-width: 3000px;
  height: 200px;
 }
 .content ul{
  float: left;
 }
 .content ul li{
  display: inline-block;
  max-width: 200px;
 }
 #prev,#next{
  width: 50px;
  height: 50px; 
  margin-top: -25px; 
  background-color: #ccc; 
  line-height: 50px; 
  text-align: center;
  cursor: pointer; 
 }
 #prev{
  position: absolute;
  left: 0;
  top:50%;
  border-radius: 0 25px 25px 0;
 }
 #next{
  position: absolute;
  right: 0;
  top:50%; 
  border-radius: 25px 0 0 25px;
 }
</style>
  <div class="container">
    <h1 class="text-center">图片滚动制作</h1>
    <hr>
  <div class="scroll">
   <div class="wrap" id="wrap">
    <div id="content" class="content" >
     <ul id="list1">
      <li> <img src="freelance.gif" alt=""> </li>
      <li> <img src="button.gif" alt=""></li>
      <li> <img src="load.gif" alt=""></li>
      <li> <img src="straw.gif" alt=""></li>   
     </ul>
     <ul id="list2">
     </ul>
    </div>
   </div>

   <div id="prev">
    prev
   </div> 
   <div id="next">
    next
   </div>   
  </div> 
  </div>
<script>
 var wrap=document.getElementById('wrap');
 var list1=document.getElementById('list1');
 var list2=document.getElementById('list2');
 var prev=document.getElementById('prev');
 var next=document.getElementById('next');
 //创建复制一份内容列表
 list2.innerHTML=list1.innerHTML;
 //向左循环滚动
 function scroll(){
  if(wrap.scrollLeft>=list2.offsetWidth){
   wrap.scrollLeft=0;
  }
  else{
   wrap.scrollLeft++;
  }
 }
  timer = setInterval(scroll,1);
 //鼠标停留使用clearInterval()
 wrap.onmouseover=function(){
  clearInterval(timer);
 }
 wrap.onmouseout=function(){
  timer = setInterval(scroll,1);
 }
 //向左加速
 function scroll_l(){
  if(wrap.scrollLeft>=list2.offsetWidth){
   wrap.scrollLeft=0;
  }
  else{
   wrap.scrollLeft++;
  }
 }
 //向右滚动
 function scroll_r(){
  if(wrap.scrollLeft<=0){
   wrap.scrollLeft+=list2.offsetWidth;
  }
  else{
   wrap.scrollLeft--;
  }
 }  
 prev.onclick=function(){
  clearInterval(timer);
  change(0)
 }
 next.onclick=function(){
  clearInterval(timer);
  change(1)
 }
 function change(r){
  if(r==0){
   timer = setInterval(scroll_l,60);
   wrap.onmouseout = function(){
    timer = setInterval(scroll_l,60);
   }
  }
  if(r==1){
   timer = setInterval(scroll_r,60);
   wrap.onmouseout = function(){
    timer = setInterval(scroll_r,60);
   }
  } 
 } 
</script> 
</body>
</html>

以上就是为大家分享的js实现图片无缝滚动代码,希望对大家的学习javascript程序设计有所帮助。

Javascript 相关文章推荐
Node.js文件操作详解
Aug 16 Javascript
JSON取值前判断
Dec 23 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
Dec 30 Javascript
BootStrap便签页的简单应用
Jan 06 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
Jan 13 Javascript
微信小程序上传图片实例
May 28 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
JavaScript原型链与继承操作实例总结
Aug 24 Javascript
微信小程序实现的一键拨号功能示例
Apr 24 Javascript
Vue+ElementUI table实现表格分页
Dec 14 Javascript
js面向对象之实现淘宝放大镜
Jan 15 Javascript
原生js实现轮播图特效
May 04 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
Dec 23 #Javascript
js判断文本框输入的内容是否为数字
Dec 23 #Javascript
javascript新闻跑马灯实例代码
Jul 29 #Javascript
javascript动态添加checkbox复选框的方法
Dec 23 #Javascript
js仿微博实现统计字符和本地存储功能
Dec 22 #Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 #Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 #Javascript
You might like
PHP简单获取视频预览图的方法
2015/03/12 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
测试你的JS的掌握程度的代码
2009/12/09 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
对python实现合并两个排序链表的方法详解
2019/01/23 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
给老师的道歉信
2014/01/11 职场文书
俄罗斯商务邀请函
2014/01/26 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
给学校建议书范文
2014/05/13 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
医院合作协议书
2014/08/19 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书
邀请函范文
2015/02/02 职场文书
毕业生个人总结
2015/02/28 职场文书
通用员工手册范本
2015/05/14 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
债务追讨律师函
2015/06/24 职场文书
高一军训口号
2015/12/25 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python