手机图片预览插件photoswipe.js使用总结

yizhihongxing

手机图片预览插件photoswipe.js使用总结

介绍

Photoswipe是一个JavaScript库,用于提供可缩放的图像轮廓,并适用于所有现代桌面和移动浏览器,具有触摸屏支持和响应式图像大小。它通过全局的脚本文件或模块的方式来使用。它可以很容易地与jQuery、React、Angular、Vue等框架集成。

安装

Photoswipe是一个基于jQuery的插件,在使用之前您需要先引入jQuery。可以通过以下方式引入:

<script src="https://cdn.bootcss.com/jquery/3.6.0/jquery.min.js"></script>

同时,需要引入Photoswipe库文件。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe.min.js"></script>

使用

基本步骤

以下是在网站上使用Photoswipe进行图片预览的基本步骤:

  1. 创建HTML结构

Photoswipe需要一个合适的HTML结构。需要一个列表来显示所有要预览的图像。所以你需要以下的HTML结构:

<div class="my-gallery" itemscope itemtype="http://schema.org/ImageGallery">

    <figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
        <a href="path/to/full/image.jpg" data-size="widthxheight">
            <img src="path/to/thumbnail/image.jpg" itemprop="thumbnail" alt="Image description" />
        </a>
        <figcaption itemprop="caption description">Image caption 1</figcaption>
    </figure>

    ...
    ...
    ...

</div>
  1. 初始化Gallery
$('.my-gallery').each(function() { 
    var $pic     = $(this),
        getItems = function() {
            var items = [];
            $pic.find('figure').each(function() {
                var $href   = $(this).find('a').attr('href'),
                    $size   = $(this).find('a').data('size').split('x'),
                    $width  = $size[0],
                    $height = $size[1];

                var item = {
                    src : $href,
                    w   : $width,
                    h   : $height
                }

                items.push(item);
            });
            return items;
        }

    var items = getItems();

    var $pswp = $('.pswp')[0];
    $pic.on('click', 'figure', function(event) {
        event.preventDefault();

        var index = $(this).index();
        var options = {
            index: index,
            bgOpacity: 0.7,
            showHideOpacity: true
        }

        var gallery = new PhotoSwipe($pswp, PhotoSwipeUI_Default, items, options);
        gallery.init();
    });
});

这样就制作出来了一个基本的图像展示器。这其中 .pswp 是photoswipe默认的UI布局,一般来说你不需要改变它.

示例说明

假设我们有一组图片需要进行展示,我们按照如下结构来展示:

<div class="my-gallery" itemscope itemtype="http://schema.org/ImageGallery">
    <figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
        <a href="https://source.unsplash.com/8Eg5jD1ksUI/1600x900" data-size="1600x900">
            <img src="https://source.unsplash.com/8Eg5jD1ksUI/400x400" itemprop="thumbnail" alt="Image description" />
        </a>
        <figcaption itemprop="caption description">Image caption 1</figcaption>
    </figure>
    <figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
        <a href="https://source.unsplash.com/1IM6Zu05_4g/1600x900" data-size="1600x900">
            <img src="https://source.unsplash.com/1IM6Zu05_4g/400x400" itemprop="thumbnail" alt="Image description" />
        </a>
        <figcaption itemprop="caption description">Image caption 2</figcaption>
    </figure>
</div>

这里我们创建了一个 div.my-gallery 的元素,其中我们定义了两个 figure 元素,每个 figure 元素包含一个 a 元素创建一张图片预览,同时增加了一个 data-size 属性,用来指定图片的实际大小。

然后按照上面初始化Gallery的方式进行调用:

$('.my-gallery').each(function() { 
    var $pic     = $(this),
        getItems = function() {
            var items = [];
            $pic.find('figure').each(function() {
                var $href   = $(this).find('a').attr('href'),
                    $size   = $(this).find('a').data('size').split('x'),
                    $width  = $size[0],
                    $height = $size[1];

                var item = {
                    src : $href,
                    w   : $width,
                    h   : $height
                }

                items.push(item);
            });
            return items;
        }

    var items = getItems();

    var $pswp = $('.pswp')[0];
    $pic.on('click', 'figure', function(event) {
        event.preventDefault();

        var index = $(this).index();
        var options = {
            index: index,
            bgOpacity: 0.7,
            showHideOpacity: true
        }

        var gallery = new PhotoSwipe($pswp, PhotoSwipeUI_Default, items, options);
        gallery.init();
    });
});

