導航:首頁 > 編程語言 > js添加拖拽流程圖

js添加拖拽流程圖

發布時間:2023-06-16 16:15:25

① 一個對頁面節點的拖踹用原生js該如何實現

很簡單 需要三個事件 onmousedown onmousemove onmouseup

並給需要拖動的節點增加一個屬性叫(這個屬性表示節點是不是正處於拖拽狀態)下面給出一份演示

onmousedown 控制節點擴展的屬性droping為true(表示可以移動節點了)

onmousemove 控制節點的位置(判斷是否可以移動如果是就移動)

ommouseup控制節點的擴展屬性為false(表示不能移動節點了)

<!DOCTYPEHTML>
<html>
<head>
<title>演示</title>

<styletype="text/css">
</style>
</head>
<body>
<divid="dropDiv">
我可以拖動
</div>
<scripttype="text/javascript">
functiondropDivFun(Element){
//設置節點的定位為fixed
Element.style.position="fixed";
//獲取事件對象函數方便獲取事件的clientX
functiongetEvent(){
if(event){
e=event;
}elseif(window.event){
e=window.event;
}else{
e=arguments.callee.arguments[0];
}
returne;
}
//添加mousedown事件
Element.addEventListener("mousedown",function(){
vare=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(){
vare=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給節點拖動

② js中如何拖動DIV中的圖片

代碼放出來看抄看

是不是冒襲泡和捕獲的問題
試試簡單的,看看點擊圖片時 div上的onclick事件有沒有被觸發

// 看起來是使用 jquery ,代碼貼完整些吧,
this.mousedown(function(){
中this是指向什麼對象都沒看出來

//加一個 return false
//另外 event.offsetX 並不兼容 firefox

$(document).mousemove(function(){
if(movestart){
$("#id1").css("left",event.clientX-x1+"px");
$("#id1").css("top",event.clientY-y1+"px");
return false;
}

})

③ JS基於面向對象實現的拖拽庫實例

本文實例講述了JS基於面向對象實現的拖拽庫。分享給大家供大家參考。具體如下:
這是一個面向對象的JS拖拽庫,可設置水平鎖定、垂直鎖定、鎖定位置、鎖定范圍等,設定這些范圍後,只能在設定的模式下拖動,我覺得這是個挺不錯的拖拽實例。
運行效果截圖如下:
在線演示地址如下:
http://demo.jb51.net/js/2015/js-mxdx-draw-plug-codes/
具體代碼如下:
<!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-Type"
content="text/html;
charset=utf-8"
/>
<title>拖拽庫</title>
<style
type="text/css">
div,h2,p{margin:0;padding:0;}
body{font:14px/1.5
arial;}
#box{width:100px;height:100px;background:#fef4eb;padding:5px;margin:50px;border:1px
solid
#f60;}
#box
.title{height:25px;background:#f60;}
#tool{margin-bottom:10px;}
</style>
<script
type="text/javascript">
function
Drag()
{
//初始化
this.initialize.apply(this,
arguments)
}
Drag.prototype
=
{
//初始化
initialize
:
function
(drag,
options)
{
this.drag
=
this.$(drag);
this._x
=
this._y
=
0;
this._moveDrag
=
this.bind(this,
this.moveDrag);
this._stopDrag
=
this.bind(this,
this.stopDrag);
this.setOptions(options);
this.handle
=
this.$(this.options.handle);
this.maxContainer
=
this.$(this.options.maxContainer);
this.maxTop
=
Math.max(this.maxContainer.clientHeight,
this.maxContainer.scrollHeight)
-
this.drag.offsetHeight;
this.maxLeft
=
Math.max(this.maxContainer.clientWidth,
this.maxContainer.scrollWidth)
-
this.drag.offsetWidth;
this.limit
=
this.options.limit;
this.lockX
=
this.options.lockX;
this.lockY
=
this.options.lockY;
this.lock
=
this.options.lock;
this.onStart
=
this.options.onStart;
this.onMove
=
this.options.onMove;
this.onStop
=
this.options.onStop;
this.handle.style.cursor
=
"move";
this.changeLayout();
this.addHandler(this.handle,
"mousedown",
this.bind(this,
this.startDrag))
},
changeLayout
:
function
()
{
this.drag.style.top
=
this.drag.offsetTop
+
"px";
this.drag.style.left
=
this.drag.offsetLeft
+
"px";
this.drag.style.position
=
"absolute";
this.drag.style.margin
=
"0"
},
startDrag
:
function
(event)
{
var
event
=
event
||
window.event;
this._x
=
event.clientX
-
this.drag.offsetLeft;
this._y
=
event.clientY
-
this.drag.offsetTop;
this.addHandler(document,
"mousemove",
this._moveDrag);
this.addHandler(document,
"mouseup",
this._stopDrag);
event.preventDefault
&&
event.preventDefault();
this.handle.setCapture
&&
this.handle.setCapture();
this.onStart()
},
moveDrag
:
function
(event)
{
var
event
=
event
||
window.event;
var
iTop
=
event.clientY
-
this._y;
var
iLeft
=
event.clientX
-
this._x;
if
(this.lock)
return;
this.limit
&&
(iTop
<
0
&&
(iTop
=
0),
iLeft
<
0
&&
(iLeft
=
0),
iTop
>
this.maxTop
&&
(iTop
=
this.maxTop),
iLeft
>
this.maxLeft
&&
(iLeft
=
this.maxLeft));
this.lockY
||
(this.drag.style.top
=
iTop
+
"px");
this.lockX
||
(this.drag.style.left
=
iLeft
+
"px");
event.preventDefault
&&
event.preventDefault();
this.onMove()
},
stopDrag
:
function
()
{
this.removeHandler(document,
"mousemove",
this._moveDrag);
this.removeHandler(document,
"mouseup",
this._stopDrag);
this.handle.releaseCapture
&&
this.handle.releaseCapture();
this.onStop()
},
//參數設置
setOptions
:
function
(options)
{
this.options
=
{
handle:
this.drag,
//事件對象
limit:
true,
//鎖定范圍
lock:
false,
//鎖定位置
lockX:
false,
//鎖定水平位置
lockY:
false,
//鎖定垂直位置
maxContainer:
document.documentElement
||
document.body,
//指定限制容器
onStart:
function
()
{},
//開始時回調函數
onMove:
function
()
{},
//拖拽時回調函數
onStop:
function
()
{}
//停止時回調函數
};
for
(var
p
in
options)
this.options[p]
=
options[p]
},
//獲取id
$
:
function
(id)
{
return
typeof
id
===
"string"
?
document.getElementById(id)
:
id
},
//添加綁定事件
addHandler
:
function
(oElement,
sEventType,
fnHandler)
{
return
oElement.addEventListener
?
oElement.addEventListener(sEventType,
fnHandler,
false)
:
oElement.attachEvent("on"
+
sEventType,
fnHandler)
},
//刪除綁定事件
removeHandler
:
function
(oElement,
sEventType,
fnHandler)
{
return
oElement.removeEventListener
?
oElement.removeEventListener(sEventType,
fnHandler,
false)
:
oElement.detachEvent("on"
+
sEventType,
fnHandler)
},
//綁定事件到對象
bind
:
function
(object,
fnHandler)
{
return
function
()
{
return
fnHandler.apply(object,
arguments)
}
}
};
//應用
window.onload
=
function
()
{
var
oBox
=
document.getElementById("box");
var
oTitle
=
oBox.getElementsByTagName("h2")[0];
var
oSpan
=
document.getElementsByTagName("span")[0];
var
oDrag
=
new
Drag(oBox,
{handle:oTitle,
limit:false});
var
aInput
=
document.getElementsByTagName("input");
//鎖定范圍介面
aInput[0].onclick
=
function
()
{
oDrag.limit
=
!oDrag.limit;
this.value
=
oDrag.limit
?
"取消鎖定范圍"
:
"鎖定范圍"
};
//水平鎖定介面
aInput[1].onclick
=
function
()
{
oDrag.lockX
=
!oDrag.lockX;
this.value
=
oDrag.lockX
?
"取消水平鎖定"
:
"水平鎖定"
};
//垂直鎖定介面
aInput[2].onclick
=
function
()
{
oDrag.lockY
=
!oDrag.lockY;
this.value
=
oDrag.lockY
?
"取消垂直鎖定"
:
"垂直鎖定"
};
//鎖定位置介面
aInput[3].onclick
=
function
()
{
oDrag.lock
=
!oDrag.lock;
this.value
=
oDrag.lock
?
"取消鎖定位置"
:
"鎖定位置"
};
//開始拖拽時方法
oDrag.onStart
=
function
()
{
oSpan.innerHTML
=
"開始拖拽"
};
//開始拖拽時方法
oDrag.onMove
=
function
()
{
oSpan.innerHTML
=
"left:"
+
this.drag.offsetLeft
+
",
top:"
+
this.drag.offsetTop
};
//開始拖拽時方法
oDrag.onStop
=
function
()
{
oSpan.innerHTML
=
"結束拖拽"
};
};
</script>
</head>
<body>
<div
id="tool">
<input
type="button"
value="鎖定范圍"
/>
<input
type="button"
value="水平鎖定"
/>
<input
type="button"
value="垂直鎖定"
/>
<input
type="button"
value="鎖定位置"
/>
</div>
<p>拖放狀態:<span>未開始</span></p>
<div
id="box">
<h2
class="title"></h2>
</div>
</body>
</html>
希望本文所述對大家的JavaScript程序設計有所幫助。

④ 用js怎麼實現點擊(或拖動)左邊圖片顯示到右邊來

提供一個思路,無代碼.
兩邊的容器放同樣的小圖片, 右邊的全部隱藏; 兩個容器設置回不一樣的答id, 同樣的圖片設置一樣的name.
在左邊的圖片上綁定onclick事件, 點擊後獲取圖片的name,再把右邊name與點擊圖片name相同的圖片顯示出來. 顯示之前判斷右邊容器是否超過了3個已顯示的圖片(用is(:visible),如果是,則返回false

⑤ html+js畫流程圖,想顯示如下流程圖,不做拖拽保存功能,僅僅顯示就可以。哪位能夠給點思路或者例子感謝

圓形可以用<div>或<span>,然後用CSS樣式中的border-radius,箭頭可以用圖片,差不多的箭頭旋轉後就可以達到效果

⑥ THREE.js如何實現在x,y,z軸上的拖拽

THREE.js實現在x,y,z軸上的拖拽需要用戶注冊拖拽控制項。

1、注冊的js代碼如下:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://raw.github.com/zz85/ThreeLabs/master/DragControls.js';
document.body.appendChild(script);
script.onload = function(){
var dragcontrols = new THREE.DragControls(camera, scene, renderer.domElement);
};

2、運行效果如下:

說明:以上每一個點都可以自由拖拽。

⑦ js實現圖片滾輪、按鈕縮放大小,圖片旋轉,圖片拖拽

<div class="upload-img-box" ref="moveWrap">
<div class="show-box" ref="rotate" @mousedown="moveImg" @mousewheel.prevent="rollImg($event,)">
<img :src="singleList.fileImgUrl" class="uploadimg" ref="img" :style="{transform:'scale('+multiples/100+') rotate('+rotate +'deg)'}"/>
</div>
<div class="img-plus" @click="渣陪toBIgChange()"><span class="tip">放大</span></div>
<div class="img-minus" @click="toSmallChange()"><span class="tip">轎擾縮小</span>閉梁旦</div>
<div class="img-rotate" @click="toRotate()"><span class="tip">旋轉</span></div>
</div>

⑧ 如何用JS實現文件拖拽事件

在HTML5的pc上面實現了相當多的功能,工作中也用到了拖拉上傳,特地記錄下該功能
在拖動目標上觸內發事容件 (源元素):
ondragstart - 用戶開始拖動元素時觸發
ondrag - 元素正在拖動時觸發
ondragend - 用戶完成元素拖動後觸發
釋放目標時觸發的事件:
ondragenter - 當被滑鼠拖動的對象進入其容器范圍內時觸發此事件
ondragover - 當某被拖動的對象在另一對象容器范圍內拖動時觸發此事件
ondragleave - 當被滑鼠拖動的對象離開其容器范圍內時觸發此事件
ondrop - 在一個拖動過程中,釋放滑鼠鍵時觸發此事件

⑨ 原生JS,實現圖片可拖拽,並且移動四個角和四條變能夠自由變換圖片大小

見證奇跡的時刻到了:

<!DOCTYPEhtml>
<html>
<head>
<metacharset="UTF-8">
<style>
*{
margin:0;
padding:0
}

.box{
position:absolute;
top:100px;
left:100px;
}

/*四邊*/
.box.t,
.box.b,
.box.l,
.box.r{
position:absolute;
z-index:1;
background:#666;
}

.box.l,
.box.r{
width:10px;
height:100%;
cursor:col-resize;
}

.box.t,
.box.b{
width:100%;
height:10px;
cursor:row-resize;
}

.box.t{
top:0;
}

.box.b{
bottom:0;
}

.box.l{
left:0;
}

.box.r{
right:0;
}

/*四角*/
.box.tl,
.box.bl,
.box.br,
.box.tr{
width:20px;
height:20px;
position:absolute;
background:#CCC;
z-index:2;
cursor:nwse-resize
}

.box.tl,
.box.bl{
left:-5px;
}

.box.tr,
.box.br{
right:-5px;
}

.box.br,
.box.bl{
bottom:-5px;
}

.box.tl,
.box.tr{
top:-5px;
}

.box.tr,
.box.bl{
cursor:nesw-resize;
}

/*圖片*/
img{
width:100%;
height:100%;
}
</style>
<script>

window.onload=function(){
varoDiv=document.getElementsByTagName('div')[0];
oDiv.style.width='500px';
varaSpan=oDiv.getElementsByTagName('span');
for(vari=0;i<aSpan.length;i++){
dragFn(aSpan[i]);
}

functiondragFn(obj){
obj.onmousedown=function(ev){
varoEv=ev||event;

varoldWidth=oDiv.offsetWidth;
varoldHeight=oDiv.offsetHeight;
varoldX=oEv.clientX;
varoldY=oEv.clientY;
varoldLeft=oDiv.offsetLeft;
varoldTop=oDiv.offsetTop;

document.onmousemove=function(ev){
varoEv=ev||event;

if(obj.className=='tl'){
oDiv.style.width=oldWidth-(oEv.clientX-oldX)+'px';
oDiv.style.height=oldHeight-(oEv.clientY-oldY)+'px';
oDiv.style.left=oldLeft+(oEv.clientX-oldX)+'px';
oDiv.style.top=oldTop+(oEv.clientY-oldY)+'px';
}
elseif(obj.className=='bl'){
oDiv.style.width=oldWidth-(oEv.clientX-oldX)+'px';
oDiv.style.height=oldHeight+(oEv.clientY-oldY)+'px';
oDiv.style.left=oldLeft+(oEv.clientX-oldX)+'px';
oDiv.style.bottom=oldTop+(oEv.clientY+oldY)+'px';
}
elseif(obj.className=='tr'){
oDiv.style.width=oldWidth+(oEv.clientX-oldX)+'px';
oDiv.style.height=oldHeight-(oEv.clientY-oldY)+'px';
oDiv.style.right=oldLeft-(oEv.clientX-oldX)+'px';
oDiv.style.top=oldTop+(oEv.clientY-oldY)+'px';
}
elseif(obj.className=='br'){
oDiv.style.width=oldWidth+(oEv.clientX-oldX)+'px';
oDiv.style.height=oldHeight+(oEv.clientY-oldY)+'px';
oDiv.style.right=oldLeft-(oEv.clientX-oldX)+'px';
oDiv.style.bottom=oldTop+(oEv.clientY+oldY)+'px';
}
elseif(obj.className=='t'){
oDiv.style.height=oldHeight-(oEv.clientY-oldY)+'px';
oDiv.style.top=oldTop+(oEv.clientY-oldY)+'px';
}
elseif(obj.className=='b'){
oDiv.style.height=oldHeight+(oEv.clientY-oldY)+'px';
oDiv.style.bottom=oldTop-(oEv.clientY+oldY)+'px';
}
elseif(obj.className=='l'){
oDiv.style.height=oldHeight+'px';
oDiv.style.width=oldWidth-(oEv.clientX-oldX)+'px';
oDiv.style.left=oldLeft+(oEv.clientX-oldX)+'px';
}
elseif(obj.className=='r'){
oDiv.style.height=oldHeight+'px';
oDiv.style.width=oldWidth+(oEv.clientX-oldX)+'px';
oDiv.style.right=oldLeft-(oEv.clientX-oldX)+'px';
}
};

document.onmouseup=function(){
document.onmousemove=null;
};
returnfalse;
};
}

};
</script>
</head>

<body>
<divclass="box">
<spanclass="r"></span>
<spanclass="l"></span>
<spanclass="t"></span>
<spanclass="b"></span>
<spanclass="br"></span>
<spanclass="bl"></span>
<spanclass="tr"></span>
<spanclass="tl"></span>
<imgsrc="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/730-350-0.jpg">
</div>
</body>
</html>
閱讀全文

與js添加拖拽流程圖相關的資料

熱點內容
美版a1453是什麼版本 瀏覽:517
電腦里的文件夾按照拼音歸類 瀏覽:996
文件管理器怎麼把視頻壓縮成文件 瀏覽:477
標准化文件名稱包括哪些 瀏覽:85
win10不能讀取dll文件 瀏覽:882
雲騎士重裝系統找不到usb字樣文件 瀏覽:42
皖事通app社保年限在哪裡看 瀏覽:65
為什麼快影顯示沒網路 瀏覽:356
華為如何讓手機升級提醒紅1消失 瀏覽:345
我愛九九商城app 瀏覽:587
劍靈蒼穹武器升級 瀏覽:248
微信錢包微粒貸 瀏覽:654
滾動字幕屏找不到文件 瀏覽:990
鄭州青少年學編程哪個機構比較好 瀏覽:866
ps文件打開不是彩色的 瀏覽:781
監控硬碟格式化工具 瀏覽:512
下載新版本微信6311 瀏覽:440
有哪些手游可以鍛煉編程能力 瀏覽:602
網路高清監控安裝方法 瀏覽:165
linuxtty切換 瀏覽:966

友情鏈接