【发布时间】:2019-05-24 18:29:55
【问题描述】:
我在 http2/apache/php7.3 环境中有一个以 divi 为主题的 wordpress 网站。我不擅长jquery。我已将背景放入生成以下标记的部分中
<section id="random-clip" class="et_pb_module et_pb_fullwidth_header
et_pb_fullwidth_header_0 et_hover_enabled
et_pb_section_video et_pb_bg_layout_light et_pb_text_align_center"
style="background-image: url("/wp-content/uploads/media/fallback1.jpg");
background-position-y: 35%;">...
</section>
现在我想随机化这个背景,我使用下面的 jQuery 完成了这个,它放在关闭 body 标签之前。
<script>
//random background
jQuery(document).ready(function($){
var background = new Array ();
background[0] = "/fallback1.jpg";
background[1] = "/fallback2.jpg";
background[2] = "/fallback3.jpg";
var randombackground = Math.floor(Math.random() * background.length);
$("#random-clip.et_pb_fullwidth_header.et_pb_fullwidth_header_0").css({
'background-image': 'url(/wp-content/uploads/media' +background[randombackground] + ')',
'background-position-y': '35%' });
});
</script>
这按预期工作,但我想稍微提高一下这个脚本的速度,因为由于某种原因,图像在文档加载后被调用并且没有准备好(可能是由于 cahin/defering/minification 插件),这使得在瀑布的尽头下载这些图像。由于我有一个隐藏加载的预加载器/微调器,这个随机脚本使微调器旋转超过需要..对此有什么建议吗?考虑到我在 http2 中,我正在考虑类似推送预加载的东西。 非常感谢
【问题讨论】:
-
不要在
jQuery(document).ready中运行该代码,而是在<section id="random-clip"></section>之后立即运行它。看看能不能解决。否则你将不得不在你的 PHP 中随机化 url(这可能是一个更好的选择) -
我已经尝试了下一部分,没有任何变化。我已经在 php 和 mysql 中尝试过这个,你可以在这里查看stackoverflow.com/questions/56240442/… 我是如何通过 mysql 查询尝试的,但不幸的是,如果缓存我的页面,这将不起作用。
-
您应该检查是否有任何钩子可用于覆盖任何 divi 主题部分。或检查是否有任何 html/代码块可用于从后端插入代码。
标签: javascript jquery wordpress