特效描述:利用JS实现 点击小图 弹出大图代码。利用JS实现点击小图弹出大图代码

代码结构

1. HTML代码

(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 += '

';

oHtml += '

';

oHtml += '';

oHtml += '';

oHtml += '

';

oHtml += '';

oHtml += '';

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

});

html页面点击小图弹出大图代码,利用JS实现点击小图弹出大图代码相关推荐

  1. 利用JS实现点击上一周或下一周却换

    1.页面加载显示当前年份的第几周 效果如图: html代码: <font size="2" color="black">      <inpu ...

  2. Php点击更换封面,JavaScript_js实现点击图片改变页面背景图的方法,本文实例讲述了js实现点击图 - phpStudy...

    js实现点击图片改变页面背景图的方法 本文实例讲述了js实现点击图片改变页面背景图的方法.分享给大家供大家参考.具体实现方法如下: 点击图片即改变页面的背景图片 希望本文所述对大家的javascrip ...

  3. js实现点击按钮切换图片功能_☆*往事随風*☆的博客

    文章目录 前言 一.DOM是什么? 二.对象的HTML DOM 树 三.图片切换练习 1.要求 2.实现思路 3.示例代码 1.html示例代码如下: 2.css示例代码如下: 2.js示例代码如下: ...

  4. html鼠标点击切换图片,js鼠标点击图片切换效果代码分享

    本文实例讲述了js鼠标点击图片切换效果.分享给大家供大家参考.具体如下: 实现原理很简单,其实是多张图片叠加起来,点击图片后依次赋予图片一个class,使其看起来在表面而已,点击图片,可以实现图片的不 ...

  5. html指定区域的背景颜色,JS实现点击颜色块切换指定区域背景颜色的方法

    本文实例讲述了JS实现点击颜色块切换指定区域背景颜色的方法..具体实现方法如下: 代码如下: JS实现点击颜色块切换指定区域的背景颜色 适时切换网页指定区域背景颜色 请选择背景: function g ...

  6. html 弹出复选框,js点击文本框弹出可选择的checkbox复选框

    本文分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的checkbox复选框,选中复选框就能够将值写入文本框中,可能在实际应用中的效果没有这么直白简单,不过可以作为一个例子演示,以便于学习者理解 ...

  7. 高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作

    高德地图js API实现:鼠标悬浮于点标记时,弹出信息窗体显示详情,点击点标记时放大地图 <!doctype html> <html> <head><meta ...

  8. 前端把信息放在弹框里显示出来_jsp + js + 前端弹出框

    在项目中,前端页面我们时常需要各种各样的弹出框: 1.alert对话框:显示含有给定消息的"JavaScript Alert"对话框 代码: var a = "Hello ...

  9. 纯js封装一个多功能弹出框

    不借助其它的css代码和图片资源,可直接调用. 原创内容,请勿转载. 注意,不要直接复制文章里的封装代码,因为编辑器的原因,无论怎么编辑,它还是给修改了代码.文末提供了封装代码的下载地址(无需积分) ...

最新文章

  1. 白嫖一时爽!一直白嫖一直爽!程序员必备神器!
  2. 人群密度估计--Learning a perspective-embedded deconvolution network for crowd counting
  3. mybatis的面试一对一,一对多,多对多的mapper.xml配置
  4. 【机器学习】sklearn实现---归类为5大类
  5. dns迭代查询配置_dns解析?瞅瞅这篇文章
  6. MyEclipse 7.0 用java代码生成序列号
  7. tmp ubuntu 自动删除吗_tmp 目录文件被自动清理问题的调查
  8. 给Python IDLE添加行号显示
  9. 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出...
  10. Axure-----三级下拉菜单的具体实现过程
  11. mysql怎么给sex设置默认值_记一次mysql优化操作
  12. 华为USG防火墙搭建IPsec***实战
  13. 3.4 实时进程的调度
  14. 机器人学笔记之——操作臂运动学:坐标系的标准命名以及工具的定位
  15. C++中definition与declaration的区别
  16. RAID与LVM磁盘阵列技术
  17. DGV设置自动增长列
  18. Android Studio连接自带模拟器失败怎么办?强烈建议使用第三方模拟器(含各类模拟器下载地址)
  19. 计算机本科管理信息系统论文,本科软件工程专业毕业论文 计算机信息管理系统.doc...
  20. markPoint气泡大小及修改气泡中字体颜色

热门文章

  1. 飞跃计划 | 袋鼠云与睿呈时代达成战略合作,携手助推传统行业数字化转型
  2. 7个程序员常用的接单平台推荐
  3. 使用UltraISO(软碟通)制作U盘制作启动盘完整教程
  4. C语言实现字符串在屏幕上滚动
  5. 引流虚拟主机和服务器,免费虚拟主机能抢到吗
  6. Linux网络技术管理及进程管理(week2_day4)--技术流ken...
  7. C++ Virtual 完美诠释
  8. ​华为轮值董事长胡厚崑:没有自建芯片厂计划;​苹果赔偿1亿美元给App开发者;Git.io停用|极客头条
  9. CSS3 过渡-盒子切换之鼠标经过背景高亮
  10. 新生课题研究---人工智能