@{
ViewBag.Title = "服务列表";
Layout = "~/Areas/hahaha/Views/Shared/_Head.cshtml";
}
<link href="~/Scripts/layui/css/layui.css" rel="stylesheet" />
<style>
.up { background:url(/Content/WeiXin/images/sort-up.png) no-repeat center center; background-size:.6rem auto;}
.down { background:url(/Content/WeiXin/images/sort-down.png) no-repeat center center; background-size:.6rem auto;}
</style> <div class="wc_content">
<div class="tabPanel">
<ul class="clearfix productTad serviceList_u">
<li class="hit" data-type="1"><span>服务项目</span></li>
<li data-type="2"><span>服务人员</span></li>
</ul>
</div>
<div class="panes serviceListpanes">
<div class="pane" style="display:block">
<div class="serviceList_box"> <a href="serviceSeach.html" class="serviceList_seach"><i></i>请输入关键词</a> </div>
<div class="serviceList_t" id="dataContent"> </div>
<ul class="service_list" id="serviceData"></ul>
</div>
</div>
</div> <script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/layui/layui.js"></script>
<script type="text/javascript">
var totalPage = 2,
pageIndex = 1,
serviceHtml = '',
dataType = 1,
sort = 1,//正序or倒序
OrderStr;//排序字段
$(function () {
$('.tabPanel ul li').click(function () {//切换筛选条件
$(this).addClass('hit').siblings().removeClass('hit');
var s =parseInt( $(this).attr('data-type'));
if (dataType != s) {
dataType = s;
$('.list_head').remove();
$('#serviceData li').remove();
pageIndex = 1;
OrderStr = '';
setHead();
$('cite').click();
} })
setHead();
loadFlow();
}) function setHead() {
var scriptHtml;
if (dataType == 1) {
scriptHtml = $('#serviceList').html();
} else {
scriptHtml = $('#personList').html();
}
$('#dataContent').after(scriptHtml);
} function loadList() {
var act = dataType == 1 ? 'GetServices' : 'GetPersons';
$.ajax({
type: "GET",
url: '/**/***/'+act,
data: { PageIndex: pageIndex, OrderStr: OrderStr, sort: sort },
dataType: "json",
async: false,
success: function (data) {
if (data.success) {
totalPage = data.totalPage;
var objs = [];
var sh;
if (dataType == 1) {
sh = $('#service').html();
} else {
sh = $('#person').html();
}
$.each(data.result, function (i,r) {
objs.push(formatTemplate(r,sh))
})
serviceHtml = objs.join('');
}
}
});
} function loadFlow() { layui.use('flow', function () {
var flow0 = layui.flow; flow0.load({
elem: '#serviceData',
//scrollElem: '#LAY_demo1', //滚动条所在元素,一般不用填,此处只是演示需要。
done: function (page, next) { //执行下一页的回调 setTimeout(function () {
loadList(); //执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(serviceHtml, pageIndex < totalPage); //假设总页数为 10
pageIndex++;
}, 500);
}
}); });
} function orderService(serId,e) {//排序
var i = $(e).find('i');
if (i.hasClass("up")) {
i.addClass('down').removeClass('up');
sort = 1;
} else if (i.hasClass('down')) {
i.addClass('up').removeClass('down');
sort = 2;
} else {
i.addClass('down');
sort = 1;
$(e).parent().siblings().find('i').removeClass('down').removeClass('up');
}
OrderStr = serId;
pageIndex = 1;
$('#serviceData li').remove();
$('cite').click();//加载流
} function formatTemplate(dta, tmpl) { //加载模板数据
var format = {
name: function (x) {
return x
}
};
return tmpl.replace(/{(\w+)}/g, function (m1, m2) {
if (!m2)
return "";
return (format && format[m2]) ? format[m2](dta[m2]) : dta[m2];
});
}
</script> <script type="text/template" id="service">
<li>
<a href="/Hahaha/WxService/Index?s={ServiceID}">
<div class="service_listL"><img src="{Image}"></div>
<div class="service_listr">
<div class="service_listr1 clearfix"><span>{ServiceName}</span><b>{ServiceTime}分钟</b></div>
<p class="service_listr2">{Describe}</p>
<div class="service_listr3"><span>¥{PresentPrice}</span><del>¥{Price}</del></div>
</div>
</a>
</li>
</script> <script type="text/template" id="serviceList">
<ul class="serviceList_tu clearfix list_head">
<li><a class="serviceList_tui" href="serviceCategory.html"><i></i>分类</a></li>
<li><a onclick="orderService('ServiceID',this)" href="javascript:">新品<i></i></a></li>
<li><a onclick="orderService('SalesCount', this)" href="javascript:">销量<i></i></a></li>
<li><a onclick="orderService('PresentPrice', this)" href="javascript:">价格<i></i></a></li>
</ul> </script> <script type="text/template" id="personList">
<div class="serviceList_t list_head">
<ul class="serviceList_tu serviceList_tu2 clearfix">
<li><a onclick="orderService('orderService', this)" href="javascrip:">级别<i></i></a></li>
<li><a href="javascrip:" onclick="orderService('CountServiceHas', this)">销量<i></i></a></li>
</ul>
</div>
</script>
<script type="text/template" id="person">
<li>
<a href="/Hahaha/WxService/ServiceUserIndex?s={PersonId}">
<div class="service_listL"><img src="{Portrait}"></div>
<div class="service_listr">
<div class="service_listr1 clearfix"><span>{Name}<i class="{Sex}"></i></span></div>
<p class="service_listr2">{Introduction}</p>
<div class="service_listr4">服务次数:<span>{CountServiceHas}</span></div>
</div>
</a>
</li>
</script>

