今天的特效是一个很常用的图片查看。结合了轮播图和图片弹窗,所以这两个没有理解的,还是先去看看。然后再来理解这个哦!

首先我们看下效果:

  • 首先是查看图片的初始网页(注意图片hover的时候有阴影)

  • 这是点进去图片进入的图片查看,然后还有轮播图效果!

  • 最后就是按钮的hover效果

其中要说明的就是上一张和下一张的这个属性:user-select: none;

这个是防止用户在复制的时候复制走这个符号!然后就是js代码比之前两个多一点,不过认真理解还是很简单的,希望大家多思考多练习

详细的思路参考前面两个特效,这个只不过是把两个结合在一起了!源码中有详细的注释

附上源码:


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>LightBox</title><link rel="stylesheet" href="1.css">
</head><body><h2 style="text-align:center; margin: 2rem 0 4rem 0;">LightBox</h2><!-- 默认图片查看  --><div class="row"><div class="column"><img src="img/1.jpg" style="width:100%;" onclick="openModal();currentSlide(1)" class="hover-shadow cursor"></div><div class="column"><img src="img/2.jpg" style="width:100%;" onclick="openModal();currentSlide(2)" class="hover-shadow cursor"></div><div class="column"><img src="img/3.jpg" style="width:100%;" onclick="openModal();currentSlide(3)" class="hover-shadow cursor"></div><div class="column"><img src="img/4.jpg" style="width:100%;" onclick="openModal();currentSlide(4)" class="hover-shadow cursor"></div></div><!-- 详细的图片查看 --><div id="myModal" class="modal"><span class="close cursor" onclick="closeModal()">&times;</span><div class="modal-content"><div class="mySlides"><div class="numbertext">1 / 4</div><img src="img/1.jpg" style="width:100%"></div><div class="mySlides"><div class="numbertext">2 / 4</div><img src="img/2.jpg" style="width:100%"></div><div class="mySlides"><div class="numbertext">3 / 4</div><img src="img/3.jpg" style="width:100%"></div><div class="mySlides"><div class="numbertext">4 / 4</div><img src="img/4.jpg" style="width:100%"></div><a class="prev" onclick="plusSlides(-1)">❮</a><a class="next" onclick="plusSlides(1)">❯</a><div class="caption-container"><p id="caption"></p></div><div class="column"><img class="demo cursor" src="img/1.jpg" style="width:100%" onclick="currentSlide(1)" alt="rabbit"></div><div class="column"><img class="demo cursor" src="img/2.jpg" style="width:100%" onclick="currentSlide(2)" alt="dog"></div><div class="column"><img class="demo cursor" src="img/3.jpg" style="width:100%" onclick="currentSlide(3)" alt="cat"></div><div class="column"><img class="demo cursor" src="img/4.jpg" style="width:100%" onclick="currentSlide(4)" alt="squirrel"></div></div></div><script src="1.js"></script>
</body></html>

body {font-family: Verdana, sans-serif;margin: 0;
}* {box-sizing: border-box;
}.row>.column {padding: 0 8px;
}/* 清除浮动 */.row:after {content: "";display: table;clear: both;
}.column {float: left;width: 25%;
}/* Modal的背景设置 */.modal {display: none;position: fixed;z-index: 1;padding-top: 100px;left: 0;top: 0;width: 100%;height: 100%;overflow: auto;background-color: #111;
}/* Modal的内容区*/.modal-content {position: relative;background-color: #fefefe;margin: auto;padding: 0;width: 90%;max-width: 1200px;
}/* 关闭的按钮 */.close {color: white;position: absolute;top: 10px;right: 25px;font-size: 35px;font-weight: bold;
}/* 按钮的hover效果和focus效果 */.close:hover,
.close:focus {color: #999;text-decoration: none;cursor: pointer;
}.mySlides {display: none;
}.cursor {cursor: pointer
}/* 上一页和下一页按钮的设置 */.prev,
.next {cursor: pointer;position: absolute;top: 50%;width: auto;padding: 16px;/* 调整按钮在图片上的位置 */margin-top: -50px;color: white;font-weight: bold;font-size: 20px;transition: 0.6s ease;border-radius: 0 3px 3px 0;/* 不让用户选中文字 */user-select: none;-webkit-user-select: none;
}/*设置“下一个”的按钮的位于右边 */.next {right: 0;border-radius: 3px 0 0 3px;
}/* hover效果的背景颜色变化 */.prev:hover,
.next:hover {background-color: rgba(0, 0, 0, 0.8);
}/* 图片左上角数字的设置 */.numbertext {color: #f2f2f2;font-size: 12px;padding: 8px 12px;position: absolute;top: 0;
}img {margin-bottom: -4px;
}/* 设置图片alt文字的样式 */.caption-container {text-align: center;background-color: #111;padding: 2px 16px;color: white;
}.demo {opacity: 0.6;
}.active,
.demo:hover {opacity: 1;
}img.hover-shadow {transition: 0.3s
}.hover-shadow:hover {box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
}

