javascript实现图片轮播效果


Posted in Javascript onJanuary 20, 2016

本文实例介绍了javascript实现图片轮播效果的详细代码,分享给大家供大家参考,具体内容如下

效果图:

javascript实现图片轮播效果

具体代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
  *{
    margin: 0;
    padding: 0;
  }
   .wrap{
     width: 510px;
     margin: 0 auto;
     overflow: hidden;
      position: relative;
   }
   .caktye{
     width: 9999px;
     overflow: hidden;
     position: relative;
     left: 0;
   }
   .main{
     text-align: center;
      position: absolute;
      bottom: 10px;
      /*border: 1px solid red;*/
      left: 35%;

   }
   .main button{
     width: 25px;
      height: 25px;
      text-align: center;
      line-height: 25px;
      border-radius: 25px;
      display: inline-block;
      border: none;
   }
   .active{
     background-color: yellow;
   }
   .caktye a{
     float: left;
   }
   .caktye img {
      display: block;
      width:510px;
    }
   #prevBtn{
        display: block;
        position: absolute;
        left: 5px;
        bottom: 45%;
      width: 15px;
      height: 15px;
      /*overflow: hidden;*/
      border-left: 5px solid ;
      border-top: 5px solid ;
       border-color: rgba(255,255,255,0.5);
      -webkit-transform: rotate(45deg);
      transform: rotate(-45deg);
   }
   #nextBtn{
      display: block;
      position: absolute;
      right: 5px;
      bottom: 45%;
      width: 15px;
      height: 15px;
      /*overflow: hidden;*/
      border-right: 5px solid;
      border-top: 5px solid;
      -webkit-transform: rotate(45deg);
      transform: rotate(45deg);
      border-color: rgba(255,255,255,0.5);
      /*background-color: rgba(255,255,255,0.8);*/
   }

  </style>
</head>
<body>
 
  <div class="wrap">
   <div class="caktye" id="inner">
    <a href="###"><img src="img/1.jpg"></a>
    <a href="###"><img src="img/2.jpg"></a>
    <a href="###"><img src="img/3.jpg"></a>
    <a href="###"><img src="img/4.jpg"></a>
    <a href="###"><img src="img/5.jpg"></a>
      <a href="###"><img src="img/1.jpg"></a>
   </div>
    <div class="main">
      <button class="active">1</button>
      <button>2</button>
      <button>3</button>
      <button>4</button>
      <button>5</button>
   </div>
   <div>
      <a href="###" id="prevBtn"></a>
      <a href="###" id="nextBtn"></a>

   </div>
  </div>   
  <script type="text/javascript">
   var innerList = document.getElementById("inner");
   var btnList = document.getElementsByTagName("button");
   var perWidth = inner.children[0].offsetWidth;
   var prevBtn = document.getElementById("prevBtn");
   var nextBtn = document.getElementById("nextBtn");
   // var imgList = inner.getElementsByTagName("img");
   
   // var perWidth = imgList[0].offsetWidth;
   var timer = 0;
   var timer1 = 0;
   var index =0;
   var runFlag = true; //设置一个动画是否走完的标志位

   for(var i = 0; i < btnList.length; i++) {
      btnList[i].index = i;
      btnList[i].onclick = function() {
         index = this.index;
         
         tab();
      }
   }
   function tab() {
      var start = inner.offsetLeft;
      var end = - perWidth * index;
      var change = end - start;
      var t = 0;
      var maxT = 30;

      clearInterval(timer1);
      timer1 = setInterval(function() {
         t++;
         if(t >= maxT) {
            clearInterval(timer1);
            // alert("停下来了");
            runFlag = true;
         }
         inner.style.left = change/maxT * t + start + "px";
         if(index == btnList.length && t >= maxT) {
            inner.style.left = 0;
         }
      },30)

      // inner.style.left = - perWidth * index + "px";
      for(var j = 0; j < btnList.length; j++) {
         btnList[j].className = "";
      }
      if(index >= btnList.length) {
         btnList[0].className = "active";
      }else {
         btnList[index].className = "active";
      }
      
   }
    function xunhuan(){
       index++;
   
         if(index>btnList.length){
         index=1;
         }
         // inner.style.left = - perWidth * index + "px";
       tab();
   }

   var timer =setInterval(xunhuan,5000);

   inner.onmouseover =function(){
   clearInterval(timer);
   }
   inner.onmouseout =function(){
    timer = setInterval(xunhuan,5000);
   }

   function next() {
      index++;
      if(index > btnList.length) {
         index = 1;
      }
      tab();
   }
   function prev() {
      index--;
      if(index < 0 ) {
         index = btnList.length - 1;
         inner.style.left = - btnList.length * perWidth + "px";
         console.log(index);
      }
      tab();
   }
   //下一张
   nextBtn.onclick = function() {
      clearInterval(timer);
      if(runFlag) {
         next();
      }
      runFlag = false;
      
   }
   //上一张
   prevBtn.onclick = function() {
      clearInterval(timer);
      if(runFlag) {
         prev();
      }
      runFlag = false;
      
   }
  </script>
</body>
</html>

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
有道JavaScript监听浏览器的问题
Jun 23 Javascript
javascript中获取下个月一号,是星期几
Jun 01 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
Nov 07 Javascript
解决jQuery使用JSONP时产生的错误
Dec 02 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
微信小程序上传图片到服务器实例代码
Nov 07 Javascript
浅谈Node框架接入ELK实践总结
Feb 22 Javascript
Vue传参一箩筐(页面、组件)
Apr 04 Javascript
微信小程序开发技巧汇总
Jul 15 Javascript
js时间转换毫秒的实例代码
Aug 21 Javascript
详解JavaScript之ES5的继承
Jul 08 Javascript
JS获取鼠标坐标位置实例分析
Jan 20 #Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 #Javascript
学习JavaScript设计模式之模板方法模式
Jan 20 #Javascript
高性能JavaScript循环语句和条件语句
Jan 20 #Javascript
详解Javascript模板引擎mustache.js
Jan 20 #Javascript
JavaScript优化专题之Loading and Execution加载和运行
Jan 20 #Javascript
JQuery日历插件My97DatePicker日期范围限制
Jan 20 #Javascript
You might like
ThinkPHP采用模块和操作分析
2011/04/18 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
Python自动抢红包教程详解
2019/06/11 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
python应用文件读取与登录注册功能
2019/09/23 Python
python字符串的拼接方法总结
2019/11/18 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
详细分析Python垃圾回收机制
2020/07/01 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python
MySQL触发器的使用
2021/05/24 MySQL
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android