我们最终得到一个非常简单的测试,如果空间足够,它会加载博客文章来显示。
// Load additional content if enough room
enquire
.register("(min-width: 700px)", {
match: function() {
$("#home-article").load("/blog/ #main-article");
}
})
.listen();
jQuery 使 Ajax 变得超级简单,使用 .load() 函数甚至更容易。这里唯一的小技巧是我们在 URL 末尾添加了 #main-article,它限制了注入到页面上的内容到该 CSS 选择器。如果我们设计了一些仅返回我们需要添加的内容的解决方案,那将更加完美,但这是一个如此快速简单的解决方案,以至于它有点美妙。
抱歉,这个视频的音频不太好 =(.
嘿,Chris,
很棒的视频。对于拉取站点上其他地方未显示的内容,您有什么建议吗?例如,额外的标记部分或侧边栏。
谢谢,
Steve。
内容绝对不需要以“正常”方式显示在站点上才能被 Ajax 加载。您可以将一个 .html 文件放在站点的根目录下,然后点击该 URL 并将其加载进来。由于这是 WordPress 的环境,我可能会采取的方法是创建一个名为 Ajax 的页面模板,并将其发布在 /ajax/,该模板接收查询参数并使用它们运行数据库查询,并返回任何你想要的(相当原始的)内容。
感谢您快速回复,Chris,这听起来像是一种简单的方法,我会去尝试一下!
很棒的视频,Chris,只是一个快速的问题。
使用 enquire,我理解当你放大浏览器窗口时,内容会自动出现,但是如果你缩小浏览器窗口,内容是否仍然存在于 DOM 中?在你的例子中,它消失了,因为你使用了 display: none。它是否仍然在 DOM 中?
其次,为什么你会使用这种技术而不是这种技术… https://css-tricks.org.cn/examples/ConditionalCSS/ – 链接上的技术似乎更快更流畅。
在视频中,我介绍了你可以用来进行测试的几种不同方法。条件内容是另一种。我在这里坚持使用 Enquire,因为我认为对于那些想要一个稍微复杂一点的框架,并希望使用回调来处理多种情况的人来说,它是一个不错的选择。
例如,在这个示例中,我们确实简单地使用了 display: none; 因为坦率地说,这并不重要。如果我们担心 DOM 的大小,就像在大型网站上一样,我们就可以使用 Enquire 的 unmatch 回调来从页面中 .remove() 内容。
首页不在 WordPress 系统中吗?我只是想弄清楚为什么你不使用原生 WordPress 查询而不是 Ajax 来包含最新的博客文章。我跳过了很多视频,没有一个一个地观看,所以如果这在之前的某个视频中已经讲过了,请原谅。