在视差滚动中实时调整大小

时间:2013-10-17 15:03:11

标签: javascript jquery css parallax

我在我的项目中使用了 stellar.js
有一个问题 - 在“实时调整大小”要求下(不重新加载页面)。 当我使用调整大小功能在水平滚动中计算新位置 LEFT 时:

$(window).resize(function(){
    var newPos = element.position().left*100; //Get NEW Position ...
    element.css("left", newPos);        //It's not working ...
});

“data-stellar-ratio”的元素不会被覆盖 我该怎么做才能解决这个问题?

谢谢你的帮助。

根据以下要求
- >调整浏览器大小时,然后实时重新计算元素位置(NO Reload页面)
- >所以,我将重新计算位置并覆盖元素的新位置。
- >但是,使用data-stellar-ratio属性的元素不能覆盖新位置。(注释中的示例)
这是我的问题。再次感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

你的问题很不清楚。但是,如果您希望更改data-stellar-ratio属性,则可以这样做。

element.attr('data-stellar-ratio', 2);

element必须是jQuery对象。

答案 1 :(得分:0)

您参考

_repositionElements:stellar.js中的function()

if (this.options.horizontalScrolling) {
 var bSize = this.options.refWidth,bResize = $(window).width(),bRatio = this.options.formula(bResize, bSize);

newPositionLeft = (scrollLeft + particle.horizontalOffset + this.viewportOffsetLeft + particle.startingPositionLeft - particle.startingOffsetLeft + particle.parentOffsetLeft) * -(particle.stellarRatio + fixedRatioOffset - 1) + particle.startingPositionLeft; 

newPositionLeft *= bRatio;   //all element reposition in here

newOffsetLeft = newPositionLeft - particle.startingPositionLeft + particle.startingOffsetLeft;

}

bSize =在之前调整浏览器大小 bResize =在调整后调整浏览器大小 bRatio =调整比例
newPositionLfet =所有元素位置左侧

newPositionTop =与 newPositionLeft相同