我的目标是在用户向下滚动时生成以下代码:
<?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调用。