mui 水平滑动标签及列表和定时刷新

 

1、html

<!-- 消息 -->
<div id="tabbar-msg" class="mui-control-content nav-tab">
    <div class="mui-content">
        <div id="slider" class="mui-slider mui-fullscreen">
            <div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-            indicator mui-segmented-control mui-segmented-control-inverted">
		<div class="mui-scroll" id="msgSliderTilte">
			<a class="mui-control-item mui-active" href="#item1mobile">
			    推荐
			</a>
		        <a class="mui-control-item" href="#item2mobile">
			    热点
			</a>
			<a class="mui-control-item" href="#item3mobile">
			    北京
			</a>
			<a class="mui-control-item" href="#item4mobile">
			    社会
			</a>
			<a class="mui-control-item" href="#item5mobile">
			    娱乐
			</a>
			<a class="mui-control-item" href="#item6mobile">
			    科技
			</a>
			<a class="mui-control-item" href="#item7mobile">
			    html
			</a>
			<a class="mui-control-item" href="#item8mobile">
			    css
			</a>
		</div>
	</div>
	<div class="mui-slider-group">
	    <div id="item1mobile" class="mui-slider-item mui-control-content mui-active">
		<div id="scroll1" class="mui-scroll-wrapper">
			<div class="mui-scroll">
				<ul class="mui-table-view">

				</ul>
			</div>
		</div>
	    </div>
	    <div id="item2mobile" class="mui-slider-item mui-control-content">
		<div class="mui-scroll-wrapper">
		    <div class="mui-scroll">
			<ul class="mui-table-view">

			</ul>
		    </div>
		</div>
	    </div>
	    <div id="item3mobile" class="mui-slider-item mui-control-content">
		<div class="mui-scroll-wrapper">
		    <div class="mui-scroll">
			<ul class="mui-table-view">

			</ul>
		    </div>
		</div>
	    </div>
	    <div id="item4mobile" class="mui-slider-item mui-control-content">
		<div class="mui-scroll-wrapper">
		    <div class="mui-scroll">
			<ul class="mui-table-view">

			</ul>
		    </div>
		</div>
	    </div>
	    <div id="item5mobile" class="mui-slider-item mui-control-content">
		<div class="mui-scroll-wrapper">
		    <div class="mui-scroll">
			<ul class="mui-table-view">

			</ul>
		    </div>
		</div>
	    </div>
	    <div id="item6mobile" class="mui-slider-item mui-control-content">
		<div class="mui-scroll-wrapper">
		    <div class="mui-scroll">
			<ul class="mui-table-view">

			</ul>
		    </div>
		</div>
	    </div>
	    <div id="item7mobile" class="mui-slider-item mui-control-content">
		<div class="mui-scroll-wrapper">
		    <div class="mui-scroll">
			<ul class="mui-table-view">

			</ul>
		    </div>
		</div>
	    </div>
	    <div id="item8mobile" class="mui-slider-item mui-control-content">
		<div class="mui-scroll-wrapper">
		    <div class="mui-scroll">
			<ul class="mui-table-view">

			</ul>
		    </div>
		</div>
	    </div>
<!--  -->
        </div>
    </div>
</div>
</div>
	
<!-- 标题替换 -->
<div id="msgReplace01" style="display: none;">
	<a class="mui-control-item {*data01}" href="{*data02}">
		{*data03}
	</a>
</div>

2、CSS

.mui-bar-nav~.mui-content .mui-slider.mui-fullscreen {
	top: 0;
	height: auto;
}

.mui-bar-tab~.mui-content .mui-slider.mui-fullscreen .mui-segmented-control~.mui-slider-group {
	bottom: 0px;
}

.mui-segmented-control.mui-scroll-wrapper {
	height: 48px;
	font-size: 15px;
}

.mui-segmented-control.mui-scroll-wrapper .mui-control-item {
	padding: 5px 10px;
	background: #FFFFFF;
}
.mui-slider-indicator.mui-segmented-control {
    background-color: #FFFFFF;
	position: relative;
    bottom: auto;
	border-bottom: 1px solid #E5E5E5;
}
.mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active {
	background: #FFFFFF;
}

