zoukankan      html  css  js  c++  java
  • 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>
    </html>

    效果演示:demo

    原文链接:http://liteng.org/node/29

  • 相关阅读:
    如何 Laravel 中验证 zip 压缩包里的文件?
    PHP7的Yaconf使用教程
    算法与数据结构系列 ( 三 )
    推荐10个优质的Laravel扩展
    如何在利用 Composer 注册全局辅助函数?
    ThinkPHP6新增‘’多应用‘’与ThinkPHP5有啥区别
    基于Laravel开发的在线点播系统MeEdu
    浅述PHP7底层设计01-PHP7语言执行原理
    laravel单文件、多文件上传的实现方法
    在Mac开发环境Laravel Valet中配置运行Flarum论坛系统的方法详解
  • 原文地址:https://www.cnblogs.com/leeten/p/4134974.html
Copyright © 2011-2022 走看看