最近的项目要实现一个根据滑动距离,把一个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