使用Javascript简单实现图片无缝滚动_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>

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

时间: 2024-10-31 15:25:12

使用Javascript简单实现图片无缝滚动_javascript技巧的相关文章

js实现图片无缝滚动_javascript技巧

js无缝滚动效果几乎在任何网页上都能看到它的身影,有的可能是使用插件,其实使用原始的javascript比较简单. 主要的是使用js位置知识. 1.innerHTML:设置或获取元素的html标签 2.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距 3.offsetWidth:设置或获取指定标签的宽度 4.setInterval():设置方法定时启动 5.clearInterval();清除定时器 效果图: <!DOCTYPE html> <html

Javascript 实现图片无缝滚动_javascript技巧

效果 : 鼠标移入图片 停止滚动, 鼠标移出自动滚动 可以调整向左或右方向滚动 复制代码 代码如下: <style type="text/css">             * {                 margin: 0;                 padding: 0;             }             #div1 {                 overflow: hidden;                 width: 71

javascript实现左右控制无缝滚动_javascript技巧

无缝滚动是项目中经常需要用到的一种特效,网上也有很多的示例代码,这里给大家分享的是一段比较简单实用的,而且兼容性也不错的代码,小伙伴们仔细研究下吧. html 代码: 复制代码 代码如下: <</SPAN>html> <</SPAN>head lang="en">     <</SPAN>meta charset="UTF-8">     <</SPAN>title>无缝

javaScript实现文字图片无缝滚动特效代码

今天做项目遇到一个滚动的效果,本来打算用marquee做的,因为它是html自带的标签,写起来简单,但是有一个问题就是marquee不能实现无缝滚动,上网找了一些方法,发现marquee可以实现无缝,但要在脑残的IE环境下. 没办法,为了达到要求,自己又从网上找了一些相关的代码加以修改,最终实现了效果,现在把代码分享给大家,有问题还请大家多指正. 代码如下:  代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition

基于javascript简单实现对身份证校验_javascript技巧

本文实例介绍了javascript简单实现对身份证的校验的关键性代码,分享给大家供大家参考,具体内容如下 var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古", 21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏", 33:&qu

JavaScript简单修改窗口大小的方法_javascript技巧

本文实例讲述了JavaScript简单修改窗口大小的方法.分享给大家供大家参考.具体如下: function resize_window(){ // move the window to 0,0 (X,Y) window.moveTo(0, 0); // resize the window to 800x600 window.resizeTo(800, 600); } resize_window(); 希望本文所述对大家的javascript程序设计有所帮助. 以上是小编为您精心准备的的内容,在

教你使用javascript简单写一个页面模板引擎_javascript技巧

于是我又想着能不能写一些简单的代码来完善这个模板引擎,又能与其它现有的逻辑协同工作.AbsurdJS本身主要是以NodeJS的模块的形式发布的,不过它也会发布客户端版本.考虑到这些,我就不能直接使用现有的引擎了,因为它们大部分都是在NodeJS上运行的,而不能跑在浏览器上.我需要的是一个小巧的,纯粹以Javascript编写的东西,能够直接运行在浏览器上.当我某天偶然发现John Resig的这篇博客,我惊喜地发现,这不正是我苦苦寻找的东西嘛!我稍稍做了一些修改,代码行数差不多20行左右.其中的

JavaScript仿百度图片浏览效果_javascript技巧

本文实例为大家分享了js图片浏览效果的具体代码,供大家参考,具体内容如下 在线地址:http://www.hui12.com/nbin/demo/imgskim/index.html https://nbin2008.github.io/demo/imgskim/index.html 效果图: index <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>仿

JavaScript简单实现鼠标拖动选择功能_javascript技巧

复制代码 代码如下: <style><!--body{padding-top:50px;padding-left:100px;padding-right:150px;}  .fileDiv{float:left;width:100px;height:100px;text-align:center;line-height:100px;font-size:12px;border:1px solid #cccccc;margin-right:10px;margin-bottom:10px;}