html页面点击小图弹出大图代码,利用JS实现点击小图弹出大图代码
特效描述:利用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实现点击小图弹出大图代码相关推荐
- 利用JS实现点击上一周或下一周却换
1.页面加载显示当前年份的第几周 效果如图: html代码: <font size="2" color="black"> <inpu ...
- Php点击更换封面,JavaScript_js实现点击图片改变页面背景图的方法,本文实例讲述了js实现点击图 - phpStudy...
js实现点击图片改变页面背景图的方法 本文实例讲述了js实现点击图片改变页面背景图的方法.分享给大家供大家参考.具体实现方法如下: 点击图片即改变页面的背景图片 希望本文所述对大家的javascrip ...
- js实现点击按钮切换图片功能_☆*往事随風*☆的博客
文章目录 前言 一.DOM是什么? 二.对象的HTML DOM 树 三.图片切换练习 1.要求 2.实现思路 3.示例代码 1.html示例代码如下: 2.css示例代码如下: 2.js示例代码如下: ...
- html鼠标点击切换图片,js鼠标点击图片切换效果代码分享
本文实例讲述了js鼠标点击图片切换效果.分享给大家供大家参考.具体如下: 实现原理很简单,其实是多张图片叠加起来,点击图片后依次赋予图片一个class,使其看起来在表面而已,点击图片,可以实现图片的不 ...
- html指定区域的背景颜色,JS实现点击颜色块切换指定区域背景颜色的方法
本文实例讲述了JS实现点击颜色块切换指定区域背景颜色的方法..具体实现方法如下: 代码如下: JS实现点击颜色块切换指定区域的背景颜色 适时切换网页指定区域背景颜色 请选择背景: function g ...
- html 弹出复选框,js点击文本框弹出可选择的checkbox复选框
本文分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的checkbox复选框,选中复选框就能够将值写入文本框中,可能在实际应用中的效果没有这么直白简单,不过可以作为一个例子演示,以便于学习者理解 ...
- 高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作
高德地图js API实现:鼠标悬浮于点标记时,弹出信息窗体显示详情,点击点标记时放大地图 <!doctype html> <html> <head><meta ...
- 前端把信息放在弹框里显示出来_jsp + js + 前端弹出框
在项目中,前端页面我们时常需要各种各样的弹出框: 1.alert对话框:显示含有给定消息的"JavaScript Alert"对话框 代码: var a = "Hello ...
- 纯js封装一个多功能弹出框
不借助其它的css代码和图片资源,可直接调用. 原创内容,请勿转载. 注意,不要直接复制文章里的封装代码,因为编辑器的原因,无论怎么编辑,它还是给修改了代码.文末提供了封装代码的下载地址(无需积分) ...
最新文章
- 白嫖一时爽!一直白嫖一直爽!程序员必备神器!
- 人群密度估计--Learning a perspective-embedded deconvolution network for crowd counting
- mybatis的面试一对一,一对多,多对多的mapper.xml配置
- 【机器学习】sklearn实现---归类为5大类
- dns迭代查询配置_dns解析?瞅瞅这篇文章
- MyEclipse 7.0 用java代码生成序列号
- tmp ubuntu 自动删除吗_tmp 目录文件被自动清理问题的调查
- 给Python IDLE添加行号显示
- 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出...
- Axure-----三级下拉菜单的具体实现过程
- mysql怎么给sex设置默认值_记一次mysql优化操作
- 华为USG防火墙搭建IPsec***实战
- 3.4 实时进程的调度
- 机器人学笔记之——操作臂运动学:坐标系的标准命名以及工具的定位
- C++中definition与declaration的区别
- RAID与LVM磁盘阵列技术
- DGV设置自动增长列
- Android Studio连接自带模拟器失败怎么办?强烈建议使用第三方模拟器(含各类模拟器下载地址)
- 计算机本科管理信息系统论文,本科软件工程专业毕业论文 计算机信息管理系统.doc...
- markPoint气泡大小及修改气泡中字体颜色
热门文章
- 飞跃计划 | 袋鼠云与睿呈时代达成战略合作,携手助推传统行业数字化转型
- 7个程序员常用的接单平台推荐
- 使用UltraISO(软碟通)制作U盘制作启动盘完整教程
- C语言实现字符串在屏幕上滚动
- 引流虚拟主机和服务器,免费虚拟主机能抢到吗
- Linux网络技术管理及进程管理(week2_day4)--技术流ken...
- C++ Virtual 完美诠释
- ​华为轮值董事长胡厚崑:没有自建芯片厂计划;​苹果赔偿1亿美元给App开发者;Git.io停用|极客头条
- CSS3 过渡-盒子切换之鼠标经过背景高亮
- 新生课题研究---人工智能