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);
}