console
var oBox = document.querySelector("#box");
var startPoint = 0;
var startX = 0,startY=0;
var translateX = 0,translateY = 0;
oBox.addEventListener(
"touchstart",
function(e) {
startPointX = e.changedTouches[0].pageX;
startPointY = e.changedTouches[0].pageY;
startX = translateX;
startY = translateY;
document.addEventListener("touchmove",defaultEvent,false);
});
oBox.addEventListener(
"touchmove",
function(e) {
var nowPointX = e.changedTouches[0].pageX;
var nowPointY = e.changedTouches[0].pageY;
var disX = nowPointX - startPointX;
var disY = nowPointY - startPointY;
translateX= startX + disX;
translateY= startY + disY;
translateX=Math.min(Math.max(translateX,0),document.documentElement.clientWidth-oBox.offsetWidth)
translateY=Math.min(Math.max(translateY,0),document.documentElement.clientHeight-oBox.offsetHeight)
oBox.style.WebkitTransform = oBox.style.transform = "translate("+translateX+"px,"+translateY+"px)";
oBox.style.WebkitTransition = oBox.style.transition = "0s"
}
);
oBox.addEventListener(
"touchend",
function(e) {
document.removeEventListener("touchmove",defaultEvent,false);
var winX=document.documentElement.clientWidth-oBox.offsetWidth
var bX=translateX+oBox.offsetWidth/2;
if(bX>document.documentElement.clientWidth/2){
console.log(winX)
console.log('大于,向右')
oBox.style.WebkitTransform = oBox.style.transform = "translate("+winX+"px,"+translateY+"px)";
oBox.style.WebkitTransition = oBox.style.transition = "0.5s"
}else if(bX<document.documentElement.clientWidth/2){
console.log('小于,向左')
oBox.style.WebkitTransform = oBox.style.transform = "translate(0px,"+translateY+"px)";
oBox.style.WebkitTransition = oBox.style.transition = "0.5s"
}
}
);
function defaultEvent(e) {
e.preventDefault();
}
<a id="box" href="https://www.baidu.com"></a>
*{
padding: 0;
margin: 0;
}
#box{
width: 100px;
height: 100px;
background: pink;
display: block;
border-radius: 50%;
}