当用户在没有sql的情况下滚动时生成更多内容


Generate more content as user scrolls without sql

我的目标是在用户向下滚动时生成以下代码:

<?php
    // get all files
        $imagesDir = 'uploads/';
    $images = glob($imagesDir . '* {jpg,jpeg,png,gif,JPG,JPEG,PNG,GIG}', GLOB_BRACE);
    $imagesCount = count($images);
    for($i = 0 ; $i < $imagesCount ; $i++) {
        // select image 
        $randomIndex = array_rand($images); // select image index
        $file_title = $randomImage = $images[$randomIndex]; // use selected image
        unset($images[$randomIndex]); // remove selected image
        // print_r($images); // you can see what left in $images
        // show image
    }   
?>
<li class="item-thumbs span3 img">
   <!-- Fancybox - Gallery Enabled - Title - Full Image -->
   <a class="hover-wrap fancybox" data-fancybox-group="gallery" 
       title="<?php echo $randomImage ?>" href="<?php echo $randomImage ?>">
   <span class="overlay-img"></span>
   <span class="overlay-img-thumb font-icon-plus"></span>
   </a>
   <!-- Thumb Image and Description -->
   <img src="<?php echo $randomImage ?>" alt="{Failed To Load Item Description}">
</li>

此代码位于块中。我想生成随机图像,并让它们显示在一个格式良好的区域。现在,一切都正常,除了我需要自动生成这些代码,以便在用户滚动时显示更多。。。就像Facebook在你向下滚动时会在墙上加载更多的帖子一样。我试过很多脚本,但都不适用。

ou的查询答案是:第一件事*您必须在javascript中设置一个滚动处理程序,每当用户向上或向下滚动时都会触发该程序*您必须放入ajax调用,以获取结果对于您来说,当调用ever滚动处理程序时*,最后一件事将呈现您的ajax响应

但你必须在滚动处理程序中管理用户向上或向下b/c,每当用户向下滚动时,你都需要数据

所以我放了一些代码示例,它使用jquery

滚动处理程序

var lastScrollTop = 0;
var scrollHandler = function () {
var st = $(this).scrollTop();
var pageHeight = $(document).height();
var pageScrolled = $(window).scrollTop();
var pageView = $(window).height();
if (st > lastScrollTop) {
    // downscroll code
    if (st > lastScrollTop && (pageScrolled >= (pageHeight / 2))) {
        // calling scroll     after half page scrolled
        //  do nothing
    } else {
        loadMore(); // it will be called only in scroll down
    }
}

lastScrollTop = st;

}

在这个函数中放入ajax调用

function loadMore() {
$(window).off("scroll", scrollHandler);
$.ajax({
    url: "",
    "data": '',
    success: function () {
        //  render you ajax response
        ....
        $(window).scroll(scrollHandler); // call event handle after first result render
    }
});

}

//窗口加载后附加滚动事件

$(window).load(function () {
    $(window).scroll(scrollHandler);
});

剩下的逻辑是如何确定加载了多少结果,最后一个结果是什么

因此,逻辑上只需在最后添加一个额外的参数,就可以告诉你这是las结果在调用loadMore()之前,读取该参数并发送回ajax调用。