`

js 拖动拉缩窗体

    博客分类:
  • js
阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
        <title>拖动拉缩窗体</title>
    </head>
    <script type="text/javascript">
        var obj_moing = false;
        var obj_resize = false;
        var obj_Ofx = 0;
        var obj_Vfx = 0;
        var obj_Ofy = 0;
        var obj_Vfy = 0;
        function obj_down(id){//窗口在获得鼠标按下时触发
            if (obj_moing) { //如果正在拖动,那么返回
                return;
            }
            else {
                obj_Ofx = event.clientX; //获取鼠标在网页中的X坐标
                obj_Vfx = document.getElementById(id).offsetLeft; //获取窗口的左位置
                obj_Ofy = event.clientY; //获取鼠标在网页中的X坐标
                obj_Vfy = document.getElementById(id).offsetTop; //获取窗口的左位置
                document.getElementById(id).setCapture(); //锁住拖动的对象
                obj_moing = true; //设置为正在拖动
            }
        }
        function obj_up(id){//当鼠标弹起时触发
            if (obj_moing) {
                document.getElementById(id).releaseCapture();//释放锁住的对象
                obj_moing = false; //设置为不是正在拖动
            }
            if (obj_resize) {
                document.getElementById(id).style.cursor = "auto";//还原鼠标形状
                document.getElementById(id).releaseCapture();//释放锁住的对象
                obj_resize = false; //设置为不能缩放大小
            }
        }
        function obj_move(id){//当鼠标移动时触发
            if (obj_moing){
            var curX = event.clientX;
            var curY = event.clientY;
            var obj_lastx = obj_Vfx+curX-obj_Ofx;    //取得移动后的左位置
            var obj_lasty = obj_Vfy+curY-obj_Ofy;    //取得移动后的上位置
            if(obj_lastx <= 0){
                obj_lastx = 0;
            }
            if(obj_lasty <= 0){
                obj_lasty = 0;
            }
            document.getElementById(id).style.left = obj_lastx;    //设定移动后的位置
            document.getElementById(id).style.top = obj_lasty;    //设定移动后的位置       
        }
        if(obj_resize){
            if (event.clientX - parseInt(document.getElementById(id).offsetLeft) > 100 && event.clientY - parseInt(document.getElementById(id).offsetTop) > 100) {
                if (event.clientX - parseInt(document.getElementById(id).offsetLeft) < 1024 && event.clientY - parseInt(document.getElementById(id).offsetTop) < 768) {
                    document.getElementById(id).style.width = event.clientX - parseInt(document.getElementById(id).offsetLeft);
                    document.getElementById(id).style.height = event.clientY - parseInt(document.getElementById(id).offsetTop);
                    document.getElementById("div1td2").style.height = event.clientY - parseInt(document.getElementById(id).offsetTop) - 25;
                }
            }
        }
    }
    function obj_lsdown(id){
        var curX = event.clientX + document.documentElement.scrollLeft;
        var curY = event.clientY + document.documentElement.scrollTop;
        var moveallwidth = parseInt(document.getElementById(id).offsetLeft) + parseInt(document.getElementById(id).offsetWidth);
        var moveallheight = parseInt(document.getElementById(id).offsetTop) + parseInt(document.getElementById(id).offsetHeight);
        var moveleft = parseInt(moveallwidth) - parseInt(curX);
        var movetop = parseInt(moveallheight) - parseInt(curY);   
        if (moveleft <= 7 && moveleft >= 0 && movetop <= 7 && movetop >= 0) { //鼠标出现在窗口右下角
            document.getElementById(id).style.cursor="nw-resize";
            document.getElementById(id).setCapture(); //锁住缩放的对象
            obj_resize = true; //设置为正在缩放
        }   
    }

/**
   * @deprecated 关闭div 真正的从html中移除div代码,释放资源,兼容ie和火狐
   *
   */




   function closeDiv()
   {
  var divobj = document.getElementById("div1");
     divobj.parentNode.removeChild(divobj);
   }



    </script>

    <body bgcolor="#ffffff">
        <div id="div1" style="width:300px;height:300px;top:200px;left:300px;zIndex:100;position:absolute;cursor:auto;" onmousedown="obj_lsdown('div1');" onmousemove="obj_move('div1');" onmouseup="obj_up('div1');">
          
    <table border="0" cellpadding="0" cellspacing="0" id="table1" width="100%" style="table-layout:fixed;">
                <tr>
                    <td bgcolor="#C0CFB2" id="div1td1" style="cursor:move;height:25px;" onmousedown="obj_down('div1');" >
                        <span style='float:left'>拖动拉缩窗体</span> <span style='float:right'><a href='javascript:closeDiv()'>关闭</a></span> 
                    </td>
                </tr>
                <tr>
                    <td style="height:275px;" id="div1td2" bgcolor="#6666ff">
                       <span> 内容内容内容内容内容内容内容内容内容内容内容内容内容内容
                     </span>
</td>
                </tr>
            </table>
        </div>

    </body>
</html>
0
0
分享到:
评论
2 楼 fuanyu 2010-07-20  
建议你去用jquery。
1 楼 counters15 2010-07-19  
firefox中还是event is not defined的问题

相关推荐

    javascript 滚动窗体 弹出窗体 自动隐藏窗体 可拖动窗体

    在JavaScript编程中,滚动窗体、弹出窗体、自动隐藏窗体以及可拖动窗体是四个重要的交互设计概念,这些功能可以显著提升用户体验。本文将深入探讨这些知识点,并结合实际代码示例来帮助理解。 一、滚动窗体 滚动...

    一套漂亮的js div alert弹出窗体

    标题中的“一套漂亮的js div alert弹出窗体”指的是使用JavaScript和HTML5的div元素创建的自定义对话框,这种对话框通常用于替代浏览器原生的alert、confirm和prompt等函数,提供更丰富的视觉效果和交互体验。...

    javascript窗体类似div窗体iframe+div窗体

    2. **模拟弹出窗口**:利用div,我们可以创建可拖动、可关闭的浮动窗体,通过JavaScript监听用户的鼠标事件来实现这些功能。 3. **内容隔离**:IFrame可以提供一种内容隔离机制,使得一个页面的不同部分不会互相...

    jquery实现居中可拖拽窗体

    本文将详细解析"jquery实现居中可拖拽窗体"这一主题,帮助你理解如何利用jQuery创建一个可以居中显示并允许用户拖动的窗口。 首先,让我们了解基本的HTML结构。在实现居中可拖拽窗体时,你需要一个包含标题和内容的...

    jquery窗体拖动布局

    "jQuery窗体拖动布局"技术就是这种体验的一种体现,它允许用户通过简单的鼠标拖动操作来调整页面上各个窗体的位置,以满足个性化的需求。jQuery,作为一款强大的JavaScript库,提供了丰富的功能和简便的API,使得...

    asp.net 无标题窗体的拖动

    例如,我们可以在Page_Load事件中生成一段JavaScript代码,这段代码将在页面加载到浏览器时执行,为无标题窗体添加拖动功能。 首先,我们需要创建一个无标题的HTML元素,比如一个div,作为我们的“窗体”。然后,...

    用JavaScript实现网页里的Window7半透明窗体

    以上代码实现了一个基本的JavaScript半透明窗体,用户可以拖动窗口并使用滑块调整透明度。然而,为了达到Windows 7的效果,可能还需要考虑边框样式、阴影、动画和其他细节,这可能涉及到更复杂的CSS和JavaScript逻辑...

    javascript无刷新窗口,鼠标壳拖动窗口位置

    在JavaScript编程中,实现无刷新窗口以及允许用户通过鼠标拖动窗口位置的技术是现代Web应用中常见的需求。这种功能能够提供更加流畅和交互性强的用户体验,尤其适用于弹出框、对话框或者浮动面板等元素。以下是对这...

    javascript 实现的web页面拖拽程序 窗体大小可调

    这是我自己制作的web页面窗体拖拽程序,从一个按钮(可以使图片,button等等,自己定)拖拽出一个DIV(也可根据自己需要修改),拖拽次数没有限制,该DIV拖拽出来后可以继续调整位置和大小,可用于库房可视化布局...

    可拖拽的窗体(让窗体随着鼠标移动)

    在网页设计中,创建一个可拖拽的窗体是一个常见的需求,这允许用户通过鼠标来移动窗体的位置,提供更好的交互体验。本文将详细讲解如何实现一个可拖拽的窗体,以及涉及到的关键技术点。 首先,我们来看HTML部分。...

    JS移动无边框的HTA窗体

    使用JS移动无边框窗体 注册HtaHelper.dll 即可使用JS控制无边框HTA窗体的移动 以下平台测试通过: WINDOWS XP/Win7 32位/Win7 64位/Windows Server 2003/2008

    鼠标拖拽移动子窗体的JS实现

    接下来,我们将关注JavaScript部分,实现子窗体的拖拽功能。这里使用了jQuery库,通过监听`mousedown`事件开始拖拽过程,`mousemove`事件处理拖动过程,`mouseup`事件结束拖拽。关键的JavaScript代码如下: ```...

    用Jquery实现DIV锁屏并且可以拖拽DIV窗体代码页面

    这个元素将作为我们的锁屏和拖拽窗体。在HTML中,可以这样写: ```html ; width:300px; height:200px; background-color:#ccc;"&gt; ``` 为了使该DIV具有拖拽功能,我们需要在jQuery中编写一些JavaScript代码。这里的...

    Ajax超漂亮的Vista窗体(支持拖动)

    总的来说,"Ajax超漂亮的Vista窗体(支持拖动)"这一主题涵盖了Web开发中的前端技术,包括Ajax、JavaScript、CSS3以及用户体验设计。实现这样的功能,需要开发者具备扎实的前端技能,并能灵活运用这些技术以创建出...

    prototype-windows-javascript实现窗体.rar

    在JavaScript编程领域,"prototype-windows-javascript实现窗体.rar"这个资源主要关注的是利用Prototype.js和Window.js这两个JavaScript插件来创建和管理Web上的弹出窗口。Prototype.js是一个广泛使用的JavaScript库...

    JS做的隐藏与显示DIV可拖动弹出层

    `JS`(JavaScript)作为一种强大的客户端脚本语言,常常被用来增强网页的交互性,比如实现元素的动态显示、隐藏以及拖动功能。在"JS做的隐藏与显示DIV可拖动弹出层"这个实例中,我们将探讨如何利用JavaScript来创建...

    juqery Ui弹出窗体

    jQuery UI 是一个基于 jQuery JavaScript 库的开源框架,它提供了丰富的用户界面组件,如对话框(弹出窗体)、拖放功能、日期选择器、进度条等,用于创建交互式和美观的网页应用。在本篇文章中,我们将深入探讨 ...

    可拖动的JS浮动窗口类(调用方便)

    "可拖动的JS浮动窗口类"是指一种允许用户通过鼠标拖动来改变窗口位置的JavaScript实现。这种功能提高了用户体验,因为它使用户能够根据需要自由地调整窗口的位置,以便于阅读或操作。 创建一个可拖动的JS浮动窗口...

    3721窗体移动源代码

    【3721窗体移动源代码】是一个与前端开发相关的资源包,主要涉及JavaScript (JS)、CSS(层叠样式表)以及页面代码。这个安装包提供的内容是3721项目的一部分,允许开发者或者学习者直接运行和研究其工作原理。下面将...

Global site tag (gtag.js) - Google Analytics