masonry结合json 制作无限滚动的瀑布流

做前端这行的 能直接贴代码就直接贴代码了,不用多说什么别的

效果需要引入jquery和jquery.masonry.min.js这两个JS

JS代码如下:

$(document).ready(function(){
	var $container = $(‘.space_main_con1 .con‘);
	var animated;
	var i=1;
	//判断是否需要 masonry.js这个里面提供动画  如果是IE浏览器并且版本低于9.0 则添加动画  否则就用 css3的动画(css3的动画代码在下面有贴出)
	$.browser.msie && $.browser.version < 9.0 ? animated = true : animated = false;
	$container.imagesLoaded(function(){
		$container.masonry({
			itemSelector: ‘.space_item‘,
			columnWidth:288,
			gutterWidth:16,//每两列之间的间隙为5像素
			isAnimated: animated,
			animationOptions: {
				duration: 400,
				easing: ‘linear‘,
				queue: false
			}
		});
	});

	$(".space_item").live("mouseover",function(){
		$(this).addClass("on");
	})
	$(".space_item").live("mouseout",function(){
		$(this).removeClass("on");
	});
	function getMore(){
		$("#infscr-loading").show();
		var json = "json.php";
		$.getJSON(json, function(data){
			$.each(data,function(i){
				var url=data[i].url;
				var img=data[i].img;
				var user=data[i].user;
				var space=data[i].space;
				var time=data[i].time;
				var content=data[i].content;
				var simg=data[i].simg;
				var pname=data[i].pname;
				var pprice=data[i].pprice;
				html=‘<div class="space_item"><a class="p_img" href="‘+url+‘ target="_blank"><img src="‘+img+‘" width="260" height="260" /></a><p class="author">达人:<a href="‘+space+‘" target="_blank">‘+user+‘</a></p><p class="time">发布时间:‘+time+‘</p><div class="arrow"></div><div class="content">‘+content+‘</div><div class="cfix pro_box"><a class="p_simg" target="_blank" href="‘+url+‘"><img src="‘+simg+‘" width="50" height="50" /></a><div class="p_info"><p class="p_name"><a target="_blank" href="‘+url+‘">‘+pname+‘</a></p><p class="p_price">¥‘+pprice+‘</p></div></div></div>‘;
				$boxes = $(html).css({ opacity: 0 });
				$boxes.animate({opacity:1});
				$container.append($boxes).masonry(‘appended‘,$boxes,true);
			});
			i=1;
			$("#infscr-loading").hide();
		});
	};
	//滚动到底部的时候
	$(window).bind("scroll",function(){
		if( $(document).scrollTop() + $(window).height() + $(".footer").outerHeight()-100 > $(document).height() && i==1) {
			i=0;
			getMore();
		}
	});
});

另外有一段比较好看的css3 动画效果配合[这段代码不知道是哪位大神写的 =_=感谢大神写的这么好的效果动画]

/**** 转变 ****/
.transitions-enabled .masonry,.transitions-enabled.masonry .masonry-brick{-webkit-transition-duration:0.7s;-moz-transition-duration:0.7s;-o-transition-duration:0.7s;transition-duration:0.7s;}
.transitions-enabled .masonry{-webkit-transition-property:height, width;-moz-transition-property:height, width;-o-transition-property:height, width;transition-property:height, width;}
.transitions-enabled .masonry .masonry-brick{-webkit-transition-property:left, right, top;-moz-transition-property:left, right, top;-o-transition-property:left, right, top;transition-property:left, right, top;}
/* 禁用容器上的转变 */
.transitions-enabled .infinite-scroll.masonry{-webkit-transition-property:none;-moz-transition-property:none;-o-transition-property:none;transition-property:none;}
/* 无限滚动装载机 */
#infscr-loading{text-align:center;padding:10px;background:#000;opacity:0.8;filter:alpha(opacity=80);color:#FFF;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;}
#infscr-loading{position:fixed;bottom:0px;left:45%;z-index:9999;width:200px;}
*html,*html body /* 修正IE6振动bug */{background-image:url(about:blank);background-attachment:fixed;}
*html #infscr-loading{position:absolute;bottom:expression(eval(document.documentElement.scrollTop));}
#page-nav{display:none;}

