如何使用HTML CSS和JavaScript创建图片灯箱画廊

创建图片灯箱画廊通常采用的技术包含了HTML、CSS和JavaScript三种语言。下面我们将详细讲解如何使用这三种语言来创建图片灯箱画廊。

创建HTML代码

我们先来创建HTML代码,在HTML中包含了整个网页的结构和内容信息。在创建HTML时,常规做法是先创建一个HTML模板,在模板中包含了网页的基本信息。代码示例如下:

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>图片灯箱画廊</title>
</head>
<body>
  <h1>图片灯箱画廊</h1>

  <div id="gallery">
    <img src="http://example.com/image1.jpg" alt="">
    <img src="http://example.com/image2.jpg" alt="">
    <img src="http://example.com/image3.jpg" alt="">
    <img src="http://example.com/image4.jpg" alt="">
  </div>

  <div id="lightbox">
    <img src="">
  </div>

  <script src="gallery.js"></script>
</body>
</html>

在这个模板中,我们使用了HTML5的语法,定义了网页的基本结构和内容。其中,<h1>标签定义了网页的标题,<div>标签用于定义画廊和灯箱的容器。在画廊的容器中,我们定义了4张图片,这里使用了示例图片的链接,读者可以自行替换为自己的图片链接。在灯箱的容器中,我们定义了一个空的<img>标签,用于显示选中的图片。

创建CSS样式

我们需要使用CSS样式来美化我们的图片灯箱画廊。在CSS中,我们要为画廊和灯箱容器、图片样式提供相关的样式代码。代码示例如下:

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
}

body {
  font-family: 'Helvetica Neue', 'Helvetica', Arial, sans-serif;
  background-color: #f1f1f1;
  text-align: center;
  padding-top: 50px;
}

#gallery {
  margin: 40px auto;
  max-width: 800px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  grid-gap: 20px;
  justify-items: center;
  align-items: center;
}

#gallery img {
  cursor: pointer;
  max-width: 100%;
  height: auto;
}

#lightbox {
  position: fixed;
  display: none;
  background: rgba(0, 0, 0, 0.8);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  z-index: 100;
}

#lightbox img {
  max-width: 100%;
  height: auto;
  margin-top: 10%;
  margin-bottom: 10%;
}

在上述代码中,我们先设置了全局样式,包括了盒模型样式、页面结构和背景颜色。接下来我们定义了画廊和灯箱容器的样式,包括了容器的位置、大小、显示方式和对齐方式等属性。在样式中我们也提供了图片的样式,包括图片样式、鼠标指针形状等属性。通过这些样式的定义可以使我们的画廊和灯箱更加美化。

创建JavaScript脚本

随着HTML和CSS的完成,我们现在需要编写与之关联的JavaScript代码,通过JavaScript实现灯箱的切换效果。具体的JavaScript示例代码可以如下:

var gallery = document.getElementById('gallery');
var items = gallery.getElementsByTagName('img');

var lightbox = document.getElementById('lightbox');
var close = lightbox.getElementsByTagName('img')[0];
var content = lightbox.getElementsByTagName('img')[1];

for (var i = 0; i < items.length; i++) {
  items[i].addEventListener('click', function() {
    var src = this.src;
    lightbox.style.display = 'block';
    content.src = src;
  });
}

close.addEventListener('click', function() {
  lightbox.style.display = 'none';
});

在上述代码中,我们首先获取了我们在HTML中定义的画廊和灯箱容器对象。接下来我们绑定了画廊容器中的每个图片的点击事件,并且将点击的图片赋值给灯箱中的展示图片对象,同时显示灯箱容器。最后我们绑定了灯箱关闭按钮的点击事件,当点击该按钮时,隐藏灯箱容器。

示例一

以上三段代码的整合文件的在线演示:https://codepen.io/pen/?editors=1010

示例二

在示例一上,我们进一步优化了灯箱的功能,增加了自动循环切换和手动关闭功能。代码示例如下:

var gallery = document.getElementById('gallery');
var items = gallery.getElementsByTagName('img');

var lightbox = document.getElementById('lightbox');
var prev = lightbox.querySelector('.prev');
var next = lightbox.querySelector('.next');
var close = lightbox.querySelector('.close');
var content = lightbox.querySelector('.content');

var currentIndex = 0, maxIndex = items.length - 1;

function showSlide(index) {
  var item = items[index];
  var src = item.src;
  content.src = src;
}

function nextSlide() {
  if (currentIndex === maxIndex) {
    currentIndex = 0;
  } else {
    currentIndex++;
  }
  showSlide(currentIndex);
}

function prevSlide() {
  if (currentIndex === 0) {
    currentIndex = maxIndex;
  } else {
    currentIndex--;
  }
  showSlide(currentIndex);
}

for (var i = 0; i < items.length; i++) {
  items[i].addEventListener('click', function() {
    var index = Array.prototype.indexOf.call(items, this);
    showSlide(index);
    lightbox.style.display = 'block';
    currentIndex = index;
  });
}

