详解原生JS根据图片多少自动生成相册_实现焦点或按钮切换图片

此相册实现淡入淡出的效果。

这里是源代码,代码有很多注释,有兴趣的可以看看:

https://github.com/LoisLuo/CarouselFigure.git



相册功能:

1.焦点切换图片

2.按钮切换图片


在写代码之前要明白实现上诉功能的具体思路是什么。

1.实现淡入淡出,就要求图片都是在一个位置,只不过所在的z-index不同而已。

2.我们通过改变classname来控制图片的显示。

3.用焦点切换图片,就要在焦点生成的时候给他加上属性,存储数据,在点击焦点的时候传入对应的索引值切换图片。

4.我们写一个函数goIndex,在每次触发点击事件的时候,传入要显示的图片的索引值。


我们通过传入图片的地址来自动生成相册,这让我们的相册有了更多的扩展性。

以下是主要js代码详解:

//触发点击事件时调用goIndex
	this.goIndex=function(index){
		
		this.photos[this.prevIndex].className="photo_item";
		
		this.prevIndex=this.activeIndex;
		this.activeIndex=index;
		//通过控制classname来控制图片显示
		this.photos[this.prevIndex].className="photo_item prev";
		this.photos[this.activeIndex].className="photo_item active";//当前显示的图片
		
		this.points[this.prevIndex].className="point";
		this.points[this.activeIndex].className="point active";//当前显示图片对应的焦点
	};
	//点击左按钮
	this.btnLeft=function(){
		//当点击左按钮时,判断当前显示的序列,
		//如果当前序列>0,就表示还没有到最左边,goIndex传入当前序列-1
		//否则goIndex就传入最后一张图片的序列(即图片数组长度-1)
		if(this.activeIndex>0){
			this.goIndex(this.activeIndex-1);
		}else{
			this.goIndex(this.photos.length-1);
		}
	};
	//点击右按钮
	this.btnRight=function(){
		if(this.activeIndex<this.photos.length-1){
			this.goIndex(this.activeIndex+1);
		}else{
			this.goIndex(0);
		}
	};
	
	this.pointClick=function(e){
		//点击焦点需要传入焦点的序列
		this.goIndex(parseInt(e.target.getAttribute("data-index")));
	};

若是你希望加上自动轮播效果,可以写个定时器,每隔几秒调用btnRight函数,当鼠标移入图片时,就停止,当鼠标移出图片时就调用,实现起来非常简单,有兴趣的可以试试


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值