Parallax ImageScroll是一款效果非常炫酷的滚动背景图片视觉差特效jQuery插件。该背景图片视觉差插件使用CSS3 transform来制作动画效果,并在不支持CSS3属性的浏览器上提供回退方案。
该背景图片视觉差插件在移动触摸设备上不使用视觉差效果,并且图片会被相应的设置为小图片。它还能和AMD兼容,通过RequireJS来使用:
require(['jquery.imageScroll'], function (ImageScroll) { $('.img-holder').each(function () { new ImageScroll(this); }); //or //$('.img-holder').imageScroll(); });
可以通过bower来安装这个视觉差特效插件。
bower install Parallax-ImageScroll
该图片背景视觉差特效插件需要jQuery1.8以上版本的jQuery。
<div class="img-holder" data-image="anImage.jpg"></div> <section><p>Content that "slides" on top of the images</p></section> <div class="img-holder" data-image="anotherImage.jpg">[optional content to be displayed on top of the images]</div>
你可以通过HTML5 data属性或javascript来设置该插件的参数,参考后面的参数配置。
在页面加载完毕之后,你可以在需要视觉差效果的图片上调用imageScroll
方法来初始化该插件。
$('.img-holder').imageScroll();
你可以通过传递一个参数对象来覆盖默认的参数配置。
$('.img-holder').imageScroll({ coverRatio: 0.5 });
或者通过HTML5 data属性来设置参数,data-optionname
可用的参数有: image, width (mediaWidth), height (mediaHeight), cover-ratio (coverRatio), min-height (holderMinHeight), max-height (holderMaxHeight), extra-height (extraHeight)。
<div class="img-holder" data-image="anImage.jpg" data-cover-ratio="0.5"></div>
或者你也可以设置全局的参数。
$.fn.imageScroll.defaults.coverRatio = 0.5; //AMD ImageScroll.defaults.coverRatio = 0.5;
可用的参数有:
data-img
来设置)。<body>
。disable()
enable()
refresh()
destroy()
你可以在某个单独的实例或所有的实例上调用这些方法。
//Call method refresh on all the instances of the plugin var instances = $('.img-holder'); instances.imageScroll('refresh'); //E.g. Call method refresh on the first image //Alternative 1: var instances = $('.img-holder'); var instance = $(instances.get(0)); instance.imageScroll('refresh'); //Alternative 2: var instances = $('.img-holder'); var instance = $(instances.get(0)).data('plugin_imageScroll'); instance.refresh();
这个视觉差特效的过渡效果在移动触摸设备上不是十分的好,你可以在移动触摸设备上禁用视觉差效果,并提供一个回退版本,该版本没有视觉差效果,只显示图片。你可以通过外部库如Modernizr
来检测是否是移动触摸设备,然后动态的设置参数来调整它们。
var touch = Modernizr.touch; $('.img-holder').imageScroll({ imageAttribute: (touch === true) ? 'image-mobile' : 'image', touch: touch });
如果你需要在作为背景视觉差效果的图片上添加内容,请为你的内容设置一个较高的z-depth
属性。(添加自定义内容的效果只能在支持3d transforms的浏览器中实现)例如:
<div class="img-holder" data-image="anotherImage.jpg"><p style="-webkit-transform: translateZ(1px)">Hello world!</p></div>