PC端的分頁和移動端的分頁是不一樣的,如果移動端像PC端那樣點擊上一頁、下一頁,或者點擊具體的頁碼,那樣用戶體驗是非常差的。上拉刷新、下拉刷新這樣的操作,是我們希望實現的效果,那么這種效果該如何實現呢?
下面dropload.min.js閃亮登場,我們直奔主題
- 項目準備
- zepto.min.js
- dropload.min.js
- 上拉下拉刷新的css樣式(下面會詳情說)
- 項目效果圖
1.這是上拉刷新
pic1.png
2.這是上拉刷新
pic2.png
- 圖上的加載中的效果是如何加上去的?
頁面源碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>demo</title>
<link rel="stylesheet" href="index.css">
</head>
<body>
<div class="wrap">
<div class="inner">
<div class="lists">
<a class="item" href="#">
<img src="goods.jpg" alt="">
<h3>1文字描述文字描述</h3>
<span class="date">2015-11-27</span>
</a>
<a class="item" href="#">
<img src="goods.jpg" alt="">
<h3>2文字描述文字描述文字描述文字描述文字描述文字描述文字描述文字描述文字描述文字描述</h3>
<span class="date">2015-11-27</span>
</a>
<a class="item" href="#">
<img src="goods.jpg" alt="">
<h3>3文字描述文字描述文字描述文字描述文字描述</h3>
<span class="date">2015-11-27</span>
</a>
<a class="item" href="#">
<img src="goods.jpg" alt="">
<h3>4文字描述文字描述文字描述文字描述文字描述</h3>
<span class="date">2015-11-27</span>
</a>
<a class="item" href="#">
<img src="goods.jpg" alt="">
<h3>5文字描述文字描述文字描述文字描述文字描述</h3>
<span class="date">2015-11-27</span>
</a>
</div>
</div>
</div>
<script src="zepto.min.js"></script>
<script src="dropload.min.js"></script>
<script src="index.js"></script>
</body>
</html>
index.js
// dropload
var dropload = $('.inner').dropload({
domUp : {
domClass : 'dropload-up',
domRefresh : '<div class="dropload-refresh">↓下拉刷新</div>',
domUpdate : '<div class="dropload-update">↑釋放更新</div>',
domLoad : '<div class="dropload-load"><span class="loading"></span>加載中...</div>'
},
domDown : {
domClass : 'dropload-down',
domRefresh : '<div class="dropload-refresh">↑上拉加載更多</div>',
domUpdate : '<div class="dropload-update">↓釋放加載</div>',
domLoad : '<div class="dropload-load"><span class="loading"></span>加載中...</div>'
},
loadUpFn : function(me){
alert("上拉刷新操作");
me.resetload();
},
loadDownFn : function(me){
alert("下拉刷新操作");
me.resetload();
}
});
我們可以在loadUpFn,loadDownFn中指定新的ajax請求,將ajax返回的結果按照頁面所需的形式追加到容器中。<br /><br />
說到這里,還沒有結束,頁面中的加載中的動畫是怎么實現的呢?
細心的估計已經看到了上面的js中,有這么一段代碼:
domUp : {
domClass : 'dropload-up',
domRefresh : '<div class="dropload-refresh">↓下拉刷新</div>',
domUpdate : '<div class="dropload-update">↑釋放更新</div>',
domLoad : '<div class="dropload-load"><span class="loading"></span>加載中...</div>'
},
domDown : {
domClass : 'dropload-down',
domRefresh : '<div class="dropload-refresh">↑上拉加載更多</div>',
domUpdate : '<div class="dropload-update">↓釋放加載</div>',
domLoad : '<div class="dropload-load"><span class="loading"></span>加載中...</div>'
},
這里,我通過css3動畫來實現了類似gif動態圖的效果,附上源碼:
.dropload-up,
.dropload-down {
position: relative;
height: 0;
overflow: hidden;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
.dropload-refresh,
.dropload-update,
.dropload-load {
position: absolute;
left: 50%;
bottom: 0;
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
-webkit-transform: translate(-50%, 0);
transform: translate(-50%, 0)
}
.dropload-down .dropload-refresh,
.dropload-down .dropload-update,
.dropload-down .dropload-load {
top: 0;
bottom: auto
}
.dropload-load .loading {
display: inline-block;
height: 15px;
width: 15px;
border-radius: 100%;
margin: 6px;
border: 2px solid #666;
border-bottom-color: transparent;
vertical-align: middle;
-webkit-animation: rotate .75s linear infinite;
animation: rotate .75s linear infinite
}
@-webkit-keyframes rotate {
0% {
-webkit-transform: rotate(0deg)
}
50% {
-webkit-transform: rotate(180deg)
}
100% {
-webkit-transform: rotate(360deg)
}
}
@keyframes rotate {
0% {
transform: rotate(0deg)
}
50% {
transform: rotate(180deg)
}
100% {
transform: rotate(360deg)
}
}
好了,實現這個效果就這么多內容。這里是很靈活的,你也可以自己組織加載請求時得動畫效果。快動手試試,應用在你的項目中吧~
(PS:列表的css源碼不在此,如果你想要整個工程的源碼,你可以發我簡信,或者在我的個人主頁加我微信~)