这段JavaScript代码中,我们首先获取到每一个 .my-gallery 元素,通过 getItems 函数来获取图片的信息(src, w, h),通过 index 变量记录当前的index,通过定义 options 变量来初始化一个新的照片展示器gallery并开始展示。

总结

将Photoswipe插件作为您网站上的图片预览插件是一个很好的选择。在本文中,我详细介绍了如何安装和使用该插件。示例说明是为了让您更好地了解使用方式。 Photoswipe有很多不同的属性和选项来控制展示器的功能和外观。希望您在此基础上可以掌握Photoswipe的基本使用方式并进行使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:手机图片预览插件photoswipe.js使用总结 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • javascript:;与javascript:void(0)使用介绍

    当我们在HTML中使用”href”属性来定义一个链接时,有时会使用”javascript:”或”javascript:void(0)”作为链接的href值。这两个值虽然都可以用来防止页面跳转,但它们的作用是有所不同的。 “javascript:;” “javascript:;”这个值通常用来防止a标签产生默认跳转行为,因为当a标签的href属性的值为空时,点…

    JavaScript 2023年5月17日
    00
  • 用javascript实现改善用户体验之alert提示效果

    下面是用javascript实现改善用户体验之alert提示效果的完整攻略。 一、alert提示框的不足 在很多情况下,我们需要对用户进行提示,告诉他们一些信息。在JavaScript中,最常用的提示方式就是使用alert框。 使用alert提示框的优点是简单易用,可以快速开发。但缺点也是十分明显的,如下: 使用alert框会打断用户的操作,从而降低用户的体…

    JavaScript 2023年6月10日
    00
  • js实现的奥运倒计时时钟效果代码

    我来给您介绍一下实现JavaScript奥运倒计时时钟效果的完整攻略。 1.准备工作 在对奥运倒计时时钟效果进行实现之前,我们需要先准备好一些技术和资源: HTML页面 CSS样式文件 JavaScript代码 首先,在HTML页面中,我们需要创建一个div标签,用来作为倒计时时钟显示的容器。可以为这个div添加一个id属性,方便后续的JavaScript代…

    JavaScript 2023年5月27日
    00
  • JavaScript常见手写题超全汇总

    JavaScript常见手写题超全汇总 1. 前言 在面试以及实际工作中,常常需要手写一些核心的JavaScript代码。这些手写题目可能比较简单、或者非常复杂,但是它们都对JavaScript基础功夫有一个更加深刻的理解。 在本篇文章中,我们将会汇总一些常见的JavaScript手写题,包括但不限于:数组去重、深拷贝、Promise实现、函数柯里化等等。 …

    JavaScript 2023年5月18日
    00
  • JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现

    JavaScript高级程序设计 阅读笔记(十四)讲解了JavaScript中的继承机制以及其实现方式。下面是我总结的一个完整攻略: 继承机制的本质 JavaScript采用原型(prototype)继承机制。当访问一个对象的属性时,JavaScript引擎会首先查找该对象自身是否有这个属性。如果存在,则直接返回该属性值;如果不存在,则继续查找该对象的原型对…

    JavaScript 2023年5月27日
    00
  • JavaScript面试中常考的字符串操作方法大全(包含ES6)

    JavaScript面试中常考的字符串操作方法大全(包含ES6) 1. 字符串长度 获取字符串长度可以使用length属性,例如: const str = ‘Hello World’; console.log(str.length); // 11 2. 字符串索引 可以使用方括号([])来访问字符串中的单个字符,例如: const str = ‘Hello …

    JavaScript 2023年5月28日
    00
  • JS实现运动缓冲效果的封装函数示例

    JS实现运动缓冲效果是前端开发中常见的问题之一。我们可以封装一个函数来实现这个效果,方便快捷地进行运动缓冲效果的实现。 函数封装过程 封装函数涉及到一些关键的概念: 运动开始点 运动结束点 运动距离 运动时间 每一帧的运动距离 运动速度 缓冲系数 基于上述概念,简单描述实现运动缓冲效果的封装函数示例的攻略如下: 确定函数参数 封装函数需要定义函数的参数,以便…

    JavaScript 2023年6月11日
    00
  • JS实现清除指定cookies的方法

    清除指定的cookie,可以使用以下JS代码: function clearCookie(name) { document.cookie = name + ‘=;expires=Thu, 01 Jan 1970 00:00:01 GMT;’; } 此代码中,我们定义了一个clearCookie函数,这个函数需要传递一个cookie名作为参数。在函数内部,我们…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部