拖拽带框

带框拖拽在可视区控制大小:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>shmily</title>
<!--
* @Author: shmily
* @Date: 2016-12-05 11:38:54
* @Last Modified by: shmily
* @Last Modified time: 2016-12-05 11:38:54
-->
<style>
*{margin:0; padding:0;}
#box{width:200px; height:200px;background:#f90; position:absolute; top:0; left:0;}
</style>
<script>
function drag(sId){
var oBox = document.getElementById(sId);
var disX = 0;
var disY = 0;
oBox.onmousedown = function(ev)
{
var oEvent = ev||event;
var odiv = document.createElement(‘div‘);
odiv.style.width = ‘180px‘;
odiv.style.height = ‘180px‘;
odiv.style.border = ‘10px dashed #000‘;
odiv.style.left = oBox.offsetLeft +‘px‘;
odiv.style.top = oBox.offsetTop +‘px‘;
odiv.style.position = ‘absolute‘;
document.body.appendChild(odiv);
disX = oEvent.clientX -oBox.offsetLeft;
disY = oEvent.clientY - oBox.offsetTop;
document.onmousemove = function(ev)
{
var oEvent = ev||event;
var l = oEvent.clientX -disX;
var t = oEvent.clientY -disY;
if(l < 0)
{
l = 0;
}
else if(l > document.documentElement.clientWidth - odiv.offsetWidth)
{
l = document.documentElement.clientWidth - odiv.offsetWidth
}
if(t < 0)
{
t = 0;
}
else if(t > document.documentElement.clientHeight - odiv.offsetHeight)
{
t = document.documentElement.clientHeight - odiv.offsetHeight
}
odiv.style.left = l +‘px‘;
odiv.style.top = t +‘px‘;
}
document.onmouseup = function()
{
oBox.style.left = odiv.offsetLeft +‘px‘;
oBox.style.top = odiv.offsetTop +‘px‘;
document.body.removeChild(odiv);
document.onmousemove = null;
document.onmouseup = null;
oBox.releaseCapture&&oBox.releaseCapture();
}
oBox.setCapture&&oBox.setCapture();
return false;
}
}
window.onload = function()
{
drag(‘box‘);
}
</script>
</head>

<body>

<div id="box"></div>
</body>
</html>

///////////////////////////////////////////////////////////////////////////////////////////

没有设置拖动的可视区:

<!-- 
* @Author: shmily
* @Date: 2016-12-05 11:38:54
* @Last Modified by: shmily
* @Last Modified time: 2016-12-05 11:38:54
-->

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
*{margin:0; padding:0;}
#box{width:200px; height:200px; background:red; position:absolute; top:0; left:0;}
</style>
<script>
window.onload=function(){
var oBox = document.getElementById(‘box‘);
oBox.onmousedown=function(ev){
var oEvent =ev||event;
var disX = oEvent.clientX-oBox.offsetLeft;
var disY = oEvent.clientY-oBox.offsetTop;
var oNewDiv = document.createElement(‘div‘);
oNewDiv.style.width=oBox.offsetWidth-10+‘px‘;
oNewDiv.style.height = oBox.offsetHeight-10+‘px‘;

oNewDiv.style.position=‘absolute‘;
oNewDiv.style.left = oBox.offsetLeft+‘px‘;
oNewDiv.style.top = oBox.offsetTop+‘px‘;
oNewDiv.style.border=‘5px dashed #000‘;
document.body.appendChild(oNewDiv);
document.onmousemove=function(ev){
var oEvent = ev||event;
oNewDiv.style.left = oEvent.clientX-disX+‘px‘;
oNewDiv.style.top = oEvent.clientY-disY+‘px‘;
};
document.onmouseup=function(){
document.onmousemove=null;
document.onmouseup=null;

oBox.style.left = oNewDiv.offsetLeft+‘px‘;
oBox.style.top = oNewDiv.offsetTop+‘px‘;
document.body.removeChild(oNewDiv);
oBox.releaseCapture&&oBox.releaseCapture();
};
oBox.setCapture&&oBox.setCapture();
return false;
};
};
</script>
</head>

