最近的项目要实现一个根据滑动距离,把一个div从屏幕底部升上来的效果,但问题是代码我不怎么会写,所以就请教了万能的百度。在参考了很多方案之后,终于找到了一个合适的,并且自己改造了一番成功实现了效果,改造之后的代码自然是不好分享的,但是原本的参考代码,我觉得有必要记录一下。
代码已经修改了一点儿。
html代码如下:
<div id=”concent” style=”width:100px;height:100px;background:#3eb060;position:absolute;”></div>
js代码如下:
<script>
var flag = false;//鼠标|手指是否按下的标记
var cur = {//记录鼠标|手指按下时的坐标
x:0,
y:0
}
var nx,ny,dx,dy,x,y ;
//按下时的函数
function down(){
flag = true;//确认鼠标|手指按下
var touch ;
if(event.touches){
touch = event.touches[0];//多个鼠标|手指事件取第一个
}else {
touch = event;
}
cur.x = touch.clientX; //记录鼠标|手指当前的x坐标
cur.y = touch.clientY;//记录鼠标|手指当前的y坐标
dx = div2.offsetLeft;//记录div当时的左偏移量
dy = div2.offsetTop;//记录div的上偏移量
}
function move(){
if(flag){//如果是鼠标|手指按下则继续执行
var touch ;
if(event.touches){
touch = event.touches[0];
}else {
touch = event;
}
nx = touch.clientX – cur.x;//记录在鼠标|手指x轴移动的数据
ny = touch.clientY – cur.y;//记录在鼠标|手指y轴移动的数据
x = dx+nx; //div在x轴的偏移量加上鼠标|手指在x轴移动的距离
y = dy+ny; //div在y轴的偏移量加上鼠标|手指在y轴移动的距离
div2.style.left = x+”px”;
div2.style.top = y +”px”;
//阻止页面的滑动默认事件
document.addEventListener(“touchmove”,function(){
event.preventDefault();
},false);
}
}
//鼠标|手指释放时候的函数
function end(){
flag = false; //鼠标|手指释放
}
var div2 = document.getElementById(“div2”);
div2.addEventListener(“mousedown”,function(){
down();
},false);
div2.addEventListener(“touchstart”,function(){
down();
},false)
div2.addEventListener(“mousemove”,function(){
move();
},false);
div2.addEventListener(“touchmove”,function(){
move();
},false)
document.body.addEventListener(“mouseup”,function(){
end();
},false);
div2.addEventListener(“touchend”,function(){
end();
},false);
实际效果演示:
可以自行拖动绿色方块。查看实际的效果,讲真这东西的实际应用特别广泛。
1.《js块元素手指触摸及鼠标拖拽放置,实现方案》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《js块元素手指触摸及鼠标拖拽放置,实现方案》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/code/25776.html