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

手机图片预览插件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日

相关文章

  • 全屏js头像上传插件源码高清版

    下面我将为你详细讲解“全屏js头像上传插件源码高清版”的完整攻略。 全屏js头像上传插件源码高清版 介绍 “全屏js头像上传插件源码高清版”是一款可供网页端使用的头像上传插件,能够帮助用户实现全屏界面下进行头像的上传。该插件基于Javascript语言进行开发,支持主流的浏览器(如Chrome、Firefox等)。 特点: 界面简洁、美观; 支持图片预览、拖…

    JavaScript 2023年6月11日
    00
  • Javascript倒计时(定时)执行跳转事件的代码

    下面我将详细讲解“Javascript倒计时(定时)执行跳转事件的代码”的完整攻略。 目标 我们的目标是在网页上实现倒计时(定时)功能,到达指定的时间后自动跳转到某一个指定页面。 实现思路 实现该功能的思路如下: 获取当前时间和目标时间之间的时间差,并通过一定算法将其转换成剩余的天数、小时数、分钟数、秒数。 通过 JavaScript 中的 setInter…

    JavaScript 2023年5月27日
    00
  • 如何让页面在打开时自动刷新一次让图片全部显示

    首先,我们需要了解网页自动刷新的原理。网页的自动刷新可以通过设置HTTP响应头实现。HTTP响应头部分可以通过前端开发工具或后端框架来设置。最常用的设置自动刷新的HTTP响应头是Refresh和Location,下面分别介绍两种设置方法。 一、Refresh方式 Refresh方法通过设置HTTP响应头Refresh,来指定页面自动刷新的时间和路径。具体设置…

    JavaScript 2023年6月11日
    00
  • javascript数据类型详解

    JavaScript数据类型详解 JavaScript是一种弱类型的编程语言,因此在进行变量赋值、函数传参等操作时,需要了解JavaScript的数据类型,以保证程序的正确性。本文将介绍JavaScript的各种数据类型及其使用。 基本数据类型 数字类型(Number) JavaScript中的数字类型包括整数和浮点数,在进行应用开发时可以进行和常见的数学运…

    JavaScript 2023年5月18日
    00
  • jQuery Validate表单验证插件 添加class属性形式的校验

    步骤 首先在HTML页面中引入jQuery和jQuery Validate插件的js文件。 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.boot…

    JavaScript 2023年6月10日
    00
  • Javascript Date setMonth() 方法

    以下是关于JavaScript Date对象的setMonth()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的setMonth()方法 JavaScript Date对象的setMonth()方法设置日期对象的月份部分。该方法接受一个整数,表示要设置的月份。月份从0开始,即0表示一月,11表示十二月。如果该参数超出了JavaScr…

    JavaScript 2023年5月11日
    00
  • 盘点javascript 正则表达式中 中括号的【坑】

    盘点 JavaScript 正则表达式中中括号的【坑】 在使用 JavaScript 正则表达式时,中括号 […] 是非常常见也非常重要的语法,它可以用于匹配一组字符中的任意一个字符。但是,在使用中括号时,也需要注意一些坑点。 1. 中括号中的 – 的意义 在中括号中如果使用 – 连接两个字符,表示匹配范围,例如 [0-9] 表示匹配 0 到 9 之间的…

    JavaScript 2023年6月10日
    00
  • js中prototype用法详细介绍

    “js中prototype用法详细介绍”的攻略如下: 1. 什么是prototype 在javascript中,每个对象有一个特殊的属性__proto__,指向其构造函数的原型对象(prototype)。原型对象中存储着对象的方法和属性。使用原型机制,可以使所有对象共享相同的属性和方法,而不必为每个对象创建副本。 2. 为什么需要prototype 在jav…

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