`
HeroXuan
  • 浏览: 79636 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

js实现可拖动的标签(imge,div等)

阅读更多

先下载附件,运行看效果

 

<SCRIPT LANGUAGE="JavaScript">
//Modified by the CoffeeCup HTML Editor++
//http://www.coffeecup.com
// Global variables for platform branching
var isNav, isIE
if (parseInt(navigator.appVersion) >= 4) {
    if (navigator.appName == "Netscape") {
        isNav = true
    } else {
        isIE = true
    }
}

// ***Begin CSS custom API Functions***
// Set zIndex property
function setZIndex(obj, zOrder) {
    obj.zIndex = zOrder
}
// Position an object at a specific pixel coordinate
function shiftTo(obj, x, y) {
    if (isNav) {
        obj.moveTo(x,y)
    } else {
        obj.pixelLeft = x
        obj.pixelTop = y
    }
}
// ***End API Functions***

// Global holds reference to selected element
var selectedObj
// Globals hold location of click relative to element
var offsetX, offsetY

// Find out which element has been clicked on
function setSelectedElem(evt) {
    if (isNav) {
        // declare local var for use in upcoming loop
        var testObj
        // make copies of event coords for use in upcoming loop
        var clickX = evt.pageX
        var clickY = evt.pageY
        // loop through all layers (starting with frontmost layer)
        // to find if the event coordinates are in the layer
        for (var i = document.layers.length - 1; i >= 0; i--) {
            testObj = document.layers[i]
            if ((clickX > testObj.left)  && 
                (clickX < testObj.left + testObj.clip.width)  && 
                (clickY > testObj.top)  && 
                (clickY < testObj.top + testObj.clip.height)) {
                    // if so, then set the global to the layer, bring it
                    // forward, and get outa here
                    selectedObj = testObj
                    setZIndex(selectedObj, 100)
                    return
            }
        }
    } else {
        // use IE event model to get the targeted element
        var imgObj = window.event.srcElement
        // make sure it's one of our planes
        if (imgObj.parentElement.id.indexOf("plane") != -1) {
            // then set the global to the style property of the element,
            // bring it forward, and say adios
            selectedObj = imgObj.parentElement.style
            setZIndex(selectedObj,100)
            return
        }
    }
    // the user probably clicked on the background
    selectedObj = null
    return
}
// Drag an element
function dragIt(evt) {
    // operate only if a plane is selected
    if (selectedObj) {
        if (isNav) {
            shiftTo(selectedObj, (evt.pageX - offsetX), (evt.pageY - offsetY))
        } else {
            shiftTo(selectedObj, (window.event.clientX - offsetX), (window.event.clientY - offsetY))
   document.getElementById("zuobiao").innerHTML =
   (window.event.clientX -offsetX)+","+(window.event.clientY - offsetY)

   document.getElementById("zuobiao3").innerHTML =
   window.event.clientX +","+window.event.clientY;

            // prevent further system response to dragging in IE
            return false
        }
    }
}
// Set globals to connect with selected element
function engage(evt) {
    setSelectedElem(evt)
    if (selectedObj) {
        // set globals that remember where the click is in relation to the
        // top left corner of the element so we can keep the element-to-cursor
        // relationship constant throughout the drag
        if (isNav) {
            offsetX = evt.pageX - selectedObj.left
            offsetY = evt.pageY - selectedObj.top
        } else {
            offsetX = window.event.offsetX
            offsetY = window.event.offsetY
        }
  document.getElementById("zuobiao2").innerHTML = offsetX+","+offsetY
    }
    // block mouseDown event from forcing Mac to display
    // contextual menu.
    return false
}
// Restore elements and globals to initial values
function release(evt) {
    if (selectedObj) {
        setZIndex(selectedObj, 0)
        selectedObj = null
    }
}
// Turn on event capture for Navigator
function setNavEventCapture() {
    if (isNav) {
        document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)
    }
}
// Assign event handlers used by both Navigator and IE (called by onLoad)
function init() {
    if (isNav) {
        setNavEventCapture()
    }
    // assign functions to each of the events (works for both Navigator and IE)
    document.onmousedown = engage
    document.onmousemove = dragIt
    document.onmouseup = release
}
</SCRIPT>
<body bgcolor="#fef4d9" onLoad="init()">
<DIV ID=plane1><img src="1213b06322401Z15.gif" BORDER=0  style="CURSOR: pointer" ></DIV>
<DIV ID=plane2><div>我是div</div></DIV>
<div id="zuobiao"></div>
<div id="zuobiao2"></div>
<div id="zuobiao3"></div>

分享到:
评论
1 楼 jackleaf 2010-01-25  
哥们注释的时候用中文,咱英语不行。但是还是感谢这位小同志的分享。

相关推荐

    Imge1432.zip

    【光纤图片合集】是一个压缩包文件,名为"Imge1432.zip",它包含了一系列关于光纤通信的图片资源。光纤作为一种重要的信息传输媒介,在现代通信技术中扮演着核心角色,尤其在长距离、高速率的数据传输方面。本压缩包...

    mutlimodal-imge-registration-master_图像配准_图像配准评价_mutlimodal-imge_

    项目“mutlimodal-imge-registration-master”可能包含实现上述概念的代码和示例,帮助用户理解和改进多模态图像配准算法。通过研究这个项目,我们可以学习如何设计和评估自己的配准算法,这对于科研和临床应用都...

    imge_dispose.rar_c++ 图片 雾化_im_imge_dispose.rar_opencv滤镜_滤镜

    在本项目中,我们主要探讨如何使用C++和OpenCV库对图像进行滤镜处理,特别是聚焦于浮雕效果和雾化效果的实现。OpenCV(开源计算机视觉库)是一个强大的工具,它提供了丰富的功能来处理图像和视频,包括各种图像...

    sift-imge-registration-master_sift图像配准代码_sift_sift拼接_图像拼接_

    本文将围绕“sift-imge-registration-master”项目,深入探讨SIFT(尺度不变特征变换)图像配准和拼接的原理、实现方法以及实际应用。 一、SIFT图像配准 SIFT(Scale-Invariant Feature Transform)是一种强大的...

    class_Imge

    这个类或模块通过封装上述图像处理技术,实现对交通标志图像的自动识别和处理。 基于Qt框架构建的用户界面,为操作者提供了一个直观、便捷的操作平台。用户可以通过界面上传需要处理的交通标志图像,然后系统自动...

    universal_imge图片下载——新手实例

    内涵两个文件夹,一个myeclip服务器,一个安卓eclips,相信大家平时做Android应用的时候,开源图片加载框架应运而生,比较著名的就是Universal-Image-Loader,相信很多朋友都听过或者使用过这个强大的图片加载框架,...

    基于javascript数组实现图片轮播

    基于JavaScript数组实现图片轮播是一种常见的前端开发技术,适用于动态地在网页上展示一系列的图片。这种技术实现的方式简单、直观,通过JavaScript控制数组元素的索引变化,结合定时器函数setInterval来周期性地...

    imge-iyilestirmesunu.rar_processing

    image processing with source code

    imge inpainting and denoising by nonlinear partial differential equations

    图像处理技术在现代社会扮演着极其重要的角色,尤其是在图像编码、无线图像传输、特效制作以及图像修复等领域。图像修复通常涉及填补丢失的信息(如图像中的空白区域或损坏部分)和去除噪声两大核心任务。本文介绍了...

    用JAVA EE+websocket实现谁是卧底游戏(实现了聊天室、登录和注册页面,大厅数据的渲染)

    #声明:project只有前端的页面和接口,后台测试...2.将项目的webcontent的html、css、imge、js[也是自己创建的Folder(文件夹)]等复制进去,别忘了lib里的包!! 3.根据自己的网页放的位置,自己调整JQ等各种包的位置。

    Imge2Lcd+V4.0破解版 无需注册码

    已经是完全破解版,无需注册码,直接点击“注册”按钮就完成 。工具能把图标转换成代码,用于在LCD上显示。

    HarmonyOS应用开发-放大与缩小效果展现.zip

    在 HarmonyOS 应用开发中,实现物体的放大与缩小效果是增强用户交互体验的关键技术之一。这通常涉及到图形绘制、动画处理以及视图变换等多个方面。本教程将深入探讨如何在 HarmonyOS 平台上创建这样的动态效果,帮助...

    ireportdesigner

    在Java开发环境中,ireportdesigner提供了直观的图形界面,允许用户通过拖拽和放置元素来构建复杂的报表布局,从而极大地提高了报表设计的效率。 ireportdesigner的核心特性包括: 1. **模板编辑**:用户可以利用...

    JS实现图片幻灯片效果代码实例

    本文主要介绍了如何使用JavaScript(JS)来实现图片幻灯片效果的代码实例,通过示例代码详细介绍了实现过程,并且对于学习和工作具有一定的参考价值。 知识点一:HTML结构准备 首先,我们需要准备HTML结构,用于...

    Image_Crypto_framework.rar_mfc imge 加密_图像加密

    图像加密解密MFC框架,无加解密代码,自行添加加解密代码

    电信设备-集成式移动群控设备及系统.zip

    1. 小区管理:IMGE能够对覆盖范围内的各个移动通信小区进行统一管理,包括小区的配置、状态监控、故障检测等。 2. 无线资源管理:通过智能算法,IMGE能够动态调整无线资源分配,确保网络容量与用户需求之间的平衡。...

    Exchangeable image file format

    随后,在1997年5月发布了版本1.1,增加了可选属性信息的规范以及格式实现的相关规定。这些规定的目的是确保不同品牌和型号的数码相机能够采用一致的文件格式,从而提高兼容性和互操作性。 #### 三、版本2.1的特点 ...

    Awesome Hover Effect.zip

    "Awesome Hover Effect.zip"是一个包含JavaScript实现的悬停效果集合的压缩包。JavaScript是一种广泛用于网页动态效果和交互的编程语言,它使得网页不仅仅局限于静态展示,而是可以通过用户交互产生丰富的动态反馈。...

    WPF 动态变更image背景图片

    现在,我们来深入探讨如何在WPF中实现动态变更`Image`背景图片,并结合“定时更新UI”这一标签,我们将讨论如何设置定时器以定期更新图像。 首先,我们需要理解WPF中的`Dispatcher`机制。`Dispatcher`是WPF用于处理...

    类淘宝商品图片点击切换

    其中,“类淘宝商品图片点击切换”是一种常见的设计模式,它通过JavaScript(简称JS)来实现在一系列预览小图中点击或悬停时,主展示区中的图片随之变化的效果。本文将详细解析这一功能的实现原理与步骤。 #### 一...

Global site tag (gtag.js) - Google Analytics