html页面点击小图弹出大图代码,js图片画廊点击弹出遮罩背景大图切换代码

该博客介绍了如何使用JavaScript编写一个简单的图片画廊,点击小图后弹出大图并实现幻灯片切换功能。通过左右按钮可以控制图片上一张下一张的切换,同时支持分页显示。代码中包括了弹窗的渲染、图片预加载、分页显示以及关闭弹窗等关键功能。
摘要由CSDN通过智能技术生成

一款简单实用的js图片画廊点击弹出遮罩背景大图切换代码,点击小图弹出大图幻灯片展示,左右按钮控制图片上一张下一张进行切换。

3d3e3e70838fe46bdefa3e998f79ce51.png

查看演示

下载资源:

34

次 下载资源

下载积分:

20

积分

js代码

(function(){

var LightBox = function(options){

this.imgListParent = document.getElementById(options.imgListParent); //图片列表的父元素

this.imgItemClass = options.imgItemClass; //图片的className

this.idx = 0; //图片的索引,初始值为0

this.isShowPage = options.isShowPage || false; //是否显示分页,默认不显示

this.init();

};

//初始化

LightBox.prototype.init = function(){

this.renderDOM();

this.imgListClick();

this.nextBtnClick();

this.prevBtnClick();

this.closeBtnClick();

};

//渲染弹窗

LightBox.prototype.renderDOM = function(){

var imgModule = document.createElement("div");

imgModule.id = "imgModule";

var oHtml = "";

oHtml += '

oHtml += '

';

imgModule.innerHTML = oHtml;

document.body.appendChild(imgModule);

};

//分页

LightBox.prototype.pagination = function(idx){

var imgList = this.getByClass(this.imgListParent, this.imgItemClass);

var pagination = document.getElementById("lightBoxPagination");

var page = "";

for(var i = 0; i < imgList.length; i++){

if(idx == i){

page += '';

}else{

page += '';

}

}

if(this.isShowPage){

pagination.innerHTML = page;

}

};

//点击图片弹出弹窗

LightBox.prototype.imgListClick = function(){

var imgList = this.getByClass(this.imgListParent, this.imgItemClass);

var imgModule = document.getElementById("imgModule");

var self = this;

for(var i = 0; i < imgList.length; i++){

imgList[i].index = i;

imgList[i].onclick = function(){

imgModule.style.display = "block";

var src = this.getAttribute("data-src");

self.idx = this.index;

self.imgLoad(src);

self.pagination(self.idx);

}

}

};

//上一张

LightBox.prototype.prevBtnClick = function(){

var prevBtn = document.getElementById("lightBoxPrev");

var self = this;

prevBtn.onclick = function(){

var imgList = self.getByClass(self.imgListParent, self.imgItemClass);

self.idx--;

if(self.idx < 0){

self.idx = imgList.length - 1;

}

var src = imgList[self.idx].getAttribute("data-src");

self.imgLoad(src);

self.pagination(self.idx);

}

};

//下一张

LightBox.prototype.nextBtnClick = function(){

var nextBtn = document.getElementById("lightBoxNext");

var self = this;

nextBtn.onclick = function(){

var imgList = self.getByClass(self.imgListParent, self.imgItemClass);

self.idx++;

if(self.idx >= imgList.length){

self.idx = 0;

}

var src = imgList[self.idx].getAttribute("data-src");

self.imgLoad(src);

self.pagination(self.idx);

}

};

//图片预加载

LightBox.prototype.imgLoad = function(src, callback){

var imgLight = document.getElementById("imgLight");

var loader = document.getElementById("imgLoader");

loader.style.display = "block";

// imgLight.src = "";

var img = new Image();

img.onload = function(){

loader.style.display = "none";

imgLight.src = src;

};

img.src = src;

};

//关闭弹窗

LightBox.prototype.closeBtnClick = function(){

var closeBtn = document.getElementById("closeBtn");

var imgModule = document.getElementById("imgModule");

closeBtn.onclick = function(){

imgModule.style.display = "none";

}

};

//封装获取元素函数

LightBox.prototype.getByClass = function(oParent, oClass){

var oEle = oParent.getElementsByTagName("*");

var oResult = [];

for(var i = 0; i < oEle.length; i++){

if(oEle[i].className == oClass){

oResult.push(oEle[i]);

}

}

return oResult;

};

window.LightBox = LightBox;

})();

new LightBox({

imgListParent: "imgDefault",

imgItemClass: "imgItem",

isShowPage: true

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值