JS+HTML+CSS实现轮播效果


Posted in Javascript onNovember 28, 2017

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下

1.lunbo.html代码:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <title>大轮播</title> 
  <link rel="stylesheet" type="text/css" href="CSS/lunbo.css"/> 
  <script src="JS/lunbo.js" type="text/javascript"></script> 
</head> 
 
<body> 
<div id="container"> 
  <div id="list" style="left: -1350px;"> 
    <img src="image/banner_3.jpg"/> 
    <img src="image/banner_1.jpg"/> 
    <img src="image/banner_2.jpg"/> 
    <img src="image/banner_3.jpg"> 
    <img src="image/banner_1.jpg"/></div> 
  <div id="buttons"> 
    <span index="1"></span> 
    <span index="2"></span> 
    <span index="3"></span> 
  </div> 
  <a href="javascript:;" id="prev" class="arrow" style="font-size:100px; text-align:center;"><</a> 
  <a href="javascript:;" id="next" class="arrow" style="font-size:100px; text-align:center;">></a></div> 
</body> 
 
</html>

2.CSS/lunbo.css代码:

body { 
  margin: 0px; 
  padding: 0px; 
  width: 1350px; 
  height: 618px; 
} 
 
a { 
  text-decoration: none; 
} 
 
#container { 
  width: 1350px; 
  height: 618px; 
  overflow: hidden; 
  position: relative; 
  border-top: 1px solid #ac6a0a; 
} 
 
#list { 
  width: 6750px; 
  height: 618px; 
  position: absolute; 
  z-index: 1; 
} 
 
#list img { 
  float: left; 
  width: 1350px; 
  height: 618px; 
} 
 
#buttons { 
  position: absolute; 
  height: 20px; 
  width: 60px; 
  z-index: 2; 
  bottom: 20px; 
  left: 50%; 
} 
 
#buttons span { 
  cursor: pointer; 
  float: left; 
  border: 1px solid #ad6a0a; 
  width: 10px; 
  height: 10px; 
  -webkit-border-radius: 50%; 
  -moz-border-radius: 50%; 
  border-radius: 50%; 
  margin-right: 5px; 
} 
 
#buttons .on { 
  background: orangered; 
} 
 
.arrow { 
  cursor: pointer; 
  display: none; 
  line-height: 100px; 
  text-align: center; 
  width: 40px; 
  height: 40px; 
  position: absolute; 
  z-index: 2; 
  top: 180px; 
  background-color: RGBA(0, 0, 0, 0); 
  color: #fff; 
} 
 
.arrow:hover { 
  background-color: RGBA(0, 0, 0, 0); 
} 
 
#container:hover .arrow { 
  display: block; 
} 
 
#prev { 
  left: 10px; 
  color: #ffffff; 
} 
 
#next { 
  right: 10px; 
  color: #ffffff; 
}

3.JS/lunbo.js代码:

window.onload = function () { 
  var container = document.getElementById('container'); 
  var list = document.getElementById('list'); 
  var buttons = document.getElementById('buttons').getElementsByTagName('span'); 
  var prev = document.getElementById('prev'); 
  var next = document.getElementById('next'); 
  var index = 1; 
  var len = 3; 
  var animated = false; 
  var interval = 3000; 
  var timer; 
  var size = 1350; 
 
  function animate(offset) { 
    if (offset == 0) { 
      return; 
    } 
    animated = true; 
    var time = 300; 
    var inteval = 10; 
    var speed = offset / (time / inteval); 
    console.log("speed:" + speed); 
    var left = parseInt(list.style.left) + offset; 
 
    var go = function () { 
      if ((speed > 0 && parseInt(list.style.left) < left) || (speed < 0 && parseInt(list.style.left) > left)) { 
        list.style.left = parseInt(list.style.left) + speed + 'px'; 
        console.log(list.style.left); 
        setTimeout(go, inteval); 
      } else { 
        list.style.left = left + 'px'; 
        if (left > -200) { 
          list.style.left = -size * len + 'px'; 
        } 
        if (left < ( -size * len)) { 
          list.style.left = '-' + size + 'px'; 
        } 
        animated = false; 
        console.log("left:" + list.style.left); 
      } 
    } 
    go(); 
  } 
 
  function showButton() { 
    for (var i = 0; i < buttons.length; i++) { 
      if (buttons[i].className == 'on') { 
        buttons[i].className = ''; 
        break; 
      } 
    } 
    buttons[index - 1].className = 'on'; 
  } 
 
  function play() { 
    timer = setTimeout(function () { 
        next.onclick(); 
        play(); 
      }, 
      interval); 
  } 
 
  function stop() { 
    clearTimeout(timer); 
  } 
 
  next.onclick = function () { 
    if (animated) { 
      return; 
    } 
    if (index == len) { 
      index = 1; 
    } else { 
      index += 1; 
    } 
    animate(-size); 
    showButton(); 
  } 
  prev.onclick = function () { 
    if (animated) { 
      return; 
    } 
    if (index == 1) { 
      index = len; 
    } else { 
      index -= 1; 
    } 
    animate(size); 
    showButton(); 
  } 
  for (var i = 0; i < buttons.length; i++) { 
    buttons[i].onclick = function () { 
      if (animated) { 
        return; 
      } 
      if (this.className == 'on') { 
        return; 
      } 
      var myIndex = parseInt(this.getAttribute('index')); 
      var offset = -size * (myIndex - index); 
 
      animate(offset); 
      index = myIndex; 
      showButton(); 
    } 
  } 
  container.onmouseover = stop; 
  container.onmouseout = play; 
  play(); 
};

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
高性能JavaScript DOM编程(1)
Aug 11 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
Jan 04 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
May 13 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
实现一个完整的Node.js RESTful API的示例
Sep 29 Javascript
JS使用正则表达式找出最长连续子串长度
Oct 26 Javascript
微信小程序通过保存图片分享到朋友圈功能
May 24 Javascript
create-react-app 修改为多入口编译的方法
Aug 01 Javascript
详解vue.js移动端配置flexible.js及注意事项
Apr 10 Javascript
使用layui的router来进行传参的实现方法
Sep 06 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 Javascript
关于angular 8.1使用过程中的一些记录
Nov 25 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 #Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 #Javascript
vue-music关于Player播放器组件详解
Nov 28 #Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
Nov 28 #Javascript
JS实现的找零张数最小问题示例
Nov 28 #Javascript
JavaScript数据结构之单链表和循环链表
Nov 28 #Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
Nov 28 #Javascript
You might like
收集的DedeCMS一些使用经验
2007/03/17 PHP
PHP实现多条件查询实例代码
2010/07/17 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
js实现网页收藏功能
2015/12/17 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Python获取远程文件大小的函数代码分享
2014/05/13 Python
python实现文本文件合并
2015/12/29 Python
python使用插值法画出平滑曲线
2018/12/15 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python实战购物车项目的实现参考
2019/02/20 Python
在python3中实现更新界面
2020/02/21 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
比驿:全球酒店比价网
2018/06/20 全球购物
办公设备采购方案
2014/03/16 职场文书
《四季》教学反思
2014/04/08 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
总结Python变量的相关知识
2021/06/28 Python