王新阳

wangxinyang

图片放大镜 - drift.js

https://github.com/imgix/drift

http://www.htmleaf.com/jQuery/Image-Effects/drift-luminous-javascript-zoom-on-hover.html


简要教程

这是一款轻量级的纯JavaScript炫酷鼠标滑过图片放大特效插件。该插件有两种显示形式:鼠标点击和鼠标滑过。两种方式都可以制作出图片放大镜效果,并且还可以将这两种放大镜效果结合在一起使用。

 安装

可以通过NPM或Bower来安装Drift插件。

npm install drift-zoom
bower install drift               

 使用方法

 Luminous鼠标点击放大镜效果

下载压缩包,在页面中引入Luminous.js和luminous-basic.css文件。

<link rel="stylesheet" media="screen, projection" href="dist/luminous-basic.css">             
<script src="dist/Luminous.js"></script>               

Luminous放大镜效果的HTML结构是使用一个超链接元素来包裹一张图片,超链接的地址是高清大图的地址,图片指向的是缩略图。

<a class="demo-trigger" href="img/wristwatch.jpg">
  <img src="img/wristwatch-thumb.jpg">
</a>               

完成上面的操作之后,可以通过下面的JS代码来进行初始化。

var demoTrigger = document.querySelector('.demo-trigger');
new Luminous(demoTrigger);               
 Drift鼠标滑过放大镜效果

下载压缩包,在页面中引入Drift.js和drift-basic.css文件。

<link rel="stylesheet" media="screen, projection" href="dist/drift-basic.css">             
<script src="dist/Drift.js"></script>               

Drift图片放大镜的HTML结果和Luminous放大镜的区别是它使用data-zoom属性来作为高清大图。

<img class="demo-trigger"
     src="img/wristwatch-thumb.jpg"
     data-zoom="img/wristwatch-hd.jpg">               

初始化Drift图片放大镜插件。

var demoTrigger = document.querySelector('.demo-trigger');
new Drift(demoTrigger);              
 结合使用Luminous和Drift

Luminous和Drift图片放大镜效果可以结合在一起使用。例如DEMO3的HTML结构如下:

<div class="wrapper">
  <a class="demo-trigger" href="img/vintagecameras-hd.jpg">
    <img src="img/vintagecameras-thumb.jpg">
  </a>
 
  <div class="detail">
    <section>
      <h1>......</h1>
      <p>......</p>
    </section>
  </div>
</div>               

初始化的方法如下:

var demoTrigger = document.querySelector('.demo-trigger');
new Drift(demoTrigger, {
    paneContainer: document.querySelector('.detail'),
    inlinePane: 900,
    inlineOffsetY: -85,
    containInline: true,
    sourceAttribute: 'href'
});
new Luminous(demoTrigger);               

 配置参数

  • namespace:生成元素的class名称前缀。默认值:null
  • showWhitespaceAtEdges:当接近边部时ZoomPane是否显示白边,默认值是false。
  • containInline:内部的ZoomPane是否在内部。默认值为false。
  • inlineOffsetXinlineOffsetY:How much to offset the ZoomPane from the interaction point when inline.
  • sourceAttribute:用于指向大图的属性,默认值为:data-zoom
  • zoomFactor:图片放大倍数。默认值为3。
  • paneContainer:添加到非内部放大镜上面的DOM元素。默认值为:document.body
  • inlinePane:合适切换到内部放大镜模式。这个取值可以是一个布尔值或一个整数。如果为true,将一直是内部放大镜模式,如果为false,将在`windowWidth <= inlinePane时切换到内部放大镜模式。默认值为375。
  • handleTouch:如果为true,touch事件将被启用。
  • onShow:ZoomPane显示时触发。
  • onHide:ZoomPane隐藏时触发。
  • injectBaseStyles:在页面中添加基本的样式。

2020-03-21
2024-05-01 星期三 农历三月二十三