PC版改为mobile版遇到了点问题

tomorrow93 2017-11-30 11:25:06
以下是图片拖动插件,PC是没问题的,现要改成移动端版该怎么改啊,JS菜鸟好多都看不懂只能来求救了!
<div class="ldxx-img" id="ldxx-img"> <!-- 容器 -->
<div class="shapan" draggable="false" id="img"> <!-- 拖动的是这里 -->
<img src="images/banner.jpg"> <!-- 图片不限制大小 -->
</div>
</div>


//图片拖动
window.onload = function(){
var draging = false, lastPoint;
var body = document.body;
var img = document.getElementById('img');
img.onmousedown = function(e){
e = e || window.event;
var x = e.clientX;
var y = e.clientY;
if(!lastPoint){
lastPoint = {};
}
lastPoint.x = x;
lastPoint.y = y;
draging = true;
if(e.preventDefault){
e.preventDefault();
}else{
return false;
}
}
img.ondragstart = function(e){
e = e || window.event;
if(e.preventDefault){
e.preventDefault();
}else{
return false;
}
}
img.onmouseup = function(){
draging = false;
lastPoint = undefined;
}
if(document.addEventListener){
body.addEventListener('mousemove',function(e){
onMouseMove(e);
},false);
body.addEventListener('mouseup',onMouseUp,false);
}else{
body.attachEvent('onmousemove',function(){
var event = window.event;
onMouseMove(event);
})
body.attachEvent('onmouseup',onMouseUp);
}

function onMouseMove(e){
if(!draging){
return;
}
var img = document.getElementById('img');
var ldxx_img = document.getElementById('ldxx-img');
if(lastPoint){
var x = e.clientX , y = e.clientY;
var imgTop = parseFloat(img.style.top || '0');
var imgLeft = parseFloat(img.style.left || '0');
var changeX = x - lastPoint.x , changeY = y - lastPoint.y;
var dis_X = imgLeft + changeX;
var dis_Y = imgTop + changeY;
var sub_img = img.getElementsByTagName('img')[0];
var sub_img_width = sub_img.offsetWidth;
var sub_img_height = sub_img.offsetHeight;
var img_width = ldxx_img.offsetWidth;
var img_height = ldxx_img.offsetHeight;
var dis_w = img_width - sub_img_width;
var dis_h = img_height - sub_img_height;
if(dis_X>0){
dis_X = 0;
}
if(dis_X < dis_w){
dis_X = dis_w;
}

if(dis_Y>0){
dis_Y = 0;
}
if(dis_Y < dis_h){
dis_Y = dis_h;
}

img.style.top = dis_Y + 'px';
img.style.left = dis_X + 'px';
lastPoint.x = x, lastPoint.y = y;
}
}
function onMouseUp(){
draging = false;
lastPoint = undefined;
}
}
...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomorrow93 2017-11-30
  • 打赏
  • 举报
回复
csdn的代码高亮有问题,我在重新贴一下js代码 //图片拖动 window.onload = function(){ var draging = false, lastPoint; var body = document.body; var img = document.getElementById('img'); img.onmousedown = function(e){ e = e || window.event; var x = e.clientX; var y = e.clientY; if(!lastPoint){ lastPoint = {}; } lastPoint.x = x; lastPoint.y = y; draging = true; if(e.preventDefault){ e.preventDefault(); }else{ return false; } } img.ondragstart = function(e){ e = e || window.event; if(e.preventDefault){ e.preventDefault(); }else{ return false; } } img.onmouseup = function(){ draging = false; lastPoint = undefined; } if(document.addEventListener){ body.addEventListener('mousemove',function(e){ onMouseMove(e); },false); body.addEventListener('mouseup',onMouseUp,false); }else{ body.attachEvent('onmousemove',function(){ var event = window.event; onMouseMove(event); }) body.attachEvent('onmouseup',onMouseUp); } function onMouseMove(e){ if(!draging){ return; } var img = document.getElementById('img'); var ldxx_img = document.getElementById('ldxx-img'); if(lastPoint){ var x = e.clientX , y = e.clientY; var imgTop = parseFloat(img.style.top || '0'); var imgLeft = parseFloat(img.style.left || '0'); var changeX = x - lastPoint.x , changeY = y - lastPoint.y; var dis_X = imgLeft + changeX; var dis_Y = imgTop + changeY; var sub_img = img.getElementsByTagName('img')[0]; var sub_img_width = sub_img.offsetWidth; var sub_img_height = sub_img.offsetHeight; var img_width = ldxx_img.offsetWidth; var img_height = ldxx_img.offsetHeight; var dis_w = img_width - sub_img_width; var dis_h = img_height - sub_img_height; if(dis_X>0){ dis_X = 0; } if(dis_X < dis_w){ dis_X = dis_w; } if(dis_Y>0){ dis_Y = 0; } if(dis_Y < dis_h){ dis_Y = dis_h; } img.style.top = dis_Y + 'px'; img.style.left = dis_X + 'px'; lastPoint.x = x, lastPoint.y = y; } } function onMouseUp(){ draging = false; lastPoint = undefined; } }

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