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 相关文章推荐
收集的网上用的ajax之chat.js文件
Apr 08 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 Javascript
jQuery拖动布局其结果保存到数据库
Oct 09 Javascript
JavaScript实现的背景自动变色代码
Oct 17 Javascript
整理Javascript函数学习笔记
Dec 01 Javascript
JavaScript基础知识之方法汇总结
Jan 24 Javascript
json对象与数组以及转换成js对象的简单实现方法
Jun 24 Javascript
JS Canvas定时器模拟动态加载动画
Sep 17 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
Vue实现点击箭头上下移动效果
Jun 11 Javascript
JS代码简洁方式之函数方法详解
Jul 28 Javascript
JavaScript缓动动画函数的封装方法
Nov 25 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上传图片、删除图片实现代码
2010/05/12 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
详解js中Array的方法及技巧
2018/09/12 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
python提取内容关键词的方法
2015/03/16 Python
python fabric使用笔记
2015/05/09 Python
使用Python读取大文件的方法
2018/02/11 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
如何保障Web服务器安全
2014/05/05 面试题
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
文字自荐书范文
2014/02/10 职场文书
高中军训第一天感言
2014/03/06 职场文书
我爱读书演讲稿
2014/05/07 职场文书
骨干教师考核方案
2014/05/09 职场文书
自我管理的活动方案
2014/08/25 职场文书
学习型党组织心得体会
2014/09/12 职场文书
法人委托书范本格式
2014/09/15 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
旅游投诉信范文
2015/07/02 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书