js实现图片无缝滚动


Posted in Javascript onDecember 23, 2015

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

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

  • 1.innerHTML:设置或获取元素的html标签
  • 2.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距
  • 3.offsetWidth:设置或获取指定标签的宽度
  • 4.setInterval():设置方法定时启动
  • 5.clearInterval();清除定时器

效果图:

js实现图片无缝滚动

<!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>

以上就是为大家分享的js实现图片无缝滚动代码,希望对大家的学习javascript程序设计有所帮助。

Javascript 相关文章推荐
js跨域问题之跨域iframe自适应大小实现代码
Jul 17 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
Dec 31 Javascript
Jquery实现动态切换图片的方法
May 18 Javascript
jQuery中的select操作详解
Nov 29 Javascript
Bootstrap select多选下拉框实现代码
Dec 23 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
Jan 08 Javascript
js实现上传并压缩图片效果
Jan 10 Javascript
Vue-Router2.X多种路由实现方式总结
Feb 09 Javascript
js实现坦克大战游戏
Feb 24 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
Dec 23 #Javascript
js判断文本框输入的内容是否为数字
Dec 23 #Javascript
javascript新闻跑马灯实例代码
Jul 29 #Javascript
javascript动态添加checkbox复选框的方法
Dec 23 #Javascript
js仿微博实现统计字符和本地存储功能
Dec 22 #Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 #Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 #Javascript
You might like
非常好用的Zend Framework分页类
2014/06/25 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
php实现简易计算器
2020/08/28 PHP
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
JavaScript中string对象
2015/06/12 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
VsCode里的Vue模板的实现
2020/08/12 Javascript
Python使用剪切板的方法
2017/06/06 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
土木工程应届生自荐信
2013/09/24 职场文书
主管职责范文
2013/11/09 职场文书
护士演讲稿范文
2014/01/05 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
保险经纪人求职信
2014/03/11 职场文书
婚礼主持词
2014/03/13 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
乔迁新居祝福语
2019/11/04 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android