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

 更新时间:2014年12月05日 10:20:55   投稿:hebedich  
本文简单介绍了使用原生javascript实现简单的图片无缝滚动的方法,并附上示例代码,推荐给大家,直接可以用在项目中的。

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

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

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

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

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

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

5.clearInterval();清除定时器

效果图:

先睹为快: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拖动层Div代码

    JavaScript拖动层Div代码

    本文主要介绍了JavaScript拖动层Div的代码实例。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • js获取本机的外网/广域网ip地址完整源码

    js获取本机的外网/广域网ip地址完整源码

    通过js获取本机的外网和广域网ip地址的方法有很多,本文为大家介绍个不错的方法,希望对大家有所帮助
    2013-08-08
  • SVG描边动画

    SVG描边动画

    本文主要介绍了SVG描边动画的相关实例,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 常用的JavaScript WEB操作方法分享

    常用的JavaScript WEB操作方法分享

    这篇文章主要介绍了常用的JavaScript WEB操作方法分享,包含数组方法集、cookie方法集、url方法集、正则表达式方法集、字符串方法集、加密方法集、日期方法集等常用操作方法,需要的朋友可以参考下
    2015-02-02
  • 离开页面时检测表单元素是否被修改,提示保存的js代码

    离开页面时检测表单元素是否被修改,提示保存的js代码

    离开页面时,检测表单元素是否被修改,然后给出提示.防止用户错失修改的机会,提高用户体验。
    2010-08-08
  • js获取鼠标位置杂谈附多浏览器兼容代码

    js获取鼠标位置杂谈附多浏览器兼容代码

    最近在搞一个AJAX的小功能,目的是用浮动div框显示当前鼠标下控件的详细信息,其中获得鼠标位置这块害得我走了很多冤枉路,因为压根没有想到我下面提到的第二点的区别,所以我的页面出来总是找不到我之前定义的那个div
    2008-11-11
  • js中如何复制一个数组(浅复制、深复制)

    js中如何复制一个数组(浅复制、深复制)

    这篇文章主要介绍了js中如何复制一个数组(浅复制、深复制)问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • javaScript中Math()函数注意事项

    javaScript中Math()函数注意事项

    本文主要给大家分享了javascript中Math()函数的注意事项,以及math对象的方法,十分的简单实用,有需要的小伙伴可以参考下
    2015-06-06
  • 详解js中Json的语法与格式

    详解js中Json的语法与格式

    本文详细介绍了js中Json的语法与编写格式,有需要的朋友可以看下
    2016-11-11
  • 二级域名或跨域共享Cookies的实现方法

    二级域名或跨域共享Cookies的实现方法

    适用于Asp。 在主域名设置的Cookie,在各子域名共用;适用于博客等提供二级域名。这个问题,以网上有众多帖子,可惜都没有完整解决。
    2008-08-08

最新评论