JS特效三:LightBox(轮播图+图片弹窗)
今天的特效是一个很常用的图片查看。结合了轮播图和图片弹窗,所以这两个没有理解的,还是先去看看。然后再来理解这个哦!
首先我们看下效果:
- 首先是查看图片的初始网页(注意图片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()">×</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(轮播图+图片弹窗)相关推荐
- js 移动端网页特效+移动端轮播图案例+移动端常用开发插件的使用
触屏事件 常见触屏事件: 触屏touch事件 说明 touchstart 手指触摸到DOM元素时触发 touchmove 手指在DOM元素上滑动时触发 touchend 手指从一个DOM元素上移开时触 ...
- JS 轮播图 图片切换(定时器)
标题JS 轮播图 图片切换(定时器) 这次的轮播图与上次的图片切换相比,仅仅是加上了定时器,使其可以自动切换. 上次的图片切换的链接:https://blog.csdn.net/qq_38318589 ...
- 【原生js】详解轮播图之无缝滚动
前言:轮播图,是网站首页中最常见的一种图片切换特效,作为前端开发者,我相信很多开发者都直接调用了JQuery中的封装好的方法实现图片轮播,省事简单.所以我今天想介绍一下原生js代码实现的图片轮播. 结 ...
- js实现淡入淡出轮播图
js实现淡入淡出轮播图 先描述一下我的思路 第一步:首先使用定位将图片堆积起来 第二步:利用透明度的变化来实现图片的淡入淡出 第三步:设置一个索引,贯穿整个动画过程. 首先,先展示HTML代码: &l ...
- 原生JS实现韩雪冬轮播图
分享一个用原生JS实现的韩雪冬轮播图,效果如下: 实现代码如下: <!DOCTYPE html> <html><head lang="en">& ...
- 2021年原生JS实现韩雪冬轮播图
<!DOCTYPE html> <html><head lang="en"><meta charset="UTF-8" ...
- html轮播台袋效果,使用html+js+css 实现页面轮播图效果(实例讲解)
html 页面 轮播图效果 < > css页面 carousel.css #main{ width: 655px; height: 361px; position: relative; } ...
- 微信小程序—swiper轮播图图片不显示的解决方法
swiper轮播图图片不显示的解决方法 遇到图片无法显示的问题,是样式问题 在wxss里面新型修改 设置宽度 .container{width: 750rpx; } .container swiper ...
- 微信小程序轮播图单独添加图片、修改轮播图图片、单独修改某张图片
小老弟上课的基本见解,有错误欢迎大牛们指正 <!--pages/swiper/swiper.wxml--> <text>pages/swiper/swiper.wxml< ...
- html中轮播图片js代码怎么写,js+html+css实现轮播图
首先先把轮播图的结构搭建起来(html),代码如下: 结构可自行搭建,结构搭建完接着就是用css去进行修饰美化 此时的ul是没有给它设置固定的宽和高的,高可以先设置,宽不能,等下让图片一张接一张一的动 ...
最新文章
- STM32串行通信USART解说笔记
- leetcode算法题--二叉搜索树的后序遍历序列
- git: git add --ignore-removal git add --all 区别
- c语言排序算法 应用与实现,基于C语言排序算法改进与应用.doc
- 从思维图到基础再到深入,java空间查询
- django orm插入一条_如何通过django的ORM远程发布文章?
- ubuntu15.04 php版本,在ubuntu下安装php版本问题
- left join 和inner join关联查询区别
- 蓝牙天线的一点小资料
- Theatre.js 动画JavaScript库
- java实现贪吃蛇小游戏(源码+注释)
- Meshlab源码编译
- 中小型企业网络IP地址规划案例-1
- Python实现逆Radon变换——直接反投影和滤波反投影
- 为什么计算机键盘用不了怎么办,笔记本电脑键盘用不了怎么办
- 使用clion搭建CUDA开发环境
- 5.8 拉普拉斯算子和拉普拉斯矩阵,图拉普拉斯算子推导
- Android中文乱码的分析与解决
- 函数平移口诀_呼和浩特市||初中函数巧平移方法
- 织网模板html5,织网及织网模具、安全护具的制作方法