关键是还可以拖动 查看演示

image.png

代码1(最简单的拖动原理):

<div id='box' style="position:absolute;width:100px;height:100px;background-color:'#ee735c'">
  <div>可拖动div元素</div>
</div>

<script>

var oDiv=document.getElementById('box')
  oDiv.onmousedown=function(ev){/*鼠标按下*/
    var disX=ev.clientX-oDiv.offsetLeft
    var disY=ev.clientY-oDiv.offsetTop
    document.onmousemove=function(ev){
      var l=ev.clientX-disX
      var t=ev.clientY-disY
 
      oDiv.style.left=l+'px'
      oDiv.style.top=t+'px'
    }
    document.onmouseup=function(){/*鼠标松开*/
      document.onmousemove=null;
      document.onmouseup=null
    }
  }

</script>


代码2(实现模拟window窗口,可拖动 可直接设置 窗口标题,宽高,位置 以及子元素的位置):

<meta charset="UTF-8">	

<div id='box' style="width:300px;height:200px;" title="窗口标题">
		<span style="left:30px;top:30px;">帐号:</span><input style="left:74px;top:30px;" type="text" name="">
		<span style="left:30px;top:60px;">密码:</span><input style="left:74px;top:60px;" type="text" name="">
	  <input style="left:175px;top:130px;"type="submit" value="登录">

</div>


<script>
var oDiv=document.getElementById('box')

/*根据网页宽度 和窗口大小 来调整左边和顶边,使其居中显示*/
var w = parseInt(document.documentElement.scrollWidth || document.body.scrollWidth);
var h = parseInt(document.documentElement.scrollHeight || document.body.scrollHeight);
oDiv.style.left=(w -parseInt(oDiv.style.width))/2+"px";
oDiv.style.top=(h -parseInt(oDiv.style.height))/2+"px";


/*div样式设置*/
oDiv.style.backgroundColor="#F0F0F0";
oDiv.style.position="absolute";
oDiv.style.borderColor="#AEC7E1";
oDiv.style.borderWidth="4px";
oDiv.style.borderTopWidth="30px";
oDiv.style.borderStyle="solid";


/*创建关闭按钮*/
span1 = document.createElement('span');
span1.innerHTML='X';
span1style="background-color:red;position:absolute;top:-27px;right:3px;color:#FFFFFF;";
span1style+="width:26px;border-radius:3px;text-align:center;line-height:26px;cursor:pointer;";
span1.style=span1style;
span1.onclick=function(){oDiv.style.display="none";}
oDiv.appendChild(span1);
/*获取div的title添加到窗口上面*/
title=document.createElement('span');
title.innerHTML=oDiv.title;
oDiv.title="";
title.style="color:Black;position:absolute;left:4px;top:-30px;line-height:30px;cursor:default;";
oDiv.appendChild(title);


/*子元素位置设置开始***********************************************************/
var childs = oDiv.children;
for(var i = childs.length - 1; i >= 0; i--){
childs[i].style.position="absolute";
console.log(childs[i]);
}
/*子元素位置设置结束***********************************************************/
/*拖动事件处理*/
  oDiv.onmousedown=function(ev){/*鼠标按下*/
    var disX=ev.clientX-oDiv.offsetLeft
    var disY=ev.clientY-oDiv.offsetTop;console.log(disY);
			if(disY>30){/*使其只拖动标题栏有效*/
				retuen;	
			}
    document.onmousemove=function(ev){
      var l=ev.clientX-disX
      var t=ev.clientY-disY
 
      oDiv.style.left=l+'px'
      oDiv.style.top=t+'px'
    }
    document.onmouseup=function(){/*鼠标松开*/
      document.onmousemove=null;
      document.onmouseup=null
    }
  }

</script>


相关推荐

c++mFC基于对话框 如何新建一个窗口

第一步:调出资源视图,添加一个dialog添加后,这个 ID是可以随意修改的(在属性里)第二步:在可视化编辑界面上面 点击右键.为这个对话框 添加类,名字一般以大写C开头类创建完毕后,会自动生成 类名

原生js代码实现 返回顶部代码

可以写成chrome插件 在所有网站插入js代码:/*返回顶部 和返回底部*/ window.onload=function(){ /*添加返回顶部按钮*/ var a=document.c

javascript原生js实现html中checkbox复选shift多选

纯原生JavaScript代码 无需任何库整理后 可以直接拿来用的代码<input type='checkbox' name='cateid[]'> &l

对话框与非对话框的区别

模态对话框: 必须关闭 才能操作后面的窗口非模态对话框: 多个窗口可以随意操作

WindowsAPi创建控件 或创建子窗口方法

创建按钮一般是在 WM_CREATE消息的响应中创建子窗口 创建控件 创建按钮,创建单选框,复选框 等等按钮的创建:创建按钮第一个参数(类名)必须是 button 不区分大小写case WM_CREA

highlight.js 代码高亮插件详细使用说明

第一步:下载首选下载 highlight.js 代码高亮插件下载地址:https://highlightjs.org/ 勾选你常用的语言,在使用插件时会自动检测你要展示的代码的语言,并自动让代码高亮。

原生javascript生成随机字母 js取随机字符

JavaScript取随机字母:方式有很多 我比较喜欢这一种 其中字符列表 和 要取的个数 改起来都比较方便<script> function 取随机字母(count){

原生js取随机数,指定范围内的随机数

例如取5000到8000之间的随机数:a=Math.round(Math.random()*(8000-5000)+5000);<script> //获取 0~1.0 之间的随机数:结

原生js,原生javascript写的开关按钮

<style> td,table{border:1px solid #323841;} </style> <form method="get"

csshtml文本闪烁的代码

<style> @keyframes blink { 0% {opacity: 0;} 50% {opacity: 1;} 100% {opacity: 0;} } .blinkin