JavaScript实现AJAX的拖动效果-例子1

简介:
代码:
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
< html >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" >
< title > drag layer </ title >
< style >
body,table
{color:#000000;
    font-size
:12px;
}

div.div_one
{}
.dragBar
{color:#FFFFFF;
    font-weight
:bold}

</ style >
< script  language ="javascript"  defer >
/*written by joelee@51js
*/

    
var tmpElement=null;
    
var dragElement=null;
    
var downX,downY,tmp_o_x,tmp_o_y;
    
var refElement=null;
    
var dragActive=0;
    
var draging=0;
function readyDrag(){
    dragActive
=1;
    
if(event.srcElement.tagName!="DIV")
        
return;
    dragElement
=event.srcElement.parentNode;
    tmpElement
=dragElement.cloneNode(true);
    tmpElement.style.filter
="alpha(opacity=90)";
    tmpElement.style.zIndex
=2;
    dragElement.style.zIndex
=1;
    tmpElement.style.position
="absolute";
    
if(dragElement.parentNode.tagName!="BODY"){
        dragElement.style.left
=dragElement.offsetLeft+dragElement.parentNode.style.pixelLeft;
        dragElement.style.top
=dragElement.offsetTop+dragElement.parentNode.style.pixelTop;
    }

    downX
=event.clientX;
    downY
=event.clientY;
    tmp_o_x
=dragElement.style.pixelLeft;
    tmp_o_y
=dragElement.style.pixelTop;
    tmpElement.style.visibility
="hidden";
    document.body.appendChild(tmpElement);
    document.onmousemove
=startDrag;
    }

    document.onmouseup
=endDrag;
function startDrag(){
    
if(dragActive==1&&event.button==1&&dragElement!=null&&tmpElement!=null){
        tmpElement.style.visibility
="visible";
        tmpElement.style.left
=tmp_o_x+event.clientX-downX;
        tmpElement.style.top
=tmp_o_y+event.clientY-downY;
        dragElement.style.backgroundColor
="#CCCCCC";
        document.body.style.cursor
="move";
        draging
=1;
    }

}

function endDrag(){
    
if(dragActive==1&&tmpElement!=null){
        
if(draging==1){
            dragElement.removeNode(
true);
            draging
=0;
        }

        tmpElement.style.filter
="alpha(opacity=100)";
        tmpElement.style.zIndex
=1;
        document.body.style.cursor
="default";
        
if(refElement!=null&&refElement.parentNode!=null&&refElement.parentNode.tagName!="BODY"){
            tmpElement.style.width
=refElement.parentNode.style.width;
            tmpElement.style.position
="";
            refElement.parentNode.insertBefore(tmpElement,refElement);
        }

    }

    dragElement
=null;
    tmpElement
=null;
    dragActive
=0;
}

function readyInsert(){
    
if(dragActive==1){
        
var element=event.srcElement;
        
if(element==dragElement)return;
        
if(element.tagName!="DIV")
            
return;
        
if(element.className=="dragBar"||element.className=="textSheet"||element.className=="blankBar")
            element
=element.parentNode;
        element.style.backgroundColor
="#CCCCCC";
        element.style.filter
="alpha(opacity=50)";
        refElement
=element;
    }

}

function failInsert(){
    
var element=event.srcElement;
    
if(element.tagName!="DIV")
        
return;
    
try{
        
if(element.className=="dragBar"||element.className=="textSheet"||element.className=="blankBar")
            element
=element.parentNode;
    }
catch(e){}
    element.style.filter
="alpha(opacity=100)";
    element.style.backgroundColor
="#FFFFFF";
    refElement
=null;
}

document.onselectstart
=function(){return false}
</ script >
</ head >

< body >
< div  id ="div_one"  class ="div_one"  style ="position:absolute; left:116px; top:137px; width:433px; z-index:1; background-color: #FFFFFF; layer-background-color: #FFFFFF;"  onMouseOver ="readyInsert()"  onMouseOut ="failInsert()" >
  
< div  onMouseDown ="readyDrag()"  style ="cursor:move; border:1px solid #996666; background-color:#996666; height:20px"  name ="dragDIV"  class ="dragBar" >< img  src ="snap_icon.gif"  width ="16"  height ="16" > Window </ div >
< div  class ="textSheet"  style ="border:1px solid #996666;" > Content < br >
  Content
< br >
  Content
< br >
  Content  
< br >
</ div >
< div  class ="blankBar"  style ="height:10px" ></ div ></ div >
< div  id ="grid1"  style ="position:absolute; left:534px; top:37px; width:336px; height:15px; z-index: 100; visibility: visible;" >
  
< div  style ="height:20px;z-index:2;"  onMouseOver ="readyInsert()"  onMouseOut ="failInsert();" > 把层拖动到这儿 </ div >
</ div >
< div  id ="grid2"  style ="position:absolute; left:20px; top:40px; width:494px; height:15px; z-index: 100; visibility: visible;" >
  
< div  style ="height:20px;z-index:2; background-image:url()"  onMouseOver ="readyInsert()"  onMouseOut ="failInsert();" > 把层拖动到这儿 </ div >
</ div >
< div  id ="div_one"  class ="div_one"  style ="position:absolute; left:204px; top:277px; width:433px; z-index:1; background-color: #FFFFFF; layer-background-color: #FFFFFF;"  onMouseOver ="readyInsert()"  onMouseOut ="failInsert()" >
  