.mui-pull-top-tips {
	position: absolute;
	top: -20px;
	left: 50%;
	margin-left: -25px;
	width: 40px;
	height: 40px;
	border-radius: 100%;
	z-index: 1;
}

.mui-bar~.mui-pull-top-tips {
	top: 24px;
}

.mui-pull-top-wrapper {
	width: 42px;
	height: 42px;
	display: block;
	text-align: center;
	background-color: #efeff4;
	border: 1px solid #ddd;
	border-radius: 25px;
	background-clip: padding-box;
	box-shadow: 0 4px 10px #bbb;
	overflow: hidden;
}

.mui-pull-top-tips.mui-transitioning {
	-webkit-transition-duration: 200ms;
	transition-duration: 200ms;
}

.mui-pull-top-tips .mui-pull-loading {
	/*-webkit-backface-visibility: hidden;
				-webkit-transition-duration: 400ms;
				transition-duration: 400ms;*/
	margin: 0;
}

.mui-pull-top-wrapper .mui-icon,
.mui-pull-top-wrapper .mui-spinner {
	margin-top: 7px;
}

.mui-pull-top-wrapper .mui-icon.mui-reverse {
	/*-webkit-transform: rotate(180deg) translateZ(0);*/
}

.mui-pull-bottom-tips {
	text-align: center;
	background-color: #efeff4;
	font-size: 15px;
	line-height: 40px;
	color: #777;
}

.mui-pull-top-canvas {
	overflow: hidden;
	background-color: #fafafa;
	border-radius: 40px;
	box-shadow: 0 4px 10px #bbb;
	width: 40px;
	height: 40px;
	margin: 0 auto;
}

.mui-pull-top-canvas canvas {
	width: 40px;
}

3、JS

var msgPageRows = 20;
var pageNum1 = 0;
var pageNum2 = 0;
var pageNum3 = 0;
var pageNum4 = 0;
var pageNum5 = 0;
var pageNum6 = 0;
var pageNum7 = 0;
var pageNum8 = 0;

var totalPage1 = "";
var totalPage2 = "";
var totalPage3 = "";
var totalPage4 = "";
var totalPage5 = "";
var totalPage6 = "";
var totalPage7 = "";
var totalPage8 = "";

mui.plusReady(function() {
    getMessageTitle();
    initMsg();
    queryMessage();
});

var tabMsg = "";

/**
 * 定时刷新
 */
function queryMessage() {
	tabMsg = setInterval(function() {
		pageNum1 = 0;
		pageNum2 = 0;
		pageNum3 = 0;
		pageNum4 = 0;
		pageNum5 = 0;
		pageNum6 = 0;
		pageNum7 = 0;
		pageNum8 = 0;
		initMsg();
	}, 20000);
};
function getMessageTitle() {
	var dataForm = {}
	fhAjaxSynch("XXXXXXX(接口名字)", dataForm, "post", 10000, function(_json) {
		console.log("数据:" + JSON.stringify(_json));
		//关闭加载框
		if (_json.status == "error") {
			mui.toast(_json.message);
			return;
		} else {
			var jsonData = _json.data;
			setMsgSliderTilte(jsonData);
		};
	});
}

/**
 * 动态设置消息滑动标题
 */
function setMsgSliderTilte(pdata) {
	var html = "";
	mui.each(pdata, function(index, element) {
		var tempHtml = document.getElementById("msgReplace01").innerHTML;
		if (index == 0) {
			tempHtml = tempHtml.replace("{*data01}", "mui-active");
		} else {
			tempHtml = tempHtml.replace("{*data01}", "");
		}
		tempHtml = tempHtml.replace("{*data02}", "#item" + (parseInt(element.value) + 1) + "mobile");
		tempHtml = tempHtml.replace("{*data03}", element.label);

		html += tempHtml;
	});
	document.getElementById("msgSliderTilte").innerHTML = html;
}

/**
 * 消息列表
 */
