如何从右到左使用jQuery Isotope?

如何在美丽的jQuery Isotope ( GitHub上的源代码 )中覆盖自动左对齐?

谢谢!

您有两种选择:重新设计Isotope的布局逻辑,或构建您自己的布局模式。

Isotope的布局逻辑逐渐增强,以便在可用时使用CSS变换,但可以回退到顶部/左侧定位。 因此,如果将坐标x,y传递给getPositionStyles方法,它将返回{ translate: [ x, y ] }{ left: x; top: y } { left: x; top: y } 。 从右到左布局的问题在于它可以使用{ right: x; top: y } { right: x; top: y } ,但它会与CSS转换相当。

构建自己的布局模式可能是更容易访问的路线。 最后,我需要编写关于如何开发自己的自定义布局模式的文档。 但是你可以通过阅读源代码来自己完成。 您会发现每种布局模式都分为4个必需的方法_layoutnameReset_layoutnameLayout _layoutnameGetContainerSize_layoutnameResize

我在GitHub上打开了一个问题,因此您可以跟踪此function请求的状态。

有时商业主题(在我的例子中是一个wordpress主题)包括jquery同位素,然后为了使它向右,你需要在另一个文件中进行这些更改 – 不得不改变jquery.isotope.js而不是jquery.isotope。 min.js文件。

1首先使用find来搜索你会发现的术语(ctrl f)“positionAbs”

“_positionAbs:function(a,b){return {left:a,top:b}”将其替换为此

“_positionAbs:function(A,B){返回{右:一,顶:B}”

2使用find来搜索术语(ctrl f)“transformsEnabled”你会发现“transformsEnabled:!0”用它替换它

“transformsEnabled:!1”

3改变前面答案中提到的样式css。

只需在方法Item.prototype.getPosition更改3行同位素包

  1. 1639行从“从左到右”到“从右到左”
  2. 1663行从“从左到右”到“从右到左”
  3. 1664行从“从右到左”到“从左到右”

如果没有在相同的行找到它只搜索Item.prototype.getPosition那就是它,它会工作

在jquery.isotop.min.js文件中只需替换:

 this.usingTransforms&&(d.left=0,d.top=0) 

有:

 this.usingTransforms&&(d.right=0,d.top=0) 

和:

 translate3d("+a[0]+"px, "+a[1]+"px, 0), translate("+a[0]+"px, "+a[1]+"px) 

有:

 translate3d("+(-a[0])+"px, "+a[1]+"px, 0) translate("+(-a[0])+"px, "+a[1]+"px) 

第一:你必须selet isotop tag然后isOriginLeft:false

例如:$(“。isotopeContainer”)。isotope({isOriginLeft:false});