使用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 相关文章推荐
Auntion-TableSort国人写的一个javascript表格排序的东西
Nov 12 Javascript
javascript 操作Word和Excel的实现代码
Oct 26 Javascript
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
整理Javascript事件响应学习笔记
Dec 02 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
详解JavaScript添加给定的标签选项
Sep 17 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
vue自动路由-单页面项目(非build时构建)
Apr 30 Javascript
angular4+百分比进度显示插件用法示例
May 05 Javascript
vue-cli配置全局sass、less变量的方法
Jun 06 Javascript
深入分析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
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php 类自动载入的方法
2015/06/03 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
php源码的使用方法讲解
2019/09/26 PHP
JSON 数据格式介绍
2012/01/13 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
js实现点赞效果
2020/03/16 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python实现名片管理系统
2018/11/29 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
狮子林导游词
2015/02/03 职场文书
2015年保送生自荐信
2015/03/24 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
工作证明书
2015/06/15 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书