smartZoom 是一个我很喜欢用的库。

但是这个库有一些不完善的地方。

比如BUG。

比如使用上可能遇到的问题。

    <article>
<div id="zoom_box" class="zoom-box" style="display: none">
<img>
</div>
</article>

比如说,我们想用 smartZoom 渲染这个img。

前提条件:这个库依赖 jQuery.

首先,它的父元素的宽高必须是个像素值。设 100% 可能会出问题。

可以用 jquery 计算并赋值宽高。

      // 加数字值和项目样式有关 不通用
$("#zoom_box").css({
width: $("article").width() + 40 + 'px',
height: $("article").height() + 25 + 'px',
})

其次。

不要给你想渲染的 img 设宽高。像素值和 100% 什么的都不需要。

最后调用渲染一下就好。

      $("#zoom_box img").smartZoom({
'dblClickEnabled': false,
'containerBackground': "#000"
});

渲染时的参数,github 上有说明。

options = {'top' : '0', // top 像素值 一般用不上
'left' : '0', // left 像素值 一般用不上
'width' : '100%', // 宽度 如果你不希望图片的显示区域是这个DIV全部区域,那么需要设置一下
'height' : '100%', // 高度 同上
'easing' : 'smartZoomEasing', // jquery easing 函数 如果浏览器不支持CSS3 那么需要写一下
'maxScale' : 3, // 最大放大倍率
'dblClickMaxScale' : 1.8, // 双击时的最大放大倍率
'mouseEnabled' : true, // 是否可以用鼠标与渲染区域交互
'scrollEnabled' : true, // 是否可以用滚轮缩放图片
'dblClickEnabled' : true, // 是否可以双击放大图片
'mouseMoveEnabled' : true, // 是否支持鼠标移动交互
'moveCursorEnabled' : true, // 是否可以鼠标拖动图片
'touchEnabled' : true, // 是否支持触摸交互(触摸屏)
'dblTapEnabled' : true, // 是否支持触摸双击(触摸屏)
'pinchEnabled' : true, // enable zoom when user pinch on target
'touchMoveEnabled' : true, // 是否可以通过触摸事件拖动图片
'containerBackground' : '#FFFFFF', // 如果不用样式表,那么可以设置背景色,透明背景需要设为 transparent
'containerClass' : ''// 用的样式表 定制化样式时会用到
}

以上。

2019.08.16 更新

实际上,想给 img 设宽高100%也是可以的。但是DOM结构要改一下。

      <div id="zoom_box" class="zoom-box" style="display: none">
<div id="inner" class="inner">
<img>
</div>
</div>

此时,现在的 div#inner 相当于以前的 img。现在的 img 宽高是 100% ,永远和 div#inner 一样大。

      // inner 的宽度用 inner 的高度和图片比例去计算
$("#inner").css({
width: ($("article").height() + 25) * (1440 / 810) + 'px',
height: ($("article").height() + 25) + 'px',
})

渲染方法也需要改一下。

      $("#zoom_box #inner").smartZoom({
'dblClickEnabled': false,
'containerBackground': "#000"
});

也就是说,以前 smartzoom 渲染绑在 img 上,现在绑在 div#inner 上。

OVER

smartJQueryZoom(smartZoom) 的使用方法的更多相关文章

  1. smartJQueryZoom(smartZoom) 存在的兼容性BUG,以及解决方法

    smartJQueryZoom 是一个很好用的库. 它基于jQuery,可以对某个元素(比如 img)进行渲染,渲染之后可以放大这个区域,在做图片浏览时很好用. 但它有一个兼容性BUG: 当浏览器不是 ...

  2. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  3. mapreduce多文件输出的两方法

    mapreduce多文件输出的两方法   package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf ...

  4. 【.net 深呼吸】细说CodeDom(6):方法参数

    本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...

  5. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法

    直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...

  6. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  7. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  8. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

  9. [BOT] 一种android中实现“圆角矩形”的方法

    内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...

随机推荐

  1. android 中使用自定义权限在广播中的利用

    1.在一个进程中发送一个有自定义权限的广播,另外一个进程中拥有广播接受者接受到该广播 <?xml version="1.0" encoding="utf-8&quo ...

  2. RabbitMQ:四、跨越集群

    跨越集群主要两种插件:Federation和Shovel. 原来的rabbitmq集群将多个broker将多个节点连接起来组成逻辑上独立的单个broker,但是集群也有其局限性:集群内部借助 Erla ...

  3. fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.

    说了原因,下面是修改方法,就是在stdafx.h文件中修改相关的定义,修改完后的效果应该如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #ifndef WINVER ...

  4. zookeeper 伪集群安装和 zkui管理UI配置

    #=======================[VM机器,二进制安装] # 安装环境# OS System = Linux CNT7XZKPD02 4.4.190-1.el7.elrepo.x86_ ...

  5. 痞子衡嵌入式:kFlashFile v1.0 - 一个基于Flash的掉电数据存取方案

    大家好,我是痞子衡,是正经搞技术的痞子.今天给大家带来的是痞子衡的个人小项目 - kFlashFile. 痞子衡最近在参与一个基于 i.MXRT1170 的项目,项目有个需求,需要在 Flash 里实 ...

  6. SpringCloud之OpenFeign

    SpringCloud之openFeign Spring Cloud的子项目之一,Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式,为微服务架 ...

  7. 个人对于flask中蓝图的理解

    什么是蓝图? 蓝图可以理解为,是一种对项目中的代码进行模块化管理的工具,相当于python中的包为什么要使用蓝图? 在一个py文件中具有多个功能代码,不利于维护和管理. 如果在其他的模块中去调用视图函 ...

  8. 关于WebServices的调用

    1.使用soapui测试接口是否能通    具体操作步骤请查看:https://www.cnblogs.com/BINDAI/p/13201513.html Soapui请求结果集 2.获得soapu ...

  9. 关于ganymed-ssh2版本262和build210的SCPClient类的区别

    ganymed-ssh2是通过java使用ssh连接服务器的工具库,先上两个版本的pom文件配置: <!--ssh连接linux--> <!-- https://mvnreposit ...

  10. 如何Simplest搭建个人博客

    前期 例如wordpress.hexo.hugo-- 准备 安装Node.js,安装Git,进入Hexo网站.进入Github网站进注册和登录. 建议买个阿里云服务器(学生最近好像是免费的) 开始搭建 ...