< div  onMouseDown ="readyDrag()"  style ="cursor:move; border:1px solid #996666; background-color:#996666; height:20px"  name ="dragDIV"  class ="dragBar" >< img  src ="snap_icon.gif"  width ="16"  height ="16" > BBS </ div >
  
< div  class ="textSheet"  style ="border:1px solid #996666;" > Content </ div >
  
< div  class ="blankBar"  style ="height:10px" ></ div >
</ div >
< div  id ="div_one"  class ="div_one"  style ="position:absolute; left:561px; top:195px; width:433px; z-index:1; background-color: #FFFFFF; layer-background-color: #FFFFFF;"  onMouseOver ="readyInsert()"  onMouseOut ="failInsert()" >
  
< div  onMouseDown ="readyDrag()"  style ="cursor:move; border:1px solid #996666; background-color:#996666; height:20px"  name ="dragDIV"  class ="dragBar" >< img  src ="snap_icon.gif"  width ="16"  height ="16" > Log </ div >
  
< div  class ="textSheet"  style ="border:1px solid #996666;" > Content < br >
    Content
< br >
    Content    
< br >
  Content
< br >
</ div >
  
< div  class ="blankBar"  style ="height:10px" ></ div >
</ div >
< div  id ="div_one"  class ="div_one"  style ="position:absolute; left:438px; top:74px; width:433px; z-index:1; background-color: #FFFFFF; layer-background-color: #FFFFFF;"  onMouseOver ="readyInsert()"  onMouseOut ="failInsert()" >
  
< div  onMouseDown ="readyDrag()"  style ="cursor:move; border:1px solid #996666; background-color:#996666; height:20px"  name ="dragDIV"  class ="dragBar" >< img  src ="snap_icon.gif"  width ="16"  height ="16" > Worker </ div >
  
< div  class ="textSheet"  style ="border:1px solid #996666;" > Content </ div >
  
< div  class ="blankBar"  style ="height:10px" ></ div >
</ div >
< div  id ="div_one"  class ="div_one"  style ="position:absolute; left:206px; top:406px; width:433px; z-index:1; background-color: #FFFFFF; layer-background-color: #FFFFFF;"  onMouseOver ="readyInsert()"  onMouseOut ="failInsert()" >
  
< div  onMouseDown ="readyDrag()"  style ="cursor:move; border:1px solid #996666; background-color:#996666; height:20px"  name ="dragDIV"  class ="dragBar" >< img  src ="snap_icon.gif"  width ="16"  height ="16" > Tools </ div >
  
< div  class ="textSheet"  style ="border:1px solid #996666;" > Content </ div >
  
< div  class ="blankBar"  style ="height:10px" ></ div >
</ div >
</ body >
</ html >
本文转自博客园执着的笨蛋的博客,原文链接:JavaScript实现AJAX的拖动效果-例子1 ,如需转载请自行联系原博主。
目录
相关文章
|
2月前
|
移动开发 前端开发 JavaScript
js之ajax |12-6
js之ajax |12-6
|
2月前
|
JavaScript 前端开发
JS配合CSS3实现动画和拖动小星星小Demo
本文通过代码示例展示了如何使用JavaScript和CSS3实现动画效果和拖动小星星的交互效果,包括文字掉落动画和鼠标拖动产生小星星动画的实现方法。
37 0
JS配合CSS3实现动画和拖动小星星小Demo
|
4月前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第3天】前端开发中的异步基石:AJAX与Fetch。AJAX,使用XMLHttpRequest,处理跨域、回调地狱和错误处理。Fetch,基于Promise,简化请求,但需注意默认无跨域头和HTTP错误处理。两者各有优劣,理解其问题与解决策略,能提升前端应用的性能和用户体验。
127 24
|
3月前
|
JavaScript 前端开发 网络协议
|
3月前
|
JavaScript 前端开发 安全
js之AJAX
js之AJAX
28 0
|
5月前
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
|
4月前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第9天】JavaScript进阶:AJAX与Fetch API对比。AJAX用于异步数据交换,XMLHttpRequest API复杂,依赖回调。Fetch API是现代、基于Promise的解决方案,简化请求处理。示例:`fetch(&#39;url&#39;).then(r =&gt; r.json()).then(data =&gt; console.log(data)).catch(err =&gt; console.error(err))`。注意点包括检查HTTP状态、错误处理、CORS、Cookie和超时。Fetch提高了异步代码的可读性,但需留意潜在问题。
91 0
|
4月前
|
前端开发 JavaScript API
js【详解】ajax (含XMLHttpRequest、 同源策略、跨域、JSONP)
js【详解】ajax (含XMLHttpRequest、 同源策略、跨域、JSONP)
48 0
|
5月前
|
XML 移动开发 前端开发
JS设置Ajax为同步或异步
JS设置Ajax为同步或异步
50 0
|
5月前
|
XML JSON 前端开发
第十一篇JavaScript JSON与AJAX
第十一篇JavaScript JSON与AJAX
31 0