【问题标题】:Randomize Tumblr post order on page load在页面加载时随机化 Tumblr 发布顺序
【发布时间】:2016-08-17 08:23:00
【问题描述】:

我有一个 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/

任何帮助表示赞赏!

【问题讨论】:

    标签: javascript jquery tumblr


    【解决方案1】:
    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()。我编辑了您的初始代码以添加一个“随机播放”类,因此该函数不会混淆现有的随机播放内容。

    【讨论】:

      猜你喜欢
      • 2020-06-28
      • 2014-02-03
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      相关资源
      最近更新 更多