在页面加载时随机化Tumblr发布顺序

时间:2016-08-17 08:23:00

标签: javascript jquery tumblr

我有照片的tumblr,我想在页面加载时以随机顺序出现。我找到了一些可以解决问题的代码,但问题是在页面加载时,只加载了前几个帖子。向下滚动时其余部分会被加载,但这意味着该脚本仅适用于前10-12个帖子。它们每次都会被拖曳,而其余的只是在向下滚动时按照它们发布的顺序加载。

因此,由于我对编码的知识非常有限,我猜测其他帖子在DOM中还不存在,并且由于性能原因在滚动时由某些脚本动态创建。但有没有办法强制页面加载所有帖子,然后从头开始随机化订单?

这是我现在正在使用的脚本

  var tiles = $(".photo");
  for(var i = 0; i < tiles.length; i++){
  var target = Math.floor(Math.random() * tiles.length -1) + 1;
  var target2 = Math.floor(Math.random() * tiles.length -1) +1;
  tiles.eq(target).before(tiles.eq(target2));
  }

这是tumblr页面:http://pieterwouters.tumblr.com/

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

function shuffle() {
    var tiles = $(".photo:not('.shuffled')");
    for(var i = 0; i < tiles.length; i++){
        tiles[i].addClass('shuffled')
        var target = Math.floor(Math.random() * tiles.length -1) + 1;
        var target2 = Math.floor(Math.random() * tiles.length -1) +1;
        tiles.eq(target).before(tiles.eq(target2));
    }
}

$(document).ready(shuffle);

这并不是你想到的,但这里的诀窍是在页面重新加载时进行随机播放。我(假设)假设tumblr在重新加载时执行一个函数。完成该功能后,您可以再次执行shuffle()。我编辑了您的初始代码以添加一个类#&#39; shuffled&#39;所以该功能不会混淆现有的混洗内容。