function initMsg() {
	(function($) {
		//阻尼系数
		var deceleration = mui.os.ios ? 0.003 : 0.0009;
		$('.mui-scroll-wrapper').scroll({
			bounce: false,
			indicators: true, //是否显示滚动条
			deceleration: deceleration
		});
		$.ready(function() {
			//循环初始化所有下拉刷新,上拉加载。
			$.each(document.querySelectorAll('.mui-slider-group .mui-scroll'), function(index, pullRefreshEl) {
				$(pullRefreshEl).pullToRefresh({
					down: {
						auto: true,
						callback: function() {
							console.log("下拉刷新");
							var self = this;
							if (index == 0) { //推荐
								pageNum1 = 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									ul.innerHTML = "";
									getMsgListByType(msgPageRows, pageNum1, index, ul);
									self.endPullDownToRefresh(pageNum1 === totalPage1); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 1) { //热点
								pageNum2 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									ul.innerHTML = "";
									getMsgListByType(msgPageRows, pageNum2, index, ul);
									self.endPullDownToRefresh(pageNum2 === totalPage2);
								}, 1000);
							} else if (index == 2) { //北京
								pageNum3 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									ul.innerHTML = "";
									getMsgListByType(msgPageRows, pageNum3, index, ul);
									self.endPullDownToRefresh(pageNum3 === totalPage3); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 3) { //社会
								pageNum4 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									ul.innerHTML = "";
									getMsgListByType(msgPageRows, pageNum4, index, ul);
									self.endPullDownToRefresh(pageNum4 === totalPage4); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 4) { //娱乐
								pageNum5 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									ul.innerHTML = "";
									getMsgListByType(msgPageRows, pageNum5, index, ul);
									self.endPullDownToRefresh(pageNum5 === totalPage5); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 5) { //科技
								pageNum6 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									ul.innerHTML = "";
									getMsgListByType(msgPageRows, pageNum6, index, ul);
									self.endPullDownToRefresh(pageNum6 === totalPage6); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 6) { //html
								pageNum7 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									ul.innerHTML = "";
									getMsgListByType(msgPageRows, pageNum7, index, ul);
									self.endPullDownToRefresh(pageNum7 === totalPage7); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 7) { //CSS
								pageNum8 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									// ul.appendChild(createFragment(ul, index, 5));
									ul.innerHTML = "";
									getMsgListByType(msgPageRows, pageNum8, index, ul);
									self.endPullDownToRefresh(pageNum8 === totalPage8); //最后一页加载完成后禁用上拉	
								}, 1000);
							}
						}
					},
					up: {
						auto: true, //默认执行一次上拉加载
						contentinit: '上拉加载更多信息',
						contentdown: '上拉加载结束',
						contentrefresh: '正在加载信息请稍等',
						contentnomore: '没有更多数据',
						callback: function() {
							console.log("上拉加载" + index);
							var self = this;

							if (index == 0) { //推荐
								pageNum1 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									if(pageNum1==1){
										ul.innerHTML = "";
									}
									getMsgListByType(msgPageRows, pageNum1, index, ul);
									self.endPullUpToRefresh(pageNum1 === totalPage1); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 1) { //热点
								pageNum2 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									if(pageNum2==1){
										ul.innerHTML = "";
									}
									getMsgListByType(msgPageRows, pageNum2, index, ul);
									self.endPullUpToRefresh(pageNum2 === totalPage2); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 2) { //北京
								pageNum3 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									if(pageNum3==1){
										ul.innerHTML = "";
									}
									getMsgListByType(msgPageRows, pageNum3, index, ul);
									self.endPullUpToRefresh(pageNum3 === totalPage3); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 3) { //社会
								pageNum4 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									if(pageNum4==1){
										ul.innerHTML = "";
									}
									getMsgListByType(msgPageRows, pageNum4, index, ul);
									self.endPullUpToRefresh(pageNum4 === totalPage4); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 4) { //娱乐
								pageNum5 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									if(pageNum5==1){
										ul.innerHTML = "";
									}
									getMsgListByType(msgPageRows, pageNum5, index, ul);
									self.endPullUpToRefresh(pageNum5 === totalPage5); //最后一页加载完成后禁用上拉	
								}, 1000);
							} else if (index == 5) { //科技
								pageNum6 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									if(pageNum6==1){
										ul.innerHTML = "";
									}
									getMsgListByType(msgPageRows, pageNum6, index, ul);
									self.endPullUpToRefresh(pageNum6 === totalPage6); //最后一页加载完成后禁用上拉	
								}, 1000);
					} else if (index == 6) { //html
								pageNum7 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									if(pageNum7==1){
										ul.innerHTML = "";
									}
									getMsgListByType(msgPageRows, pageNum7, index, ul);
									self.endPullUpToRefresh(pageNum7 === totalPage7); //最后一页加载完成后禁用上拉	
								}, 1000);
						} else if (index == 7) { //CSS
								pageNum8 += 1;
								setTimeout(function() {
									var ul = self.element.querySelector('.mui-table-view');
									if(pageNum8==1){
										ul.innerHTML = "";
									}
									getMsgListByType(msgPageRows, pageNum8, index, ul);
									self.endPullUpToRefresh(pageNum8 === totalPage8); //最后一页加载完成后禁用上拉	
								}, 1000);
							}
						}
					}
				});
			});
		});

		mui("#tabbar-msg").on('tap', 'li', function() {
			var msgData = this.getAttribute("data-msg");
			mui.openWindow({
				url: 'templates/msg/msgDetail.html',
				createNew: false,
				extras: {
					jsonData: msgData
				},
			});
		})
	})(mui);
}

