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 相关文章推荐
用CSS+JS实现的进度条效果效果
Jun 05 Javascript
两个DIV等高的JS的实现代码
Dec 23 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
Feb 16 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
SVG动画vivus.js库使用小结(实例代码)
Sep 14 Javascript
把vue-router和express项目部署到服务器的方法
Feb 21 Javascript
详解ES6通过WeakMap解决内存泄漏问题
Mar 09 Javascript
浅谈开发eslint规则
Oct 01 Javascript
对angular 实时更新模板视图的方法$apply详解
Oct 09 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
Nov 27 Javascript
使用typescript快速开发一个cli的实现示例
Dec 09 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
PHP 基本语法格式
2009/12/15 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
js面向对象编程总结
2017/02/16 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
全神贯注教学反思
2014/02/03 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
校车安全责任书
2014/08/25 职场文书
小学端午节活动总结
2015/02/11 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers