哪里错了吗,手机点网页也会自动 下拉刷新?有办法解决吗?
<style type="text/css">
#slideDown{margin-top: 0;width: 100%;}
#slideDown1,#slideDown2{width: 100%;height: 70px;;background: #e9f4f7;display: none;}
#slideDown1{height: 20px;}
#slideDown1>p,#slideDown2>p{margin: 20px auto;text-align:center;font-size: 14px;color: #37bbf5;}
</style>
</head>
<body id="content">
<div>
<div id="slideDown">
<div id="slideDown1">
<p>松开刷新</p>
</div>
<div id="slideDown2">
<p>正在刷新 ...</p>
</div>
</div>
<div>
<ul>
<li>item1 -- item1555555555 -- item1aaaaaaa</li>
<li>item2 -- item2 -dsfasd- item2</li>
<li>item3 -- item3 -- item3</li>
<li>item4 -- item4 -- item4</li>
<li>item5 -- item5 -- item5</li>
<li>item6 -- item6 -- item6</li>
<li>item7 -- item7 -- item7</li>
</ul>
</div>
</div>
</body>
</html>
<script type="text/javascript">
function slideDownStep1(dist){
var slideDown1 = document.getElementById("slideDown1"),
slideDown2 = document.getElementById("slideDown2");
slideDown2.style.display = "none";
slideDown1.style.display = "block";
slideDown1.style.height = (parseInt("20px") - dist) + "px";
}
function slideDownStep2(){
var slideDown1 = document.getElementById("slideDown1"),
slideDown2 = document.getElementById("slideDown2");
slideDown1.style.display = "none";
slideDown1.style.height = "20px";
slideDown2.style.display = "block";
}
function slideDownStep3(){
var slideDown1 = document.getElementById("slideDown1"),
slideDown2 = document.getElementById("slideDown2");
slideDown1.style.display = "none";
slideDown2.style.display = "none";
}
k_touch("content","y");
function k_touch(contentId,way){
var _start = 0,
_end = 0,
_content = document.getElementById(contentId);
_content.addEventListener("touchstart",touchStart,false);
_content.addEventListener("touchmove",touchMove,false);
_content.addEventListener("touchend",touchEnd,false);
function touchStart(event){
var touch = event.targetTouches[0];
if(way == "x"){
_start = touch.pageX;
}else{
_start = touch.pageY;
}
}
function touchMove(event){
var touch = event.targetTouches[0];
if(way == "x"){
_end = (_start - touch.pageX);
}else{
_end = (_start - touch.pageY);
if(_end < 0){
slideDownStep1(_end);
}
}
}
function touchEnd(event){
if(_end >0){
console.log("左滑或上滑 "+_end);
}else{
console.log("右滑或下滑"+_end);
slideDownStep2();
setTimeout(function(){
slideDownStep3();
},2500);
}
}
}
</script>
我修改了你的touchstart touchend,你看看
<html>
<head>
<script type="text/javascript">
window.onload = function () {
function slideDownStep1(dist) {
var slideDown1 = document.getElementById("slideDown1"),
slideDown2 = document.getElementById("slideDown2");
slideDown2.style.display = "none";
slideDown1.style.display = "block";
slideDown1.style.height = (parseInt("20px") - dist) + "px";
}
function slideDownStep2() {
var slideDown1 = document.getElementById("slideDown1"),
slideDown2 = document.getElementById("slideDown2");
slideDown1.style.display = "none";
slideDown1.style.height = "20px";
slideDown2.style.display = "block";
}
function slideDownStep3() {
var slideDown1 = document.getElementById("slideDown1"),
slideDown2 = document.getElementById("slideDown2");
slideDown1.style.display = "none";
slideDown2.style.display = "none";
}
k_touch("content", "y");
function k_touch(contentId, way) {
var _start = 0,
_end = 0,
_content = document.getElementById(contentId);
_content.addEventListener("touchstart", touchStart, false);
_content.addEventListener("touchmove", touchMove, false);
_content.addEventListener("touchend", touchEnd, false);
function touchStart(event) {
_start = 0
_end = 0
var touch = event.targetTouches[0];
if (way == "x") {
_start = touch.pageX;
} else {
_start = touch.pageY;
}
}
function touchMove(event) {
var touch = event.targetTouches[0];
if (way == "x") {
_end = (_start - touch.pageX);
} else {
_end = (_start - touch.pageY);
if (_end < 0) {
slideDownStep1(_end);
}
}
}
function touchEnd(event) {
if (_end == 0) {
console.log("点击屏幕")
return
}
if (_end > 0) {
console.log("左滑或上滑 " + _end);
} else {
console.log("右滑或下滑" + _end);
slideDownStep2();
setTimeout(function () {
slideDownStep3();
}, 2500);
}
}
}
}
</script>
<style type="text/css">
#slideDown {
margin-top: 0;
width: 100%;
}
#slideDown1,
#slideDown2 {
width: 100%;
height: 70px;
;
background: #e9f4f7;
display: none;
}
#slideDown1 {
height: 20px;
}
#slideDown1>p,
#slideDown2>p {
margin: 20px auto;
text-align: center;
font-size: 14px;
color: #37bbf5;
}
</style>
</head>
<body id="content">
<div>
<div id="slideDown">
<div id="slideDown1">
<p>松开刷新</p>
</div>
<div id="slideDown2">
<p>正在刷新 ...</p>
</div>
</div>
<div>
<ul>
<li>item1 -- item1555555555 -- item1aaaaaaa</li>
<li>item2 -- item2 -dsfasd- item2</li>
<li>item3 -- item3 -- item3</li>
<li>item4 -- item4 -- item4</li>
<li>item5 -- item5 -- item5</li>
<li>item6 -- item6 -- item6</li>
<li>item7 -- item7 -- item7</li>
</ul>
</div>
</div>
</body>
</html>
您的采纳就是对我最大的动力,谢谢!!!
把判断下滑的_end偏移量设置大一点试试
你的问题是啥?代码是从别的地方没拷全吗?很多标签都没有封闭
全局设一个flag标记,当触发touchstart的时候设为0,触发touchmove的时候设为1,1的时候刷新
这种建议用三方库, jQuery WeUI
你可以看看这个:http://jqweui.com/extends#pull-to-refresh