javascript - 仅在 tumblr 第一页上的脚本和 css 函数
问题描述
我有一个 tumblr 页面,激活了无限滚动和一些帖子(照片)。有一个脚本可以随机化帖子,但它仅适用于出现在第一页上的帖子(因此,当滚动从第二页获取帖子时,脚本不再工作)。此外,帖子上有一个 CSS 悬停效果,显示帖子标题,但这也适用于第一页的帖子。
我能为脚本和 css 做些什么才能在页面的整个长度上工作。
这是页面:https ://www.vul-ne-ra-bil.ro/
这是随机播放帖子的脚本:
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);
解决方案
您正在将 shuffle 操作绑定到 jQuery $(document).ready()
,该操作在文档完成加载时调用一次。InfiniteScroll 库通常通过查询下一页AJAX
并将结果加载到现有页面来工作。这不会触发ready()
回调,因此不会为脚本加载的任何页面调用随机播放代码。
要解决此问题,请查看您选择的无限滚动库是否支持添加回调。然后,您可以在脚本完成加载下一页后执行 shuffle 功能,例如onNextPage(shuffle)
. 我无法在答案中添加片段,因为您没有说明如何实现无限滚动。
.ready()
如果在回调中通过 JavaScript 绑定,悬停也是如此。
相关链接:
推荐阅读
- android - 如何通过`build.gradle`将配置应用于嵌套模块
- vue.js - vuetify 自动完成允许芯片之间的未知项目
- android - Android - 如何在 OnCreate 中使用 viewmodel 来处理在屏幕旋转时不会被调用的 http 调用?
- php - SQL语句中变量中的撇号
- c - 插入二维字符数组后在 C 中打印的错误结果
- python - 我在使用 for 循环时遇到语法错误
- android - 无法在 Fragment 中设置 NumberPicker
- bash - 在 Bash 中形成选择查询
- django - 分页器对象没有属性“get_page”
- javascript - 使用 React 和 Web Audio 进行状态管理