原生js实现div拖拽+按下鼠标计时

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <style>
            body{
                height:1200px;
                background-color: azure;
            }
            #drag{
                background-color: cornflowerblue;
                border: 1px solid black;
                position: absolute;
                width: 200px;
                height: 100px;
            }
        </style>
    </head>
    <body>
        <div id="drag">

        </div>
        <script>
            //加入文字之后拖拽容易出现选中字后跳动bug
            var drag = document.getElementById("drag"),
                text = document.createTextNode("0"),
                flag ,
                time =0;
            drag.appendChild(text);
            drag.addEventListener("mousedown",dragDiv,false);
            function dragDiv(e){
                flag = true;
                if(flag){
                    var handler = setInterval(function(){
                        time+=0.02;
                        drag.innerHTML =time.toFixed(2);      

                        if(!flag){
                            clearInterval(handler);
                        }
                    },20)
                }

                var x=e.layerX||e.offsetX;
                var y=e.layerY||e.offsetY;
                document.addEventListener("mousemove",docMove,false);
                document.addEventListener("mouseup",function(){
                    flag = false;
                },false);
                function docMove(e){
                    if(flag){
                        e.preventDefault;
                         var l =parseInt(drag.style.left);
                         var t =parseInt(drag.style.top);
                         drag.style.left = -x+e.pageX+"px";
                         drag.style.top = -y+e.pageY +"px";

                    }
                }
            }
        </script>
    </body>
</html>
时间: 2024-10-02 03:52:36

原生js实现div拖拽+按下鼠标计时的相关文章

原生js实现div拖拽

十分简单的效果. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> body{ height:1200px; background-color: azure; } #drag{ background-color: cornflowerblue; border: 1px solid black; position: absolute; width: 100p

纯js实现DIV拖拽

写代码的时候遇到需要对绝对布局的div进行拖拽的功能,起初为了省事直接在网上扒拉了一番,看到大神张鑫旭的一篇文章<JavaScript实现最简单的拖拽效果>,便直接拿来使用(膜拜大神).但发现这段代码使用前必须设置top和left样式属性,否则拖动时div会有跳动,而且不支持多个div的拖动.于是对代码大概修改了一番,贴在这里,以备后用,希望大神勿怪. var startDrag = function(bar, target, callback) { (function(bar, target

原生JS实现图片拖拽移动与缩放

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" conte

Jquery实现div拖拽

Jquery实现div拖拽 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </title> <script type="text/javascript"

JS打造的拖拽翻页效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Html Div 拖拽

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><style type="text/css"&g

js实现可拖拽的div

实现一个div可以被拖拽,代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>zzw_drap</title> <style> * { margin: 0; padding: 0; } #box { position: absolute; top: 100px; left: 200

js可以随意拖拽的div的实现

最近花了点时间用纯JS写了一个扫雷程序,写出来效果很差,自己长时间使用面向过程的方式编写代码,写的程序到后面都乱了,有必要找时间好好的深入理解一下OOP了.有时间会把写的东西拿上来.就当是留个纪念吧.打算用OOP重新写个扫雷程序,希望令自己满意. ——————————————碎碎念 记录一个实现随意拖拽div的实现方法,当作备忘吧,指不定什么时候用到了呢. <!DOCTYPE html> <html lang="en"> <head> <met

js插件-简单拖拽

前端开发的时候,有好多地方用到拖拽效果,当然 http://jqueryui.com/draggable/  是个不错的选择,but 我是个打破砂锅问到底的人,抽点时间用js小小的实现了类似的插件,话不多说. first: html和css <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title&g