开启辅助访问 充值VIP充值豆豆
QQ登录 自动登录 注册 找回密码
查看: 7490|回复: 0

使用Javascript简单实现图片无缝滚动[javascript教程]

[复制链接]

该用户从未签到

156

主题

156

帖子

2万

豆豆

超级版主

光头春 发表于 2018-11-18 12:23:03 | 显示全部楼层 |阅读模式

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>

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


其它思必达学院教程推荐:
后盾网jquery实战视频教程
飞飞一周学会网站搭建
玖游论坛按键精灵教程
Android文件管理器开发视频
Android系统原理及开发要点详解【PDF格式】
《西门子工业通信网络组态编程与故障诊断》配套光盘[光盘镜像]
《电脑外设圣经》扫描版[PDF]
《五笔打字与输入技巧六日速成》扫描版[PDF]
《聚焦新生代-青少年网络成瘾与网络游戏研究和调查》[PDF ]
《JavaScript 程序员参考》(JavaScript Programmer's Reference)(Alexei White)文...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站资源全部来自网络和网友分享,如有侵犯您的权益,请联系网站QQ,或发邮件至sibida@foxmail.com。本网站尊重知识产权,无意侵犯知识产品,如有,联系网站人员,会第一时间删除!

小白基地,是小白资源网的官方网站,思必达学院官网,提供最新的创业技术支持与创业资讯,提供最新的思必达教程。是IT小白网友学习资源分享基地,中国互助创业资源网。提供诸如JAVA、PHP、MySQL、ASP、C语言等各类程序开发的教程资源。

快速回复 返回顶部 返回列表
鞋子货源 服装货源一件代发 美容护肤品货源