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 相关文章推荐
用jscript实现新建word文档
Jun 15 Javascript
Javascript 跨域访问解决方案
Feb 14 Javascript
DIV菜单层实现代码
Nov 19 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
js简单实现点击左右运动的方法
Apr 10 Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
ES6学习教程之块级作用域详解
Oct 09 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
Aug 20 Javascript
uni app仿微信顶部导航条功能
Sep 17 Javascript
js如何验证密码强度
Mar 18 Javascript
JavaScript cookie原理及使用实例
May 08 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
谈谈PHP语法(4)
2006/10/09 PHP
phpfans留言版用到的install.php
2007/01/04 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
php加密解密实用类分享
2014/01/07 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
分享python数据统计的一些小技巧
2016/07/21 Python
详解Python中的正则表达式
2018/07/08 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
园长自我鉴定
2013/10/06 职场文书
社区居务公开实施方案
2014/03/27 职场文书
运动会演讲稿300字
2014/08/25 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书