学习JavaScript笔记

简介: 学习JavaScript笔记

JavaScript Lightbox


介绍如何使用 HTML、JavaScript 与 CSS 来创建 Lightbox,类似相册预览功能。

HTML 代码:

<!-- 图片改为你的图片地址 -->

<h2 style="text-align:center">Lightbox</h2>

 

<div class="row">

 <div class="column">

   <img decoding="async" src="http://static.runoob.com/images/demo/demo1.jpg" style="width:100%" onclick="openModal();currentSlide(1)" class="hover-shadow cursor">

 </div>

 <div class="column">

   <img decoding="async" src="http://static.runoob.com/images/demo/demo2.jpg" style="width:100%" onclick="openModal();currentSlide(2)" class="hover-shadow cursor">

 </div>

 <div class="column">

   <img decoding="async" src="http://static.runoob.com/images/demo/demo3.jpg" style="width:100%" onclick="openModal();currentSlide(3)" class="hover-shadow cursor">

 </div>

 <div class="column">

   <img decoding="async" src="http://static.runoob.com/images/demo/demo4.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 decoding="async" src="http://static.runoob.com/images/demo/demo1.jpg" style="width:100%">

   </div>

 

   <div class="mySlides">

     <div class="numbertext">2 / 4</div>

     <img decoding="async" src="http://static.runoob.com/images/demo/demo2.jpg" style="width:100%">

   </div>

 

   <div class="mySlides">

     <div class="numbertext">3 / 4</div>

     <img decoding="async" src="http://static.runoob.com/images/demo/demo3.jpg" style="width:100%">

   </div>

 

   <div class="mySlides">

     <div class="numbertext">4 / 4</div>

     <img decoding="async" src="http://static.runoob.com/images/demo/demo4.jpg" style="width:100%">

   </div>

 

   <a class="prev" onclick="plusSlides(-1)">&#10094;</a>

   <a class="next" onclick="plusSlides(1)">&#10095;</a>

 

   <div class="caption-container">

     <p id="caption"></p>

   </div>

 

 

   <div class="column">

     <img decoding="async" class="demo cursor" src="http://static.runoob.com/images/demo/demo1.jpg" style="width:100%" onclick="currentSlide(1)" alt="Nature and sunrise">

   </div>

   <div class="column">

     <img decoding="async" class="demo cursor" src="http://static.runoob.com/images/demo/demo2.jpg" style="width:100%" onclick="currentSlide(2)" alt="Trolltunga, Norway">

   </div>

   <div class="column">

     <img decoding="async" class="demo cursor" src="http://static.runoob.com/images/demo/demo3.jpg" style="width:100%" onclick="currentSlide(3)" alt="Mountains and fjords">

   </div>

   <div class="column">

     <img decoding="async" class="demo cursor" src="http://static.runoob.com/images/demo/demo4.jpg" style="width:100%" onclick="currentSlide(4)" alt="Northern Lights">

   </div>

 </div>

</div>

CSS 代码:

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 {

 display: none;

 position: fixed;

 z-index: 1;

 padding-top: 100px;

 left: 0;

 top: 0;

 width: 100%;

 height: 100%;

 overflow: auto;

 background-color: black;

}

 

/* 弹窗内容 */

.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;

}

 

.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;

}

 

/* 鼠标移动上去修改背景色为黑色 */

.prev:hover,

.next:hover {

 background-color: rgba(0, 0, 0, 0.8);

}

 

/* 页数(1/3 etc) */

.numbertext {

 color: #f2f2f2;

 font-size: 12px;

 padding: 8px 12px;

 position: absolute;

 top: 0;

}

 

img {

 margin-bottom: -4px;

}

 

.caption-container {

 text-align: center;

 background-color: black;

 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)

}

JavaScript 代码:

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);

}

 

function showSlides(n) {

 var i;

 var slides = document.getElementsByClassName("mySlides");

 var dots = document.getElementsByClassName("demo");

 var captionText = document.getElementById("caption");

 if (n > slides.length) {slideIndex = 1}

 if (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;

}

目录
相关文章
|
3月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
59 0
|
2月前
|
Web App开发 JavaScript 前端开发
如何学习JavaScript?
如何学习JavaScript?
54 5
|
2月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
34 2
|
2月前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
56 1
|
3月前
|
JavaScript
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
这篇文章介绍了如何将webpack的配置文件分离成开发环境和生产环境的配置文件,以提高打包效率。
59 1
webpack学习五:webpack的配置文件webpack.config.js分离,分离成开发环境配置文件和生产环境配置文件
|
3月前
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
33 2
|
3月前
|
JavaScript
js学习--九宫格抽奖
js学习--九宫格抽奖
24 2
|
3月前
|
JavaScript
js学习--开屏弹窗
js学习--开屏弹窗
51 1
|
3月前
|
JavaScript
js学习--抽奖
js学习--抽奖
26 1
|
3月前
|
JavaScript
js学习--隔行换色
js学习--隔行换色
34 1