使用Javascript简单实现图片无缝滚动


Posted in Javascript onDecember 05, 2014

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

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

1.innerHTML:设置或获取元素的html标签

2.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距

3.offsetWidth:设置或获取指定标签的宽度

4.setInterval():设置方法定时启动

5.clearInterval();清除定时器

效果图:

使用Javascript简单实现图片无缝滚动

先睹为快:demo

<!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>

很简洁实用的代码,小伙伴们根据自己的项目需求,适当美化下即可。

Javascript 相关文章推荐
JQuery中getJSON的使用方法
Dec 13 Javascript
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
JQueryEasyUI datagrid框架的基本使用
Apr 08 Javascript
jQuery层次选择器选择元素使用介绍
Apr 18 Javascript
简单掌握JavaScript中const声明常量与变量的用法
May 21 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 Javascript
vue几个常用跨域处理方式介绍
Feb 07 Javascript
webpack打包并将文件加载到指定的位置方法
Feb 22 Javascript
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 Javascript
微信小程序使用map组件实现解析经纬度功能示例
Jan 22 Javascript
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
深入分析js的冒泡事件
Dec 05 #Javascript
Javascript解析URL方法详解
Dec 05 #Javascript
jQuery不兼容input的change事件问题解决过程
Dec 05 #Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
Dec 05 #Javascript
jQuery前端框架easyui使用Dialog时bug处理
Dec 05 #Javascript
Javascript实现获取窗口的大小和位置代码分享
Dec 04 #Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 #Javascript
You might like
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
2018/08/22 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
详细解读Python中解析XML数据的方法
2015/10/15 Python
Django实现文件上传下载功能
2019/10/06 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
JAVA高级程序员面试题
2013/09/06 面试题
啤酒销售实习自我鉴定
2013/09/24 职场文书
公司新员工的演讲稿注意事项
2014/01/01 职场文书
国税会议欢迎词
2014/01/16 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书