【发布时间】:2022-01-25 13:52:32
【问题描述】:
我在我的博客上使用Infinite Ajax Scroll 进行分页。当没有更多要加载的帖子时,我想隐藏trigger(按钮)父容器(目前,它只有opacity: 0,但这会留下不需要的空白)。
在控制台中,我可以看到IAS 留下一条消息说“没有更多的页面要加载”,所以我知道有一种方法可以检查是否存在更多帖子。但是,应用了两种方法,我无法让它发挥作用。
方法一:使用last:function()
方法二:检查trigger是否有opacity: 0,如果有则隐藏父容器
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@webcreate/infinite-ajax-scroll@3.0.0-beta.6/dist/infinite-ajax-scroll.min.js"></script>
<div class="container pagination-hide">
<div class="row">
<div class="col-12">
<div class="pagination">
<a class="loadmore">Load more</a>
</div>
</div>
</div>
</div>
<script>
$(function() {
var ias = new InfiniteAjaxScroll('.insertPosts', {
item: '.insertCard',
pagination: '.blog-pagination',
next: '.next-posts-link',
trigger: '.loadmore',
loadOnScroll: false,
last:function(){
$(".pagination-hide").addClass("d-none");
}
});
// $('.loadmore').click(function(){
// if ( $(this).css('opacity') == '0' ) {
// console.log("true");
// $(this).parent(".pagination-hide").addClass("d-none");
// }
// });
});
</script>
根据IAS docs,还尝试了以下操作,但是,这只是在页面加载时将d-none 类添加到pagination-hide,而不是在没有更多帖子时添加类(应该如此)加载。
trigger: {
element: '.loadmore',
// this function is called when the button has to be hidden
hide: function(element) {
$(element).closest(".pagination-hide").addClass("d-none");
element.style.opacity = '0'; // default behaviour
}
},
【问题讨论】:
-
你试过了吗:
display: none?另外,如果要隐藏块,是否选择最父元素?两者都可以在这里为您提供帮助。 -
嗨@DennisvandeHoef - 是的,我也试过
.css("display","none")而不是addClass("d-none"),它不应用css(也没有添加类)。不确定你的信息的后半部分是什么意思?我要隐藏的元素是.pagination-hide
标签: javascript jquery css infinite-ajax-scroll