想问一下这个下拉提示文字是哪个函数在控制它的移动?源码下面
解决方案 »
- JS鼠标捕获DIV内选中的坐标和宽高
- 鼠标over和out对于事件改变div class属性的问题
- js中的事件,问题
- 各位大侠,高分急求一段JS代码,关于图片的上下浮动?
- 一个现象:标准html标签如:<p>abc</p>,用.childNodes读取为p、text两部分,p节点.hasChildNodes()为true,但自定义节点如:<abc>abc</a
- 再问经典问题:option触发什么事件?
- 在线等待:如何单独刷新一个层?
- 关于import的问题
- 低级问题,javascript如何将字符串转换成日期型,在线等待。
- 有个问题!
- vue中数据在页面中的传递
- datatables 怎么把行详情折叠 要后台的数据
* pull to refresh v2.0
*author:wallace
*2015-7-22
*/
var refresher = {
info: {
"pullDownLable": "下拉更新...",
"pullingDownLable": "更新中...",
"pullUpLable": "上拉加载更多...",
"pullingUpLable": "加载更多中...",
"loadingLable": "Loading..."
},
init: function(parameter) {
var wrapper = document.getElementById(parameter.id);
var div = document.createElement("div");
div.className = "scroller";
wrapper.appendChild(div);
var scroller = wrapper.querySelector(".scroller");
var list = wrapper.querySelector("#" + parameter.id + " ul");
scroller.insertBefore(list, scroller.childNodes[0]);
var pullDown = document.createElement("div");
pullDown.className = "pullDown";
var loader = document.createElement("div");
loader.className = "loader";
for (var i = 0; i < 4; i++) {
var span = document.createElement("span");
loader.appendChild(span);
}
pullDown.appendChild(loader);
var pullDownLabel = document.createElement("div");
pullDownLabel.className = "pullDownLabel";
pullDown.appendChild(pullDownLabel);
scroller.insertBefore(pullDown, scroller.childNodes[0]);
var pullUp = document.createElement("div");
pullUp.className = "pullUp";
var loader = document.createElement("div");
loader.className = "loader";
for (var i = 0; i < 4; i++) {
var span = document.createElement("span");
loader.appendChild(span);
}
pullUp.appendChild(loader);
var pullUpLabel = document.createElement("div");
pullUpLabel.className = "pullUpLabel";
var content = document.createTextNode(refresher.info.pullUpLable);
pullUpLabel.appendChild(content);
pullUp.appendChild(pullUpLabel);
scroller.appendChild(pullUp);
var pullDownEl = wrapper.querySelector(".pullDown");
var pullDownOffset = pullDownEl.offsetHeight;
var pullUpEl = wrapper.querySelector(".pullUp");
var pullUpOffset = pullUpEl.offsetHeight;
this.scrollIt(parameter, pullDownEl, pullDownOffset, pullUpEl, pullUpOffset);
},
scrollIt: function(parameter, pullDownEl, pullDownOffset, pullUpEl, pullUpOffset) {
eval(parameter.id + "= new iScroll(parameter.id, {useTransition: true,vScrollbar: false,topOffset: pullDownOffset,onRefresh: function () {refresher.onRelease(pullDownEl,pullUpEl);},onScrollMove: function () {refresher.onScrolling(this,pullDownEl,pullUpEl,pullUpOffset);},onScrollEnd: function () {refresher.onPulling(pullDownEl,parameter.pullDownAction,pullUpEl,parameter.pullUpAction);},})");
pullDownEl.querySelector('.pullDownLabel').innerHTML = refresher.info.pullDownLable;
document.addEventListener('touchmove', function(e) {
e.preventDefault();
}, false);
},
onScrolling: function(e, pullDownEl, pullUpEl, pullUpOffset) {
if (e.y > -(pullUpOffset)) {
pullDownEl.id = '';
pullDownEl.querySelector('.pullDownLabel').innerHTML = refresher.info.pullDownLable;
e.minScrollY = -pullUpOffset;
}
if (e.y > 0) {
pullDownEl.classList.add("flip");
pullDownEl.querySelector('.pullDownLabel').innerHTML = refresher.info.pullingDownLable;
e.minScrollY = 0;
}
if (e.scrollerH < e.wrapperH && e.y < (e.minScrollY - pullUpOffset) || e.scrollerH > e.wrapperH && e.y < (e.maxScrollY - pullUpOffset)) {
pullUpEl.style.display = "block";
pullUpEl.classList.add("flip");
pullUpEl.querySelector('.pullUpLabel').innerHTML = refresher.info.pullingUpLable;
}
if (e.scrollerH < e.wrapperH && e.y > (e.minScrollY - pullUpOffset) && pullUpEl.id.match('flip') || e.scrollerH > e.wrapperH && e.y > (e.maxScrollY - pullUpOffset) && pullUpEl.id.match('flip')) {
pullDownEl.classList.remove("flip");
pullUpEl.querySelector('.pullUpLabel').innerHTML = refresher.info.pullUpLable;
}
},
onRelease: function(pullDownEl, pullUpEl) {
if (pullDownEl.className.match('loading')) {
pullDownEl.classList.toggle("loading");
pullDownEl.querySelector('.pullDownLabel').innerHTML = refresher.info.pullDownLable;
pullDownEl.querySelector('.loader').style.display = "none"
pullDownEl.style.lineHeight = pullDownEl.offsetHeight + "px";
}
if (pullUpEl.className.match('loading')) {
pullUpEl.classList.toggle("loading");
pullUpEl.querySelector('.pullUpLabel').innerHTML = refresher.info.pullUpLable;
pullUpEl.querySelector('.loader').style.display = "none"
pullUpEl.style.lineHeight = pullUpEl.offsetHeight + "px";
}
},
onPulling: function(pullDownEl, pullDownAction, pullUpEl, pullUpAction) {
if (pullDownEl.className.match('flip') /*&&!pullUpEl.className.match('loading')*/ ) {
pullDownEl.classList.add("loading");
pullDownEl.classList.remove("flip");
pullDownEl.querySelector('.pullDownLabel').innerHTML = refresher.info.loadingLable;
pullDownEl.querySelector('.loader').style.display = "block"
pullDownEl.style.lineHeight = "20px";
if (pullDownAction) pullDownAction();
}
if (pullUpEl.className.match('flip') /*&&!pullDownEl.className.match('loading')*/ ) {
pullUpEl.classList.add("loading");
pullUpEl.classList.remove("flip");
pullUpEl.querySelector('.pullUpLabel').innerHTML = refresher.info.loadingLable;
pullUpEl.querySelector('.loader').style.display = "block"
pullUpEl.style.lineHeight = "20px";
if (pullUpAction) pullUpAction();
}
}
}
info: {
"pullDownLable": "下拉更新...",
"pullingDownLable": "更新中...",
"pullUpLable": "上拉加载更多...",
"pullingUpLable": "加载更多中...",
"loadingLable": "Loading..."
},