对应的HTML代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>masonry结合json 制作无限滚动的瀑布流</title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.masonry.min.js"></script>
</head>
<body>
<div class="space_main space_main_con1">
        <div class="con transitions-enabled infinite-scroll">
        	<div class="space_item">
                <a class="p_img" href="#" target="_blank"><img src="tmp/xinpin/n1.jpg" width="260" height="260" /></a>
                <p class="author">达人:<a href="#" target="_blank">grapecxh</a></p>
                <p class="time">发布时间:2014-12-24</p>
                <div class="arrow"></div>
                <div class="content">
                    评论内容评论内容评论内容评论内容评论内容评论内容评论内容评论内容评论内容评论内容评论内容
                </div>
                <div class="cfix pro_box">
                    <a class="p_simg" target="_blank" href="#"><img src="tmp/xinpin/n1.jpg" width="50" height="50" /></a>
                    <div class="p_info">
                        <p class="p_name"><a target="_blank" href="#">商品名称商品名称商品名</a></p>
                        <p class="p_price">¥68</p>
                    </div>
                </div>
            </div>
            <!--还有更多相同如上省略了-->
        </div>
</div>

</body>
</html>

相关的另外一位大神写了一篇文章,这篇就是根据这位大神写的修改而来的  大神写的代码链接:http://my.oschina.net/mmeng/blog/73525

时间: 2024-10-06 00:39:51

masonry结合json 制作无限滚动的瀑布流的相关文章

jQuery实现无限加载瀑布流特效

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

在 JQuery Mobile 中实现瀑布流图库布局

先来看在Windows系统的1080P显示器中显示的效果: 这个整合方式几乎没有现存的实例,是自己总结出来的方法,在此记录下来. 首先访问Masonry官网下载masonry.pkgd.min.js:http://masonry.desandro.com/ 将其整合到项目中,在页面中引入. 初始化id变量,让页面每次加载时的id都不同,避免 Ajax 加载时id重复造成难以察觉的错误. var id = "gallerycontent" + Guid.NewGuid(); 采用HTML

jquery实现无限滚动瀑布流实现原理

现在类似于pinterest这类的表现效果很火,其实我比较中意的是他的布局效果,而不是那种瀑布流. 虽然我不是特别喜欢这种瀑布流的表现样式,但是还是写了几篇关于无限滚动瀑布流效果的文章,Infinite scroll+Masonry=无限滚动瀑布流,infinite-scroll-jquery滚动条(下拉)加载数据插件之类的文章.可能是我表达描述不是很详细清楚,所以好多朋友看了不是很清楚,并发信给我求解释.所以有了今天这篇文章. 其实早在:十几款jquery无限滚动插件这 篇文章中我就提到过这种

jQuery瀑布流无限拖三大利器:masonry+imagesloaded+infinitescroll

瀑布流已经是几乎过时的技术了,不过对于很多想要快速实现它的朋友而言,却绝非易事,因为即使我们已经有很多现成的代码,却发现在自己的开发环境中无法快速得到自己想要的结果.就像我们现在要介绍的三大利器(masonry+imagesloaded+infinitescroll)即使它们是如此有效,却在马上要使用的时候让我们拿着如烫手山芋班很难真正达到我们想要的效果. 下面,我们从其原理来讲解它们的使用,以帮助你更好的发挥它的功效.但为了快速实现,我们不讲解它们的全部内容. 1. 合理的HTML布局是问题的

瀑布流 ajax 预载入 json

pbl.json[模拟后台json数据]: [ { "id": "511895", "title": "Smashicons: 300 Free Icons | GraphicBurger", "referer": "http://graphicburger.com/smashicons-300-free-icons/", "url": "http://ww

UGUI 背包滚动视图(无限滚动)

=.= 最近负责道具背包系统开发, 主程非要把滚动视图制作成无限滚动这样的话可以节约内存, 其实我想说的是没必要这么恐惧内存,但是需求来了还是照着制作一个,每次滚动的时候刷新对应单元格数据即可. 效果图: 核心代码: using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; using UnityEngine.EventSystems; [Require

瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据

瀑布流加载显示数据,在当下已经用的很普遍,尤其是我们在做网上商城时,在产品列表页面已经被普遍使用. 对于实现瀑布流布局的解决方案主要有以下两种方式: 1.对每一条显示数据使用绝对定位+浮动的方式,这样也会有一个问题----必须要知道每一条信息的具体高宽度 2.采用列布局,将每一条数据依次放置到每一列 其实两者的实现原理都是大同小异,现在我将针对第二种解决方案,用一个具体的事例来说明 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2

无限滚动 --demo

<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无限滚动-demo</title><style>body { font-size: 12px; line-height: 24px; text-algin: center;   m

python3抓取异步百度瀑布流动态图片(二)get、json下载代码讲解

制作解析网址的get 1 def gethtml(url,postdata): 2 3 header = {'User-Agent': 4 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0', 5 'Referer': 6 'http://image.baidu.com', 7 'Host': 'image.baidu.com', 8 'Accept': 'text/plain, */*; q=0