close.addEventListener('click', function() {
  lightbox.style.display = 'none';
});

prev.addEventListener('click', function() {
  prevSlide();
});

next.addEventListener('click', function() {
  nextSlide();
});

setInterval(function() {
  nextSlide();
}, 5000);

在这个示例中,我们在灯箱中增加了向前和向后切换按钮,并且增加了自动切换效果。我们定义了一个当前显示图片的索引,增加了展示方法和切换方法。我们在画廊图片的点击事件中增加了当前索引的记录,并且显示第一张图片。在关闭按钮的点击事件中我们只需要关闭灯箱容器即可。在切换按钮的点击事件中,我们使用前一张和后一张切换效果方法,并且超出图片索引的范围进行处理。最后在自动循环切换定时器中,我们调用了后一张切换效果方法,实现了自动循环切换的效果。

附上一个多图轮播展示的在线链接:http://mygoshop.info/demo/photo/1353.htm

通过上述示例,我们了解了如何使用HTML、CSS和JavaScript技术实现图片灯箱画廊的功能,能够让用户更好地进行图片的浏览和展示,具备较高的使用价值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用HTML CSS和JavaScript创建图片灯箱画廊 - Python技术站

(0)
上一篇 2023年5月12日
下一篇 2023年5月12日

相关文章

  • jQuery UI Checkboxradio禁用选项

    以下是关于 jQuery UI Checkboxradio 禁用选项的详细攻略: jQuery UI Checkboxradio 禁用选项 jQuery UI Checkboxradio 可以通过 disable() 方法禁用复选框或单选框。此外,还可以通过 option() 方法禁用特定的选项。 禁用整个复选框或单选框 使用 disable() 方法可以禁…

    jquery 2023年5月11日
    00
  • jQWidgets jqxGrid getrowid()方法

    以下是关于“jQWidgets jqxGrid getrowid()方法”的完整攻略,包含两个示例说明: 方法简介 jqxGrid 控件的 getrowid() 方法用于获取指定行的 ID。该方法的语法如下: $("#jqxGrid").jqxGrid(‘getrowid’, rowindex); 在上述语法中,#jqxGrid 表示 j…

    jquery 2023年5月10日
    00
  • jQWidgets jqxTreeGrid getRow()方法

    以下是关于 jQWidgets jqxTreeGrid 组件中 getRow() 方法的详细攻略。 jQWidgets jqxTreeGrid getRow() 方法 jQWidgets jqxTreeGrid 的 getRow() 方法用于获取指定行的对象。您可以使用此方法来获取行的对象,以便在其他操作中使用。 语法 var row = $(‘#treeg…

    jquery 2023年5月12日
    00
  • jQWidgets jqxPivotGrid pivotcellmousedown事件

    以下是关于 jQWidgets jqxPivotGrid 组件中 pivotcellmousedown 事件的详细攻略。 jQWidgets jqxPivotGrid pivotcellmousedown 事件 jQWidgets jqxPivotGrid 组件的 pivotcellmousedown 事件在用户按下鼠标左键并在透视表中的单元格上移动时触发。…

    jquery 2023年5月12日
    00
  • jquery 正整数数字校验正则表达式

    下面是详细讲解”jquery 正整数数字校验正则表达式”的完整攻略。 什么是正则表达式? 正则表达式是一种通过字符匹配来进行字符串匹配的方法。正则表达式使用了一些特殊字符和字符类来识别字符串模式,可以有效地进行数据校验。 jquery 正整数数字校验正则表达式 下面是一个简单的正则表达式,用于校验正整数数字: /^[1-9]\d*$/ 其中: /^ 表示以什…

    jquery 2023年5月28日
    00
  • 如何在一个数组中使用jQuery获得所有选中的复选框

    下面我来为你讲解如何在一个数组中使用jQuery获得所有选中的复选框。本文将分为以下几个步骤来讲解: HTML结构 jQuery选择器 获取选中的复选框 添加到数组中 示例说明 1. HTML结构 为了演示如何获取选中的复选框,首先我们需要在HTML中创建一组复选框: <input type="checkbox" name=&quo…

    jquery 2023年5月12日
    00
  • jQuery :last-child选择器

    以下是关于jQuery中的:last-child选择器的完整攻略: 什么是jQuery中的:last-child选择器? jQuery中的:last-child选择器是一种用于选择某个元素的最后一个子元素的语法。使用这个选择器可以轻松选择某个元素的最后一个子元素对其操作。 如何使用jQuery中的:last-child选择器? 可以使用以下代码来选择某个元素…

    jquery 2023年5月12日
    00
  • jQuery :last 选择器

    以下是关于jQuery中的:last选择器的完整攻略: 什么是jQuery中的:last选择器? jQuery中的:last选择器是一种用于选择某个元素的最后一个元素的语法。使用这个选择器可以轻松选择某个元素的最后一个元素对其进行操作。 如何使用jQuery中的:last选择器? 可以使用以下代码来选择某个元素的最后一个元素: $("parent-…

    jquery 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部