<body>
<div id="box"></div>
</body>
</html>

时间: 2024-11-03 05:38:46

拖拽带框的相关文章

拖拽——带框

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; min-height: 36.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #d74200 } p.p4 {

拖拽--拖拽过程出现虚框效果

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>拖拽--带框拖拽</title> 6 <style> 7 #div1{ 8 width: 100px; 9 height: 100px; 10 background: red; 11 position: absolute; 12 } 13 #div1:hover{

JS—实现拖拽

JS中的拖拽示例:    1)实现拖拽思路:当鼠标按下和拖拽过程中,鼠标与拖拽物体之间的相对距离保持不变    2)实现拖拽遇到的问题:        问题1:当鼠标按下移动过快时,离开了拖拽的物体时,这时拖拽物体将不再随着鼠标移动                因为拖拽的div太小了,这时我们可以将在拖拽物体上的mousemove事件放到document上面                同时将mouseup也改为document上面的事件                IE下直接用obj.s

拖拽原理以及代码实现

拖拽功能主要是用在让用户做一些自定义的动作,比如拖动排序,弹出框拖动移动等等:挺好玩儿.下面分享一下拖拽的原理,和码友们一起学习! 拖拽流程: 1)事件:onmousedown:onmousemove:onmouseup: 2)实现原理分析: 拖拽是通过获取鼠标移动的距离来实现的,即计算移动前的位置的坐标(x,y)与移动中的位置的坐标(x,y)差值.当onmousedown或onmousemove时,都可以获取到当前鼠标的位置,即移动前的坐标值与移动中的坐标值.参考如下图: 如上图所示: 在on

Qt之QAbstractItemView视图项拖拽(二)

一.需求说明 上一篇文章Qt之QAbstractItemView视图项拖拽(一)讲述了实现QAbstractItemView视图项拖拽的一种方式,是基于QDrag实现的,这个类是qt自己封装好了的,所以可定制性也就没有了那么强,最明显的是,这个类在执行exec方法后,mouse系列的回调接口就被阻塞了,随之而来的问题就是拖拽时item项没有了hover特性,为了解决这个问题,我们就不能使用QDrag类来实现拖拽了,这也是这篇文章我要讲述的内容. 二.效果展示 如图1是demo的效果展示,比较丑,

JAVA UI 拖拽功能

java GUI拖拽功能是很实用也相对高级一些的功能. 有一小部分的GUI控件支持他们有dragEnabled属性.这些JComponent包括:javax.swing.JColorChooserjavax.swing.JFileChooserjavax.swing.JListjavax.swing.JTablejavax.swing.JTreejavax.swing.text.JTextComponent 大部分的控件不支持没有这个属性,尤其是常用的jpanel和jframe. 一种简单的方法

自定义视图之————安卓图库缩放拖拽的完整实现

加了大部分注释,看注释应该可以明白基本的思路.欢迎大神留言拍砖,此文适合小白观看. package com.example.imagedeal; import android.content.Context; import android.graphics.Matrix; import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.util.AttributeSet; impor

Atitit。D&amp;D drag&amp;drop拖拽功能c#.net java swing的对比与实现总结

Atitit.D&D drag&drop拖拽功能c#.net java swing的对比与实现总结 1. 实现一个D&D操作一般包括三个步骤: 1 2. .net黑头的拖曳机制.必须有DragEnter事件(单独写DragDrop事件是不会具有拖拽功能的) 2 3. ---java黑头的拖曳..必须有DragEnter事件(单独写 Drop事件是不会具有拖拽功能的) 2 4. 代码 3 5. 参考 5 1. 实现一个D&D操作一般包括三个步骤: 首先实现一个拖拽源,这个拖拽

每天一个JavaScript实例-html5拖拽

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-html5拖拽</title> <style> #drop{ width:300px; height:200px; background-