配置使用 jQuery Magnify 图片查看器

R统计师
• 阅读 3205

效果预览:

https://zdmaoa.gitee.io/jquery_magic_image_viewer/


使用方法:

1. 下载文件

官方项目地址:https://github.com/thdoan/magnify

或者这里下载,只保留了需要的文件:码云地址
需要用到 assets 文件夹里的css和js

2. html

data-src 是大图链接 这里可以不用添加data-src属性,后面可以用jq追加

<img data-src="" src="">

3. css

  <!-- bootstrap -->
  <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  <!-- magnify -->
  <link href="./assets/css/jquery.magnify.min.css" rel="stylesheet">
  <!-- 阿里图标 -->
  <link rel="stylesheet" href="https://at.alicdn.com/t/font_1576642_nvbefyzwm6.css">
  <style>
    .magnify-modal {
      box-shadow: 0 0 20px rgba(0, 0, 0, 0.25) !important;
      overflow: hidden;
    }

    .magnify-header .magnify-toolbar {
      background-color: rgba(0, 0, 0, 0.5) !important;
    }

    .magnify-stage {
      top: 0 !important;
      right: 0 !important;
      bottom: 0 !important;
      left: 0 !important;
      border-width: 0 !important;
    }

    .magnify-footer .magnify-toolbar {
      background-color: rgba(0, 0, 0, 0.5) !important;
      border-top-left-radius: 5px !important;
      border-top-right-radius: 5px !important;
    }

    .magnify-header,
    .magnify-footer {
      pointer-events: none !important;
    }

    .magnify-button {
      pointer-events: auto !important;
    }

    .magnify-toolbar.magnify-head-toolbar {
      background: none !important;
    }

    .magnify-toolbar.magnify-head-toolbar>button {
      border-radius: 100% !important;
      background: rgba(0, 0, 0, 0.5);
      margin: 5px 5px 0 0 !important;
    }

    .magnify-toolbar.magnify-foot-toolbar {
      border-radius: 50px !important;
    }

    .magnify-modal i {
      font-size: 20px;
    }

    .magnify-footer .magnify-toolbar {
      padding: 0 10px;
    }
  </style>

4. js (手动初始化方法)

  <!-- jquery -->
  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
  <!-- bootstrap -->
  <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <!-- magnify -->
  <script src="./assets/js/jquery.magnify.min.js"></script>
  <script>
    //给图片添加data-src属性
    $('.singel-news-info img').each(function () {
        $(this).attr('data-src', $(this).attr('src'));
    });
    
    //初始化magnify图片查看器
    $('img').magnify({
      draggable: true,
      resizable: true,
      movable: true,
      keyboard: true,
      title: false,
      modalWidth: 320,
      modalHeight: 320,
      fixedContent: true,
      fixedModalSize: false,
      initMaximized: false,
      gapThreshold: 0.02,
      ratioThreshold: 0.1,
      minRatio: 0.1,
      maxRatio: 16,
      // 顶部栏按钮
      headToolbar: [
        'maximize',
        'close'
      ],
      // 底部栏按钮
      footToolbar: [
        'zoomIn',
        'zoomOut',
        'prev',
        'fullscreen',
        'next',
        'actualSize',
        'rotateLeft',
        'rotateRight'
      ],
      // 自定义图标
      icons: {
        maximize: '<i class="iconfont icon-quanping"></i>',
        close: '<i class="iconfont icon-guanbi"></i>',
        zoomIn: '<i class="iconfont icon-fangda"></i>',
        zoomOut: '<i class="iconfont icon-suoxiao"></i>',
        prev: '<i class="iconfont icon-zhixiang-you-copy"></i>',
        next: '<i class="iconfont icon-zhixiang-you"></i>',
        fullscreen: '<i class="iconfont icon-fangda1"></i>',
        actualSize: '<i class="iconfont icon-ziyuan"></i>',
        rotateLeft: '<i class="iconfont icon-zuozhuan-"></i>',
        rotateRight: '<i class="iconfont icon-youzhuan-"></i>',
      },
      // 事件
      callbacks: {
        // 打开图片完成
        opened: function (el) {
          $('.magnify-button-maximize').attr('title', '最大化');
          $('.magnify-button-close').attr('title', '关闭');
          $('.magnify-button-zoom-in').attr('title', '放大');
          $('.magnify-button-zoom-out').attr('title', '缩小');
          $('.magnify-button-prev').attr('title', '上一张');
          $('.magnify-button-fullscreen').attr('title', '全屏');
          $('.magnify-button-next').attr('title', '下一张');
          $('.magnify-button-actual-size').attr('title', '100%');
          $('.magnify-button-rotate-left').attr('title', '左旋转');
          $('.magnify-button-rotate-right').attr('title', '右旋转');
        },
        // 关闭图片完成
        closed: function (el) {
        },
      }
    });
  </script>

自动初始化方法和其他参数说明可以看官网文档

官网地址:https://thdoan.github.io/magnify/

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topicfilebeat.prospectors:input_type:logencoding:GB2312fields_under_root:truefields:添加字段
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0