问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一个对页面节点的拖踹用原生js该如何实现

发布网友 发布时间:2022-04-29 07:56

我来回答

6个回答

热心网友 时间:2022-04-22 13:31

很简单 需要三个事件 onmousedown onmousemove onmouseup

并给需要拖动的节点增加一个属性叫droping(这个属性表示节点是不是正处于拖拽状态)下面给出一份演示

onmousedown 控制节点扩展的属性droping为true(表示可以移动节点了)

onmousemove 控制节点的位置(判断是否可以移动如果是就移动)

ommouseup控制节点的扩展属性为false(表示不能移动节点了)

<!DOCTYPE HTML>
<html>
<head>
<title>演示</title>

<style type="text/css">
</style>
</head>
<body>
<div id="dropDiv">
  我可以拖动
</div>
<script type="text/javascript">
function dropDivFun(Element){
//设置节点的定位为fixed
Element.style.position="fixed";
//获取事件对象函数 方便获取事件的clientX
function getEvent(){
if(event){
e=event;
}else if(window.event){
e=window.event;
}else{
e=arguments.callee.arguments[0];
}
return e;
}
//添加mousedown事件
Element.addEventListener("mousedown",function(){
var e=getEvent();
if(!Element.droping){
//设置droping为true并记录初始的位置
Element.droping=true;
Element.start_x=e.clientX-Element.offsetLeft;
Element.start_y=e.clientY-Element.offsetTop;
}
});
Element.addEventListener("mousemove",function(){
var e=getEvent();
//移动节点
if(Element.droping){
Element.style.left=e.clientX-Element.start_x+"px";
Element.style.top=e.clientY-Element.start_y+"px";
}
});
Element.addEventListener("mouseup",function(){
if(Element.droping){
//设置droping为false并释放初始的变量
Element.droping=false;
Element.start_x=null;
Element.start_y=null;
}
});
}
//为节点添加drop事件
dropDivFun(document.getElementById("dropDiv"));
</script>
</body>
</html>

该演示演示了使用原生js给节点拖动

热心网友 时间:2022-04-22 14:49

绑定点击事件,onmousedown/ontouchstart的时候记录鼠标点击的位置pageX、pageY,然后绑定移动事件onmousemove/ontouchmove,获得此时的pageX、pageY,然后与初始位置相减,得到差值a,b,更改元素的transformX(a),transformY(b),到此时就实现了移动,onmouseup/ontouchend之后获得最终的位置,再进一步操作就行了

热心网友 时间:2022-04-22 16:24

mousedown+mousemove 然后根据clientX和clientY判断鼠标位置以确定拖拽距离

热心网友 时间:2022-04-22 18:15

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
<title>event事件</title>
<style type="text/css">
        #box{width: 100px;height: 100px; background-color: red;position: absolute;}

</style>
</head>
<body>
     <div id="box"></div>
     <script type="text/javascript">
     
     var box=document.getElementById('box');
     var ww=document.documentElement.clientWidth;
        var ww1=document.documentElement.clientHeight;
        box.onmousedown=function (ev) {
        var ev=ev||window.event;
        var a=ev.clientX-box.offsetLeft;
        var b=ev.clientY-box.offsetTop;
        
            document.onmousemove=function (ev) {
         var ev=ev||window.event;
         var c=ev.clientX-a;
         var d=ev.clientY-b;
              
              if(c<=0){
                  c=0;
              }
              //if (a>=ww-box.clientWidth) {
              //   c=ww-box.clientWidth;
              // }
                 if (d<=0) {
               d=0;
              }
              // if (b>=ww1-box.clientHeight) {
              //   d=ww1-box.clientHeight;
              // }
        box.style.left=c+'px';
        box.style.top=d+'px';
        }
        }
        box.onmouseup=function () {
           document.onmousemove=null;
        }
              
     </script>
</body>
</html>

热心网友 时间:2022-04-22 20:23

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<div id="div1" style='width:336px;height:69px;border: 1px solid gray;' ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<div id="drag1" style='width:300px;height:50px;border: 1px solid gray;' draggable="true" ondragstart="drag(event)"> </div>
</body>
</html>

 参照http://www.w3school.com.cn/html5/html_5_draganddrop.asp

热心网友 时间:2022-04-22 22:48

document.querySelector("#container:first-child")
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 开一个苹果专卖店都要什么条件吗 JS控制窗口移动 js拖拽问题 比如一个页面有一个frame框架,分左右两边,然后左边有一些东 ... 苹果产品直销店怎么开,需要什么手续,有什么要求 用html,js设置背景图片 为门帘 不管滚动条怎么拖动 都还是固定不变的... 如何获取mac彩妆专柜的经营权? html,css,js这些代码有没有那种软件,自行拖拽模块组成想要得样式,想 ... 请高手解析 用js代码写出一个页面加载后能不断变换背景的效果? 第四个字是世成语有哪些 JS、JQ 实现拖动事件,拖到最右位置时,改变背景色!!! 【合集】在线国产播放不卡视频,【在线观看】免费百度云资源 年大计是一个四个字的成语求它的前一个字 如何用js自定义页面背景 【合集】国产视频高清不卡,【免费高清】在线观看百度网盘资源 盘点国产视频高清在线不卡,【在线观看】免费百度云资源 年年尚什么四个字的成语? 这四个字是成语,如“年年有余”? 最后一个字是年的成语 什么之年,四个字,成语 我想找粘年年有余四个字的成语里面还有什么年 想开个苹果专卖店 达到什么条件 和要求? 如何成为苹果电脑授权专卖店? JS高手请进,如何实现网页弹出框后背景灰掉不能滑动的效果?不胜感激... 怎么开苹果专卖店? MAC彩妆可以代理或加盟吗?想在商场开个专柜需要什么条件? 如何编写一个js,适用于所有浏览器可用鼠标在页面移动的DIV层? 开一个苹果专卖店需要投入多少钱?加盟费什么的都算进去50万够了么?有开过或者懂的说下! 如何开苹果专卖店 请问,怎么开个魅可的专柜? 高分!想开个apple苹果专卖店,江苏县级市的,请问有啥路子? 怎样开苹果专卖店呢 开个苹果专卖店要怎么获得苹果公司的授权? 如果想开个苹果专卖店,进货渠道谁能给点建议吗? 我想开家苹果apple 专卖店,怎么找货源,怎么才能成为一家代理经销商! 想开一个苹果专卖店,需要多少资金?货源一般从哪里进。 我想代理MAC化妆品,但看了好多人说MAC在*只是自己设专柜。谁能提供下中国总代理的总部地址? 网课教学与线下教学的不同点有哪些? 《你走你的路》歌词 如果我的出现只是增加你的痛苦是那首歌曲的歌词 你走你的路 歌词