function openModal() {document.getElementById('myModal').style.display = "block";
}function closeModal() {document.getElementById('myModal').style.display = "none";
}var slideIndex = 1;
showSlides(slideIndex);function plusSlides(n) {showSlides(slideIndex += n);
}function currentSlide(n) {showSlides(slideIndex = n);
}// js的方法可以先调用再声明
function showSlides(n) {var i;var slides = document.getElementsByClassName("mySlides");var dots = document.getElementsByClassName("demo");var captionText = document.getElementById("caption");// 一共四张图片,index大于4的时候,下一个图片的index为1if (n > slides.length) { slideIndex = 1 }// 当第一张图片的下一张就是“1-1<0”,所以下一张的index为4if (n < 1) { slideIndex = slides.length }for (i = 0; i < slides.length; i++) {slides[i].style.display = "none";}for (i = 0; i < dots.length; i++) {dots[i].className = dots[i].className.replace(" active", "");}slides[slideIndex - 1].style.display = "block";dots[slideIndex - 1].className += " active";captionText.innerHTML = dots[slideIndex - 1].alt;captionText.style.fontSize = "1rem";
}

JS特效三:LightBox(轮播图+图片弹窗)相关推荐

  1. js 移动端网页特效+移动端轮播图案例+移动端常用开发插件的使用

    触屏事件 常见触屏事件: 触屏touch事件 说明 touchstart 手指触摸到DOM元素时触发 touchmove 手指在DOM元素上滑动时触发 touchend 手指从一个DOM元素上移开时触 ...

  2. JS 轮播图 图片切换(定时器)

    标题JS 轮播图 图片切换(定时器) 这次的轮播图与上次的图片切换相比,仅仅是加上了定时器,使其可以自动切换. 上次的图片切换的链接:https://blog.csdn.net/qq_38318589 ...

  3. 【原生js】详解轮播图之无缝滚动

    前言:轮播图,是网站首页中最常见的一种图片切换特效,作为前端开发者,我相信很多开发者都直接调用了JQuery中的封装好的方法实现图片轮播,省事简单.所以我今天想介绍一下原生js代码实现的图片轮播. 结 ...

  4. js实现淡入淡出轮播图

    js实现淡入淡出轮播图 先描述一下我的思路 第一步:首先使用定位将图片堆积起来 第二步:利用透明度的变化来实现图片的淡入淡出 第三步:设置一个索引,贯穿整个动画过程. 首先,先展示HTML代码: &l ...

  5. 原生JS实现韩雪冬轮播图

    分享一个用原生JS实现的韩雪冬轮播图,效果如下: 实现代码如下: <!DOCTYPE html> <html><head lang="en">& ...

  6. 2021年原生JS实现韩雪冬轮播图

    <!DOCTYPE html> <html><head lang="en"><meta charset="UTF-8" ...

  7. html轮播台袋效果,使用html+js+css 实现页面轮播图效果(实例讲解)

    html 页面 轮播图效果 < > css页面 carousel.css #main{ width: 655px; height: 361px; position: relative; } ...

  8. 微信小程序—swiper轮播图图片不显示的解决方法

    swiper轮播图图片不显示的解决方法 遇到图片无法显示的问题,是样式问题 在wxss里面新型修改 设置宽度 .container{width: 750rpx; } .container swiper ...

  9. 微信小程序轮播图单独添加图片、修改轮播图图片、单独修改某张图片

    小老弟上课的基本见解,有错误欢迎大牛们指正 <!--pages/swiper/swiper.wxml--> <text>pages/swiper/swiper.wxml< ...

  10. html中轮播图片js代码怎么写,js+html+css实现轮播图

    首先先把轮播图的结构搭建起来(html),代码如下: 结构可自行搭建,结构搭建完接着就是用css去进行修饰美化 此时的ul是没有给它设置固定的宽和高的,高可以先设置,宽不能,等下让图片一张接一张一的动 ...

最新文章

  1. STM32串行通信USART解说笔记
  2. leetcode算法题--二叉搜索树的后序遍历序列
  3. git: git add --ignore-removal git add --all 区别
  4. c语言排序算法 应用与实现,基于C语言排序算法改进与应用.doc
  5. 从思维图到基础再到深入,java空间查询
  6. django orm插入一条_如何通过django的ORM远程发布文章?
  7. ubuntu15.04 php版本,在ubuntu下安装php版本问题
  8. left join 和inner join关联查询区别
  9. 蓝牙天线的一点小资料
  10. Theatre.js 动画JavaScript库
  11. java实现贪吃蛇小游戏(源码+注释)
  12. Meshlab源码编译
  13. 中小型企业网络IP地址规划案例-1
  14. Python实现逆Radon变换——直接反投影和滤波反投影
  15. 为什么计算机键盘用不了怎么办,笔记本电脑键盘用不了怎么办
  16. 使用clion搭建CUDA开发环境
  17. 5.8 拉普拉斯算子和拉普拉斯矩阵,图拉普拉斯算子推导
  18. Android中文乱码的分析与解决
  19. 函数平移口诀_呼和浩特市||初中函数巧平移方法
  20. 织网模板html5,织网及织网模具、安全护具的制作方法

热门文章

  1. 一级造价工程师(安装)- 管理笔记
  2. java经纬度转平面坐标_经纬度到平面坐标的相互转换
  3. 统计fasta序列条数
  4. 今天的两个收获--linux的特性和海森堡式错误
  5. TDD、FDD是什么意思?
  6. 补阳气吃什么 补阳气的食物
  7. MATLAB柱状图(数据可视化)
  8. 快速迭代式开发使用方法总结
  9. 这届年轻人正在背着你偷偷攒钱
  10. [架构之路-51]:架构师 - 用系统化、结构化思维解决复杂难搞的软件故障问题 - 马克思主义哲学在软件系统中的应用