Skip to content

给网站和H5应用增加 像微信朋友圈一样 的看图功能,可看大图,双击双指缩放,滑动切换图片,点击返回。A jQuery Plugin for viewing pictures like Wechat moments.

License

Notifications You must be signed in to change notification settings

mantoufan/yzhanImageViewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

29689e6 · Aug 20, 2022

History

55 Commits
Aug 18, 2022
Aug 18, 2022
Aug 18, 2022
Sep 10, 2020
Aug 20, 2022
Aug 18, 2022
Aug 18, 2022
Aug 20, 2022

Repository files navigation

yzhanImageViewer Y 站影像查看器

给网站和H5应用增加 像微信朋友圈一样 的看图功能,可看大图,双击双指缩放,滑动切换图片,点击返回。
A jQuery Plugin for viewing pictures like Wechat moments.

灵感

IMWeb 微信朋友圈项目

演示

使用

全屏 点击 图片 / 视频
切换 滑动 / 鼠标拖拽 / ←→键 / 小圆点 / 切换按钮
缩放 双指 / 双击
还原 双击 / R键
拖动 单指 / 鼠标拖拽
返回 单击 / ESC键

安装

浏览器

  1. 本插件依赖jQuery,请先引入jQuery
    <script type='text/javascript' src="https://cdn.jsdelivr.net/combine/npm/jquery@1.12.4"></script>
    
  2. 再引入本插件
  • CDN
    <link href="https://cdn.jsdelivr.net/npm/yzhanimageviewer@latest/dist/jquery.yzhanimageviewer.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/yzhanimageviewer@latest/dist/jquery.yzhanimageviewer.min.js"></scirpt>
    
  • 下载到本地 https://github.com/mantoufan/yzhanImageViewer/releases

配置

选项

$(areaSelector).yzhanImageViewer({
    selector: 'img',
    attrSelector: 'src',
    parentSelector: 'div',
    className: 'img-viewer',
    debug: false,
    onChange: function(curIndex, preIndex, viewerElements, socureElements) {},
    onOpen: function(curIndex, viewerElements, socureElements) {},
    onClose: function(curIndex, viewerElements, socureElements) {},
    controls: {
        reverseDrag: {x: true, y: true},
        canChange: false
    }
});
  • areaSelector {jQuery选择器} 区域选择器
    • 后面的所有设置都会应用在这个区域内的图片 / 视频上
    • 同一页面,不同区域,设置相同,可在选择器一次选中这些区域,英文半角逗号,分隔也可
    • 同一页面,不同区域,设置不同,可声明多个jQuery选择器.yzhanImageViewer(options)
  • selector {jQuery选择器} 元素选择器
    • 元素可以是图片(未来包括视频),也可以是包含图片地址属性的元素(懒加载场景)
  • attrSelector {属性名} 属性选择器
    • 元素上的哪个属性,包含真实图片地址。
  • parentSelector {jQuery选择器} [父级元素选择器] 可选
    • 需要对区域内的多张图片分组时,可用该属性标识 每组图片的父级容器。
    • 图片切换只在同组图片间进行。
    • 该属性为空时,整个区域的图片为一组。
  • className {样式名} [查看器样式名] 可选
    • 多个样式名可用 英文半角空格 分隔。
    • 常用属性名:
      • max-width 查看器最大宽度,默认为全屏,设置后,宽度不能超过最大宽度,位置水平居中
      • background-color 查看器背景颜色,默认是黑色,可以设置其他颜色
  • debug {布尔值} [调试模式] 可选
    • 设置为true后,放缩操作时,左上角,会显示被操作影像的坐标。
  • onChange {函数} [切换时调用] 可选
    • 当用户切换 影像 时,调用。
    • 按先后顺序,传入两个参数
      • curIndex 切换后影像在内的索引值,内,按从上到下,从左往右顺序,从0开始,下同
      • preIndex 切换前影像在内的索引值
      • viewerElements :查看器中的元素数组
      • socureElements :文档中的元素数组
  • onOpen {函数} [查看器打开时调用] 可选
    • 当 影像 被点击放大,即 查看器打开时,调用
    • 传入参数
      • curIndex 被放大影像在内的索引值
      • viewerElements :查看器中的元素数组
      • socureElements :文档中的元素数组
  • onClose {函数} [查看器关闭时调用] 可选
    • 点击返回,即 查看器关闭时,调用
    • 传入参数
      • curIndex 关闭前正在浏览的影像在内的索引值
      • viewerElements :查看器中的元素数组
      • socureElements :文档中的元素数组
  • controls {对象} 控件参数 [设置查看器功能] 可选 1.0.1版本新增
    • reverseDrag {对象} 影像移动方向 与 滑动及拖拽方向 方向,默认 与Windows设备体验相同,反向后与 苹果设备 体验相同
      • x {布尔值} false(默认) | true 水平方向是否反向
      • y {布尔值} false(默认) | true 竖直方向是否反向
    • canChange {布尔值} true(默认) | false 是否允许切换

图示

层级关系:areaSelector > parentSelector > selector

方法

  • $.fn.yzhanImageViewer.open({currentUrl, [urls], [onOpen]}) 打开查看器
    • currentUrl {String} 当前地址
    • urls {Array} 所有地址数组,可选
    • onOpen {Function} 当查看器被打开时调用,可选
  • $.fn.yzhanImageViewer.close({[selector], [onClose]}) 关闭查看器
    • selector {String} 元素的选择器,关闭时,查看器逐渐缩小到这个元素,可选,为空时,查看器渐渐隐藏
    • onClose {Function} 当查看器被关闭时调用,可选
  • $.fn.yzhanImageViewer.change({index, [onChange]}) 切换
    • index {Integer} 要跳转第几个影像。内从0开始,小于0,跳转到第一张,大于小组最多的影像数量,跳转到最后一张
    • onChange {Function} 切换时调用,可选

第三方应用

  • rgbaster.js
    https://github.com/briangonzalez/rgbaster.js
    一款优秀的识别图片主题色的JS插件
    引入rgbaster.js 1.0.0

    <script type='text/javascript' src="https://cdn.jsdelivr.net/combine/npm/rgbaster@1.0.0"></script>
    

    通过rgbaster.js,在点击放大图片onOpen和图片切换onChange时,更新背景色

    /**
    * 使用图片的主要颜色值设置背景色
    * @param {Integer} curIndex 当前图片的索引值
    */
    function setBgWithDominantColor(curIndex) {
        var img = $('.yz-img-list').children().eq(curIndex).children('img')[0];
        if (img.src.indexOf('file://') === -1) {
            RGBaster.colors(img, {
                paletteSize: 1,
                success: function(payload) {
                    $('.yz-img-viewer').css('backgroundColor', payload.palette[0]);
                }
            });
        }
    }
    $('.main').yzhanImageViewer({
        selector: 'img',
        attrSelector: 'src',
        parentSelector: 'div',
        className: 'img-viewer',
        debug: false,
        onChange: function(curIndex, preIndex) {
            setBgWithDominantColor(curIndex);
        },
        onOpen: function(curIndex) {
            setBgWithDominantColor(curIndex);
        }
    });
    

    完整代码您可以参考我们的演示DEMO源码。

  • shopXO 图片查看器 插件

shopXO 图片查看器 插件介绍

待办事项

  • 支持视频

About

给网站和H5应用增加 像微信朋友圈一样 的看图功能,可看大图,双击双指缩放,滑动切换图片,点击返回。A jQuery Plugin for viewing pictures like Wechat moments.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published