面向对象写轮播图

 

*****用到前面封装的运动

OOA:轮播图:图片切换,点击按钮切换,左右按钮,左上一张,右下一张
    布局


    js
      1.选择元素,设定默认索引0
      2.绑定事件
      3.计算索引
      4.根据索引切换图片

OOD:高内聚,低耦合
    function Banner(){
      1.选择元素,设定默认索引0
       2.执行绑定事件功能
    this.addEvent();
        }
    Banner.prototype.addEvent = function(){
     定义绑定事件的功能
    触发事件了
       3.执行计算索引的功能
    this.changeIndex()
    }
    Banner.prototype.changeIndex = function(){
     定义计算索引的功能
     .....
      4.执行切换图片的功能
    this.abc()
    }
    Banner.prototype.abc = function(){
     定义切换图片的功能
    }

  

OOP:
  function Banner(){
1.选择元素,设定默认索引0
    this.left = document.querySelector(".left");
    this.right = document.querySelector(".right");
    this.img = document.querySelectorAll(".imgbox a");

    this.index = 0;

    this.i = 1;
 2.执行绑定事件功能
    this.addEvent();
    }
  Banner.prototype.addEvent = function(){
    var that = this;
   定义绑定事件的功能
    this.left.onclick = function(){
   触发事件了
 3.执行计算索引的功能
    that.changeIndexL()
  }
    this.right.onclick = function(){
   触发事件了
 3.执行计算索引的功能
    that.changeIndexR()
  }
}
Banner.prototype.changeIndexL = function(){
   定义计算索引的功能
  if(this.index == 0){
  this.index = this.img.length-1
  }else{
  this.index--;
  }
// 4.执行切换图片的功能
  this.abc(1)
  }
Banner.prototype.changeIndexR = function(){
// 定义计算索引的功能
    if(this.index == this.img.length-1){
      this.index = 0
      }else{
      this.index++
    }
// 4.执行切换图片的功能
    this.abc(-1)
    }
  Banner.prototype.abc = function(d){
// 定义切换图片的功能

// 效果1:
  // for(var i=0;i<this.img.length;i++){
  // this.img[i].style.zIndex = 0;
  // }
  // // console.log(this);
  // this.img[this.index].style.zIndex = 1;

// 效果2:
  // for(var i=0;i<this.img.length;i++){
  // this.img[i].style.display = "none";
  // }
  // this.img[this.index].style.display = "block";

// 效果3:
  // this.img[this.index].style.zIndex = this.i++;

// 效果4:
  // this.img[this.index].style.zIndex = this.i++;
  // this.img[this.index].style.width = "0";
  // move(this.img[this.index],{width:1000});

// 效果5:
  // this.img[this.index].style.zIndex = this.i++;
  // this.img[this.index].style.width = "0";
  // this.img[this.index].style.height = "0";
  // move(this.img[this.index],{width:1000,height:260});

// 效果6:
  // this.img[this.index].style.zIndex = this.i++;
  // this.img[this.index].style.left = -1000 + "px";
  // move(this.img[this.index],{left:0});

// 效果7:
  this.img[this.index].style.zIndex = this.i++;
  this.img[this.index].style.left = 1000 * d + "px";
  move(this.img[this.index],{left:0});
}

var b = new Banner();

posted @ 2020-01-05 18:45  ws-233  阅读(179)  评论(0编辑  收藏  举报