效果如下图:

layui流加载+h5自带模板的更多相关文章

  1. js图片加载效果(延迟加载+瀑布流加载)

    概述 两种图片加载的效果:一种是遇到图片较多时,带读条效果的加载提示:另一种是根据滑块的位置进行预加载,用户不察觉的情况下,实现瀑布流的加载效果 详细 代码下载:http://www.demodash ...

  2. thinkPHP+LayUI 懒加载实现

    html <div class="layui-container" id="container"> </div> js,要引入layui ...

  3. iOS “请在微信客户端打开链接” UIWebview加载H5页面携带session、cookie、User-Agent信息 设置cookie、清除cookie、设置User-Agent

    公司新开的一个项目..内容基本上是加载H5页面显示..当时觉得挺简单的..后来发现自己掉坑里了..一些心理历程就不说了..说这个项目主要用到的知识点吧..也是自己踩得坑. 首先说说..这个项目上的内容 ...

  4. 浅试 Webview 一app 加载 H5小游戏

    整体架构: InventionActivity:实现UI的实例化,基本的按钮Activity之间跳转 GameActivity:实现UI的实例化,Webview的基本使用 MyProgressDial ...

  5. 移动web、webApp、混合APP、原生APP、androd H5混合开发 当无网络下,android怎么加载H5界面

    PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,W ...

  6. WAP用户评论简单实现瀑布流加载

    wap端经常会遇到产品或者评论的加载,但是分页的体验不是很好,所以选择通过js实现瀑布流加载方式. 第一步:需要动态加载的主要内容,这里需要动态加载的是li标签的内容 <ul class=&qu ...

  7. Android:webView加载h5网页视频,播放不了,以及横屏全屏的问题和实现自定义加载进度条的效果

    1.webView加载h5网页视频,播放不了,android3.0之后要在menifest添加硬件加速的属性 android:hardwareAccelerated="true". ...

  8. c#字符串加载wpf控件模板代码 - 简书

    原文:c#字符串加载wpf控件模板代码 - 简书 ResourceManager resManagerA = new ResourceManager("cn.qssq666.Properti ...

  9. 仿微信中加载网页时带线行进度条的WebView的实现

    finddreams:http://blog.csdn.net/finddreams/article/details/44172639 为了仿微信中加载网页时带进度条的WebView的实现,首先我们来 ...

随机推荐

  1. haxe相关的计划安排

    用多少写多少.先从入门开始,再到怎么写DSL解析器.最后自举(只是做个示范而已 在深入haxe的过程中,多少会跟typescript有交集,这些会边走边总结. 因为只是for example,所以这个 ...

  2. 防止asp马后门

    好多朋友都拿的有webshell吧,基本上都加了密的...  可是,没见到源码,很难测试它到底有没有后门, 指不定给别人打工了...  下面贴种很简单的方法,大家别扔蛋哈 (asp的哦)  在代码的最 ...

  3. NOIP2011提高组 选择客栈

    原题 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖 ...

  4. Postman插件使用

    Postman插件:模拟前端请求后台,用于后台对外接口测试 POSTMAN解决..先解压Postman_v4.1.3.rar 然后按自己实际解压的文件夹里面的这个文件夹_metadata前面的_去掉 ...

  5. 剑指Offer 29. 最小的K个数 (其他)

    题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题目地址 https://www.nowcoder.com/prac ...

  6. js--变量对象总结

    当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context). 对于每个执行上下文,都有三个重要属性: 变量对象( ...

  7. Python全栈之路----hash函数

    hash函数: 一般翻译为“散列”或“哈希”,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可 ...

  8. Flex布局-容器的属性

    本文部分内容参考阮一峰大神博客,原文地址:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html Flex布局即弹性布局,使用起来十分方便灵活 ...

  9. Java第一次作业——Java语言基础

    <Java技术>第一次作业 学习总结 1.Scanner类实现基本数据输入方法 Scanner input=new Scanner(System.in); int num = input. ...

  10. hdu5000 Clone dp+大数

    After eating food from Chernobyl, DRD got a super power: he could clone himself right now! He used t ...