我有这个jQuery插件 - Plax:https://github.com/cameronmcefee/plax
我希望它具有响应能力,我部分拥有:http://jsfiddle.net/4kRDL/
我的问题是html属性:
<img src="/parallax/4.svg" data-xrange="20" data-yrange="10" id="plax-img4"/>
<img src="/parallax/3.svg" data-xrange="5" data-yrange="40" id="plax-img3"/>
问题在于data-xrange
和data-yrange
没有响应,当您最小化浏览器窗口时,无论窗口大小多少,它们都具有相同的x范围和y范围有。当最小化时,范围会很大。
因此我必须在调整大小时获取窗口大小,然后使用算法查找xrange和yrange,然后使用jquery更改属性,然后重新初始化plaxify。
我在想这个伪代码,但不知道怎么做,所以它有效:
$('#my-element')
.attr('data-xrange', 'New Value')
.attr('data-yrange', 'New Value');
// You can dynamically redefine the range of a layer
// by running plaxify() on it again.
$('#my-element').plaxify();
$(window).resize(function(){
var w = $(window).width();
if(w > 320 && #my-element.is('New Value')) {
#my-element.removeAttr('data-xrange,data-yrange');
}
});
答案 0 :(得分:0)
来自Plax的文档:
$('#plax-octocat').plaxify({"xRange":40,"yRange":40})
$('#plax-earth').plaxify({"xRange":20,"yRange":20,"invert":true})
$('#plax-bg').plaxify({"xRange":10,"yRange":10,"invert":true})
$.plax.enable()
$('#my-btn').click(function(){
// bigger range
$('#plax-octocat').plaxify({"xRange":200,"yRange":200}) // LOOK HERE
})
正如您所看到的,如果您想要新的xrange和yrange,那么您必须自己设置它。那么您的代码应该类似于:
$(window).resize(function(){
var w = $(window).width();
if(w > 320){
$('#my-element').plaxify({"xRange":newValue,"yRange":newValue});
}
});
编辑:
在使用plaxify()
更改数据属性后,您必须将CSS顶部和左侧值设置为0.类似于:http://jsfiddle.net/instead/4kRDL/14/