=0) { ...">
美文网首页
一个移动端和pc端兼容的移动拖拽js

一个移动端和pc端兼容的移动拖拽js

作者: 卖萌可爱啊 | 来源:发表于2017-05-16 16:47 被阅读0次

functiontouch(selector) {

if(selector.indexOf("#")>=0) {

vardiv1=document.getElementById(selector.split("#")[1]);

}

if(selector.indexOf(".")>=0) {

vardiv1=document.getElementsByClassName(selector.split(".")[1])[0];

}

div1.style.position="absolute";

vardistanceX;

vardistanceY;

div1.addEventListener("touchstart",function(e) {

//获取按下鼠标到div left  top的距离

distanceX=e.touches[0].clientX-div1.offsetLeft;

distanceY=e.touches[0].clientY-div1.offsetTop;

})

div1.addEventListener("touchmove",function(e) {

varoEvent=e.touches[0]||event;

//重新计算div的left top值

varleft=oEvent.clientX-distanceX;

vartop=oEvent.clientY-distanceY;

//left  当小于等于零时,设置为零 防止div拖出document之外

if(left<=0) {

left=0;

}

//当left 超过文档右边界  设置为右边界

elseif(left>=document.documentElement.clientWidth-div1.offsetWidth) {

left=document.documentElement.clientWidth-div1.offsetWidth;

}

if(top<=0) {

top=0;

}

elseif(top>=document.documentElement.clientHeight-div1.offsetHeight) {

top=document.documentElement.clientHeight-div1.offsetHeight;

}

//重新给div赋值

div1.style.top=top+"px";

div1.style.left=left+"px";

})

}

functionDrag(id) {

this.div=document.getElementById(id);

if(this.div) {

this.div.style.cursor="move";

this.div.style.position="absolute";

}

this.disX=0;

this.disY=0;

var_this=this;

this.div.onmousedown=function(evt) {

_this.getDistance(evt);

document.onmousemove=function(evt) {

_this.setPosition(evt);

}

_this.div.onmouseup=function() {

_this.clearEvent();

}

}

}

Drag.prototype.getDistance=function(evt) {

varoEvent=evt||event;

this.disX=oEvent.clientX-this.div.offsetLeft;

this.disY=oEvent.clientY-this.div.offsetTop;

}

Drag.prototype.setPosition=function(evt) {

varoEvent=evt||event;

varl=oEvent.clientX-this.disX;

vart=oEvent.clientY-this.disY;

if(l<=0) {

l=0;

}

elseif(l>=document.documentElement.clientWidth-this.div.offsetWidth) {

l=document.documentElement.clientWidth-this.div.offsetWidth;

}

if(t<=0) {

t=0;

}

elseif(t>=document.documentElement.clientHeight-this.div.offsetHeight) {

t=document.documentElement.clientHeight-this.div.offsetHeight;

}

this.div.style.left=l+"px";

this.div.style.top=t+"px";

}

Drag.prototype.clearEvent=function() {

this.div.onmouseup=null;

document.onmousemove=null;

}

// 此处调用

window.onload=function() {

touch("#div1");

newDrag("div1");

}

相关文章

  • 综合

    现在pc端和移动端都有适应了,如果要pc和移动端都要的话,可以用js里面的 :js判断是移动端还是pc端,写两套吧...

  • 一个移动端和pc端兼容的移动拖拽js

    functiontouch(selector) { if(selector.indexOf("#")>=0) { ...

  • 移动端和pc端的拖拽事件

    pc端拖拽事件 移动端的拖拽事件 移动端的拖拽事件的思路是当手指点下记录手指的坐标和box的位置。当手指移动的时候...

  • 关于font-family的最佳实践

    兼容移动端iOS、Android , PC端 Mac、Windows、Linux

  • 移动端入门篇之拖拽

    移动端的拖拽基本和pc端差不断,就是onmousedown、onmousemove、onmouseup,有些不同 ...

  • 2019-08-12 js题

    移动端和PC端有什么区别 PC考虑的是浏览器的兼容性,而移动端开发考虑的更多的是手机兼容性、 CSS3的动画在移动...

  • video.js在safari下无法播放

    "video.js": "^7.10.2"safari 14 这样就可以兼容pc safari,移动端safari...

  • 10-jQuery04

    移动端js事件 移动端的操作方式和PC端是不同的,移动端主要用于手指操作,所以有特殊的touch事件,touch事...

  • WEB兼容性测试----移动端兼容矩阵的设计

    上期文章分享了PC端的web兼容测试,本期我们通过调研移动端web的特性和移动端浏览器特性,进一步探讨Web移动端...

  • 移动端js事件以及相关库

    移动端js事件 移动端的操作方式和PC端是不同的,移动端主要用手指操作,所以有特殊的touch事件,touch事件...

网友评论

      本文标题:一个移动端和pc端兼容的移动拖拽js

      本文链接:https://www.haomeiwen.com/subject/wxilxxtx.html