这个完整的代码。触摸下拉可以刷新。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- <script src="./js/jquery-3.4.1.min.js">
</script> -->
<!-- <script src='./js/jquery-1.10.0.js'></script> -->
<!-- <script src="https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js">
</script>
-->
<script src="https://cdn.bootcss.com/jquery/3.2.0/jquery.js"></script>
<title>进行上啦刷新,下拉加载</title>
<style>
.refresh{
display:none;
position:relative;
border:1px solid blue;
margin-bottom:5px;
}
.circle{
width:20px;
height:20px;
background:hotpink;
margin: auto;
}
</style>
</head>
<body>
<div class='refresh'>
嘿嘿,下拉了,松手我就会刷新
<div class='circle'></div>
</div>
<div style='height:200px;background:red;text-align:center'>
第一块
</div>
<div class='qq' style='height:200px;background:greenyellow;'>
第二 块
</div>
<div style='height:200px;background:yellow;'>
第三 块
</div>
<div style='height:200px;background:hotpink;'>
第四 块
</div>
<div style='height:200px;background:blueviolet;'>
第五块
</div>
<div style='height:200px;background:goldenrod;'>
第六块
</div>
<script>
var startY,endY,distance
var doc=document.documentElement||document.body;//这是一个dom对象,不要和jquery方法混用
$(doc).on('touchstart',function(e){
var e=e||window.e
console.log(e,startY,1111)
startY=e.touches[0].clientY
})
$(doc).on('touchmove',function(e){
var e=e||window.e
endY=e.touches[0].clientY;
distance=endY-startY
if(30<=distance&&distance<=60){
$('.refresh').css({'display':'block','height':distance+'px'})
}
if(60<=distance&&distance<=90){
//超过60px就进行二分之一慢速处理。
$('.refresh').css('height',60+(distance-60)/2+'px')
}
if(distance>=90){
//超过90px就进行四分之一慢速处理。75是临界换速当时div块的高度
$('.refresh').css('height',75+(distance-90)/4+'px')
}
console.log(distance,endY)
})
$(doc).on('touchend',function(e){
var e=e||window.e;
//小块开始旋转效果,模仿圈圈'transform':'rotate(300deg)','transition':'all 1s','transform-origin':'50% 50%'
$('.circle').css({'transform':'rotate(3000deg)','transition':'all 1s','transform-origin':'50% 50%'})
var height=$('.refresh').css('height') //得到带px后缀的字符串如86px
height=parseInt(height)
if(height>30){
//当下拉达到一定高度我才会刷新请求数据,操作函数写这里
}
var timer=setInterval(function(){ //慢速变矮,然后隐藏
height=height-5
$('.refresh').css('height',height);
if(height<=10){
clearInterval(timer);
$('.refresh').css({'display':'none'});
$('.circle').css({'transform':'rotate(0deg)'})
startY=0;
endY=0;
distance=0;
console.log('隐藏')
}
},10)
})
</script>
</body>
</html>