function getMsgListByType(mpageSize, mpage, type, ul) {
	var dataForm = {
		"rows": mpageSize,
		"page": mpage,
		"sort": "createtime",
		"order": "desc",
		"dictType": type,
		"userId": plus.storage.getItem("USERID")
	}
	console.log("mpage:" + mpage);
	fhAjaxSynch("(接口名字)", dataForm, "post", 10000, function(_json) {
		// console.log("类型:" + type + "," + JSON.stringify(_json));
		//关闭加载框
		if (_json.status == "error") {
			mui.toast(_json.message);
			return;
		} else {
			var rowsData = _json.data.rows;
			var totalRows = _json.data.total;
			if (type == 0) {
				if (totalRows % mpageSize === 0) {
					totalPage1 = totalRows / mpageSize;
				} else {
					totalPage1 = parseInt(totalRows / mpageSize) + 1;
				}
			} else if (type == 1) {
				if (totalRows % mpageSize === 0) {
					totalPage2 = totalRows / mpageSize;
				} else {
					totalPage2 = parseInt(totalRows / mpageSize) + 1;
				}
			} else if (type == 2) {
				if (totalRows % mpageSize === 0) {
					totalPage3 = totalRows / mpageSize;
				} else {
					totalPage3 = parseInt(totalRows / mpageSize) + 1;
				}
			} else if (type == 3) {
				if (totalRows % mpageSize === 0) {
					totalPage4 = totalRows / mpageSize;
				} else {
					totalPage4 = parseInt(totalRows / mpageSize) + 1;
				}
			} else if (type == 4) {
				if (totalRows % mpageSize === 0) {
					totalPage5 = totalRows / mpageSize;
				} else {
					totalPage5 = parseInt(totalRows / mpageSize) + 1;
				}
			} else if (type == 5) {
				if (totalRows % mpageSize === 0) {
					totalPage6 = totalRows / mpageSize;
				} else {
					totalPage6 = parseInt(totalRows / mpageSize) + 1;
				}
			} else if (type == 6) {
				if (totalRows % mpageSize === 0) {
					totalPage7 = totalRows / mpageSize;
				} else {
					totalPage7 = parseInt(totalRows / mpageSize) + 1;
				}
			} else if (type == 7) {
				if (totalRows % mpageSize === 0) {
					totalPage8 = totalRows / mpageSize;
				} else {
					totalPage8 = parseInt(totalRows / mpageSize) + 1;
				}
			}
			setMsgListItem(rowsData, ul);
		}
	});
}

function setMsgListItem(pdata, pul) {
	var fragment = document.createDocumentFragment();
	var li;
	mui.each(pdata, function(index, element) {
		li = document.createElement('li');
		li.className = 'mui-table-view-cell';
		li.setAttribute("data-msg", JSON.stringify(element));
		li.innerHTML = element.msg_title + "<br/>" + element.msg_content;
		fragment.appendChild(li);
	});
	pul.appendChild(fragment);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值