按照有关infinite scroll的说明,我能够隐藏第2,3,4页等新内容,直到完成加载然后动画。现在我想实现这些相同的效果,但主要内容,第一页是什么。有帮助吗? 我正在使用的代码:
<script>
$(function(){
var $container = $('#boxes');
$container.imagesLoaded( function(){
$container.isotope({
itemSelector : '.box'
});
});
</script>
<script>
$('#boxes').isotope({
// options
itemSelector : '.box',
layoutMode : 'masonry'
masonry : {
columnWidth : 325
},
});
</script>
<script>
$(function(){
var $container = $('#boxes');
$container.imagesLoaded(function(){
$container.isotope({
itemSelector: '.box'
});
});
$container.infinitescroll({
navSelector : '#navigation',
nextSelector : '#navigation a#next',
itemSelector : '.box',
loading: {
finishedMsg: 'no more pages to load.',
img: 'http://i.imgur.com/qkKy8.gif'
}
},
function(newElements){
var $newElems = jQuery( newElements ).hide()
console.log('Elements Retrieved:');
var $newElems = $(newElements);
$container.imagesLoaded(function(){
$newElems.fadeIn(); // fade in when ready
$container.isotope('appended', $newElems, function(){console.log('Appended');});
});
});
});
</script>
这是the blog。提前谢谢!
答案 0 :(得分:4)
我的意思是 - 在你的CSS中放
#container {
display: none;
}
默认隐藏#container,因此最初不会显示;然后,在你的脚本中,你只需要
$container.show();
在你要展示的地方;例如,当第一页的所有内容都已加载或者您希望第一次.show()#container时。简单示例here。
答案 1 :(得分:0)
使用hide()(即display:none)的解决方案的一个小缺点是,这需要在布局之前发生,因为Isotope没有布置隐藏元素,因此您可以看到最初的&#34;混乱&#34;一瞬间,我觉得不愉快。 更好的解决方案是设置可见性:隐藏,然后进行布局,然后再次显示可见性:可见。这也将容器边框设置为所有元素的大小。