📜  magnific popup img (1)

📅  最后修改于: 2023-12-03 15:32:47.861000             🧑  作者: Mango

Magnific Popup Img - 弹出层图片插件

Magnific Popup Img 是一个基于 jQuery 的插件,用于在网页中显示图片弹出层。它支持多种类型的图片显示,包括缩略图、媒体文件和 Ajax 内容等。此外,它还支持模态窗口、响应式布局和手势事件等功能。

特点
  • 简单易用:只需引入必要的文件,并在 HTML 元素中添加相应的类名和属性即可。
  • 功能强大:支持多个图片类型的显示和响应式布局,支持键盘控制,支持手势事件和拖拽操作等。
  • 定制性强:支持多种设置选项,可以通过回调函数和自定义 CSS 样式来实现个性化定制。
  • 兼容性高:支持多种浏览器和设备,包括 Chrome、Firefox、IE9+、Safari、iOS 和 Android 等。
安装和使用
安装

首先,需要在 HTML 页面中引入 Magnific Popup Img 的相关文件,包括 CSS 样式文件和 JavaScript 文件。

<!-- 引入 CSS 样式文件 -->
<link rel="stylesheet" href="path/to/magnific-popup.css">

<!-- 引入 JavaScript 文件 -->
<script src="path/to/jquery.min.js"></script>
<script src="path/to/jquery.magnific-popup.min.js"></script>
使用

Magnific Popup Img 的使用非常简单,只需在 HTML 元素中添加相应的类名和属性即可。

<!-- 缩略图模式 -->
<a href="path/to/full/image.jpg" class="magnific-popup">
  <img src="path/to/thumbnail/image.jpg">
</a>

<!-- 媒体文件模式 -->
<a href="path/to/media/file.mp4" class="magnific-popup">
  <video src="path/to/thumbnail/image.jpg"></video>
</a>

<!-- Ajax 内容模式 -->
<a href="path/to/ajax/content.html" class="magnific-popup-ajax">Ajax</a>
// 初始化 Magnific Popup Img 插件
$('.magnific-popup').magnificPopup({
  type: 'image' // 图像模式
});

$('.magnific-popup-ajax').magnificPopup({
  type: 'ajax' // Ajax 内容模式
});
设置选项

Magnific Popup Img 支持多种设置选项,可以通过传递一个包含设置选项的 JavaScript 对象来实现。以下是一些常用的设置选项:

type

设置弹出层的类型,包括:图片(image)、媒体文件(iframe、ajax、inline)和 Ajax 内容(ajax)等。

type: 'image'
gallery

设置是否启用图片集合功能,即允许在弹出层中切换多张图片。

gallery: {
  enabled: true, // 启用图片集合
  navigateByImgClick: true, // 图片单击导航
  arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>', // 切换箭头 HTML
  tPrev: 'Previous (Left arrow key)', // 上一张图片的提示
  tNext: 'Next (Right arrow key)', // 下一张图片的提示
  tCounter: '<span class="mfp-counter">%curr% of %total%</span>' // 计数器 HTML
}
zoom

设置是否启用缩放功能,即允许在弹出层中放大和缩小图片。

zoom: {
  enabled: true, // 启用缩放功能
  duration: 300, // 动画持续时间(毫秒)
  easing: 'ease-in-out', // 缓动函数
  opener: function(openerElement) {
    return openerElement.is('img') ? openerElement : openerElement.find('img');
  } // 缩放元素设置函数
}
iframe

设置嵌入式 iframe 的选项,包括宽度、高度、最小宽度和最小高度等。

iframe: {
  markup: '<div class="mfp-iframe-scaler">'+
            '<div class="mfp-close"></div>'+
            '<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>'+
          '</div>', // iframe HTML
  patterns: {
    youtube: {
      index: 'youtube.com/',
      id: 'v=',
      src: '//www.youtube.com/embed/%id%?autoplay=1'
    } // 添加 YouTube 模板
  },
  srcAction: 'iframe_src', // iframe src 属性名
  width: 800, // iframe 宽度
  height: 600, // iframe 高度
  minWidth: 200, // 最小宽度
  minHeight: 200 // 最小高度
}

更多设置选项,请参考官方文档。

回调函数

Magnific Popup Img 支持多个回调函数,可以在弹出层的不同状态下调用。以下是一些常用的回调函数:

beforeOpen

弹出层打开前调用的回调函数。

beforeOpen: function() {
  console.log('准备打开弹出层...');
}
open

弹出层打开时调用的回调函数。

open: function() {
  console.log('弹出层已打开。');
}
beforeClose

弹出层关闭前调用的回调函数。

beforeClose: function() {
  console.log('准备关闭弹出层...');
}
close

弹出层关闭时调用的回调函数。

close: function() {
  console.log('弹出层已关闭。');
}
自定义样式

通过自定义 CSS 样式,可以实现对 Magnific Popup Img 的个性化定制。以下是一些常用的 CSS 样式:

背景覆盖层
/* 背景颜色 */
.mfp-bg {
  background-color: #000000;
}

/* 透明度 */
.mfp-bg.mfp-ready {
  opacity: 0.8;
}
弹出层容器
/* 容器宽度 */
.mfp-container {
  width: 80%;
  max-width: 1200px;
}

/* 容器边框 */
.mfp-container:before,
.mfp-container:after {
  content: "";
  display: table;
}

.mfp-container:after {
  clear: both;
}

.mfp-container:before,
.mfp-content:before,
.mfp-content:after {
  box-sizing: border-box;
  border: 1px solid #cccccc;
  border-radius: 3px;
}

.mfp-container:before {
  margin: 30px auto;
  width: 100%;
}

.mfp-content:before,
.mfp-content:after {
  margin: 10px;
}

/* 容器阴影 */
.mfp-container:before {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
关闭按钮
/* 按钮样式 */
button.mfp-close {
  position: absolute;
  top: -15px;
  right: -15px;
  width: 30px;
  height: 30px;
  padding: 0;
  background-color: transparent;
  border: none;
  cursor: pointer;
}

/* 图标样式 */
button.mfp-close:before,
button.mfp-close:after {
  content: "";
  display: block;
  width: 2px;
  height: 24px;
  background-color: #ffffff;
  position: absolute;
  top: 3px;
  left: 14px;
  transform: rotate(45deg);
}

button.mfp-close:after {
  transform: rotate(-45deg);
}
总结

Magnific Popup Img 是一个功能强大、易于使用且高度可定制的弹出层图片插件。它提供了多种图片类型的显示和响应式布局,同时支持多种设置选项、回调函数和自定义 CSS 样式。如果你需要在网页中显示图片弹出层,Magnific Popup Img 绝对值得一试。