根据滚动位置加载整个页面部分

时间:2018-03-16 10:02:31

标签: php jquery html wordpress lazy-loading

我正在开发一个单页网站,当窗口滚动到该特定部分时,我想加载每个部分。现在我知道你可以延迟加载图像,但我想懒得加载整个部分。我认为可能的唯一方法是,如果我将我的html代码放入jQuery,然后在达到滚动位置时加载它。但我宁愿不这样做。

这是一个wordpress网站,我正在使用

将每个页面加载到主页
<?php require_once(''); ?>

所以我的网页布局就像这样

<?php get_header(); ?>

<?php require_once('section_one.php'); ?>

<?php require_once('section_two.php'); ?>

<?php get_footer(); ?>

所以我可以使用php只在到达滚动位置时加载这些部分或者是否有更好的jQuery方法?此外,我希望网络爬虫等仍然能够看到我的整个页面。因此,如果禁用jQuery,我希望显示整页。任何关于此的指导或教程都非常有用,谢谢

2 个答案:

答案 0 :(得分:1)

在控制器中创建一个方法,该方法将根据节号呈现子视图并返回HTML。或者在您的情况下创建一个文件,它将接受带有节号的GET请求,并在大多数PHP框架中渲染所需节文件的输出(见下文)。这样,当滚动位置具有必要的值时,您可以发出AJAX请求,并将返回的HTML插入页面。

<?php
$section_number = $_GET['section'];

ob_start();
if(file_exists(__DIR__ . 'section_' . $section_number . '.php')) {
    include(__DIR__ . 'section_' . $section_number . '.php');
    $var=ob_get_contents(); 
    ob_end_clean();
    echo $var;
}

echo '';

Render PHP file into string variable

答案 1 :(得分:0)

我建议您加载内容并用CSS隐藏它吗?然后制作一个滚动间谍解决方案,以便在该部分进入视口时显示内容?为什么强迫某人在内容加载时等待?