`
hipeace87
  • 浏览: 174376 次
  • 性别: Icon_minigender_1
  • 来自: 山东菏泽
社区版块
存档分类
最新评论

拖曳层!

阅读更多
  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6.   <p onclick = "ShowDivWin()">点下我
  7. </body>
  8. <script language="javascript" type="text/javascript">
  9. /* @author Nieger Dai
  10. @date 2007.11.15
  11.  */
  12. var isIe = ( document.all ) ? true : false;
  13. var moveable = false;
  14. var topDivBorderColor = "#336699";
  15. // 提示窗口的边框颜色
  16. var topDivBgColor = "#6795B4";
  17. // 提示窗口的标题的背景颜色
  18. var contentBgColor = "white";
  19. // 内容显示窗口的背景颜色
  20. var contentFontColor = "black";
  21. // 内容显示窗口字体颜色
  22. var titleFontColor = "white";
  23. // 弹出窗口标题字体颜色
  24. var index = 10000;
  25. // z - index;
  26. // 创建弹出窗口,构造函数
  27. function DivWindow( id, title, w, h, content )
  28. {
  29.    this.id = id;
  30.    // 窗口id
  31.    this.zIndex = index + 2;
  32.    this.title = title;
  33.    // 弹出窗口名称
  34.    this.message = content;
  35.    // 弹出窗口内容
  36.    this.width = w;
  37.    // 弹出窗口宽度
  38.    this.height = h;
  39.    // 弹出窗口高度
  40.    this.left = ( document.body.clientWidth ) ? ( document.body.clientWidth - this.width ) / 2 : 0;
  41.    // 弹出窗口位置,距屏幕左边的位置
  42.    this.top = ( document.body.clientHeight ) ? ( document.body.clientHeight - this.height ) / 2 : 0;
  43.    // 弹出窗口位置,距屏幕上边的位置
  44.    // this.init = init;
  45.    // this.init();
  46. }
  47. //  ---------------------------------------
  48. // 根据构造函数设定初始值,创建弹出窗口
  49. DivWindow.prototype =
  50. {
  51.    // 设置弹出窗口标题字体颜色
  52.    setPopupTopTitleFontColor : function( tFontColor )
  53.    {
  54.       titleFontColor = tFontColor;
  55.    }
  56.    ,
  57.    // 设置弹出窗口标题背景颜色
  58.    setPopupTopBgColor : function( tBgColor )
  59.    {
  60.       topDivBgColor = tBgColor;
  61.    }
  62.    ,
  63.    // 设置弹出窗口风格, 包括标题栏的背景,弹出窗口边框颜色,内容窗体背景颜色,内容窗体字体颜色
  64.    setPopupColor : function( borderColor, bgColor, tFontColor, cBgColor, fColor )
  65.    {
  66.       topDivBorderColor = borderColor;
  67.       topDivBgColor = bgColor;
  68.       titleFontColor = tFontColor;
  69.       contentBgColor = cBgColor;
  70.       contentFontColor = fColor;
  71.    }
  72.    ,
  73.    // 打开一个弹出窗口
  74.    open : function()
  75.    {
  76.       var sWidth, sHeight;
  77.       sWidth = document.body.clientWidth;
  78.       sHeight = document.body.clientHeight;
  79.       var bgObj = document.createElement( "div" );
  80.       bgObj.setAttribute( 'id', 'window' + this.id );
  81.       var styleStr = "top:0px;left:0px;position:absolute;background:#245;width:" + sWidth + "px;height:" + sHeight + "px;";
  82.       styleStr += ( isIe ) ? "filter:alpha(opacity=0);" : "opacity:0;";
  83.       bgObj.style.cssText = styleStr;
  84.       document.body.appendChild( bgObj );
  85.       // 让背景逐渐变暗
  86.       //showBackground( bgObj, 25 );
  87.       // 弹出窗口框体背景容器
  88.       var windowTopBgDiv = document.createElement( "div" );
  89.       windowTopBgDiv.setAttribute( 'id', 'windowTopBg' + this.id );
  90.       windowTopBgDiv.style.position = "absolute";
  91.       windowTopBgDiv.style.zIndex = this.zIndex ;
  92.       windowTopBgDiv.style.width = this.width ;
  93.       windowTopBgDiv.style.height = this.height;
  94.       windowTopBgDiv.style.left = this.left;
  95.       windowTopBgDiv.style.top = this.top;
  96.       windowTopBgDiv.style.background = topDivBgColor;
  97.       windowTopBgDiv.style.fontSize = "9pt";
  98.       windowTopBgDiv.style.cursor = "default";
  99.       windowTopBgDiv.style.border = "1px solid " + topDivBorderColor;
  100.       windowTopBgDiv.attachEvent( "onmousedown", function()
  101.       {
  102.          if( windowTopBgDiv.style.zIndex != index )
  103.          {
  104.             indexindex = index + 2;
  105.             var idx = index;
  106.             windowTopBgDiv.style.zIndex = idx;
  107.          }
  108.       }
  109.       );
  110.       // 弹出窗口头部框体
  111.       var windowTopDiv = document.createElement( "div" );
  112.       windowTopDiv.setAttribute( 'id', 'windowTop' + this.id );
  113.       windowTopDiv.style.position = "absolute";
  114.       windowTopDiv.style.background = topDivBgColor;
  115.       // "white";
  116.       windowTopDiv.style.color = titleFontColor;
  117.       windowTopDiv.style.cursor = "move";
  118.       windowTopDiv.style.height = 20;
  119.       windowTopDiv.style.width = this.width - 2 * 2;
  120.       // 开始拖动;
  121.       windowTopDiv.attachEvent( "onmousedown", function()
  122.       {
  123.          if( event.button == 1 )
  124.          {
  125.             // 锁定标题栏;
  126.             windowTopDiv.setCapture();
  127.             // 定义对象;
  128.             var win = windowTopDiv.parentNode;
  129.             // 记录鼠标和层位置;
  130.             x0 = event.clientX;
  131.             y0 = event.clientY;
  132.             x1 = parseInt( win.style.left );
  133.             y1 = parseInt( win.style.top );
  134.             // 记录颜色;
  135.             // topDivBgColor = windowTopDiv.style.backgroundColor;
  136.             // 改变风格;
  137.             // windowTopDiv.style.backgroundColor = topDivBorderColor;
  138.             win.style.borderColor = topDivBorderColor;
  139.             moveable = true;
  140.          }
  141.       }
  142.       );
  143.       // 停止拖动
  144.       windowTopDiv.attachEvent( "onmouseup", function()
  145.       {
  146.          if( moveable )
  147.          {
  148.             var win = windowTopDiv.parentNode;
  149.             win.style.borderColor = topDivBgColor;
  150.             windowTopDiv.style.backgroundColor = topDivBgColor;
  151.             windowTopDiv.releaseCapture();
  152.             moveable = false;
  153.          }
  154.       }
  155.       );
  156.       // 开始拖动
  157.       windowTopDiv.attachEvent( "onmousemove", function()
  158.       {
  159.           if( moveable )
  160.          {
  161.             var win = windowTopDiv.parentNode;
  162.             win.style.left = x1 + event.clientX - x0;
  163.             win.style.top = y1 + event.clientY - y0;
  164.             var objRith = parseInt(win.style.left,10) + parseInt(win.style.width,10);
  165.             var objButton = parseInt(win.style.top,10) + parseInt(win.style.height,10);
  166.             if(parseInt(win.style.left,10) <= 0)
  167.             {
  168.              win.style.left = 1 ;
  169.             }
  170.             if(parseInt(win.style.top,10) <= 0)
  171.             {
  172.              win.style.top = 1 ;
  173.             }
  174.             if ( objRith >= document.body.clientWidth )
  175.             {
  176.                win.style.left = document.body.clientWidth - parseInt(win.style.width) - 1;
  177.             }
  178.             if ( objButton >= document.body.clientHeight )
  179.             {
  180.                win.style.top = document.body.clientHeight - parseInt(win.style.height) - 1;
  181.             }
  182.          }
  183.       }
  184.       );
  185.       // 双击弹出窗口
  186.       windowTopDiv.attachEvent( "ondblclick", function()
  187.       {
  188.          maxOrMinPopupDiv( windowTopOperateSpan, windowContentDiv );
  189.       }
  190.       );
  191.       // 增加一个弹出窗口标题的显示
  192.       var windowTopTitleSpan = document.createElement( "span" );
  193.       windowTopTitleSpan.setAttribute( 'id', 'windowTopTitle' + this.id );
  194.       windowTopTitleSpan.style.width = this.width - 2 * 12 - 4;
  195.       windowTopTitleSpan.style.paddingLeft = "3px";
  196.       windowTopTitleSpan.innerHTML = this.title;
  197.       // 增加一个弹出窗口最小化,最大化的操作
  198.       var windowTopOperateSpan = document.createElement( "span" );
  199.       windowTopOperateSpan.setAttribute( 'id', 'windowTopOperate' + this.id );
  200.       windowTopOperateSpan.style.width = 12;
  201.       windowTopOperateSpan.style.borderWidth = "0px";
  202.       windowTopOperateSpan.style.color = titleFontColor;
  203.       // "white";
  204.       windowTopOperateSpan.style.fontFamily = "webdings";
  205.       windowTopOperateSpan.style.cursor = "default";
  206.       windowTopOperateSpan.innerHTML = "0";
  207.       // 最大化或者最小化弹出窗口操作
  208.       windowTopOperateSpan.attachEvent( "onclick", function()
  209.       {
  210.          maxOrMinPopupDiv( windowTopOperateSpan, windowContentDiv );
  211.       }
  212.       );
  213.       // 增加一个弹出窗口关闭的操作
  214.       var windowTopCloseSpan = document.createElement( "span" );
  215.       windowTopCloseSpan.setAttribute( 'id', 'windowTopClose' + this.id );
  216.       windowTopCloseSpan.style.width = 12;
  217.       windowTopCloseSpan.style.borderWidth = "0px";
  218.       windowTopCloseSpan.style.color = titleFontColor;
  219.       // "white";
  220.       windowTopCloseSpan.style.fontFamily = "webdings";
  221.       windowTopCloseSpan.style.cursor = "default";
  222.       windowTopCloseSpan.innerHTML = "r";
  223.       // 关闭窗口
  224.       windowTopCloseSpan.attachEvent( "onclick", function()
  225.       {
  226.          windowTopDiv.removeChild( windowTopTitleSpan );
  227.          windowTopDiv.removeChild( windowTopOperateSpan );
  228.          windowTopDiv.removeChild( windowTopCloseSpan );
  229.          windowTopBgDiv.removeChild( windowTopDiv );
  230.          windowTopBgDiv.removeChild( windowContentDiv );
  231.          document.body.removeChild( windowTopBgDiv );
  232.          document.body.removeChild( bgObj );
  233.       }
  234.       );
  235.       // 内容
  236.       var windowContentDiv = document.createElement( "div" );
  237.       windowContentDiv.setAttribute( 'id', 'windowContent' + this.id );
  238.       windowContentDiv.style.background = contentBgColor;
  239.       windowContentDiv.style.color = contentFontColor;
  240.       windowContentDiv.style.cursor = "default";
  241.       windowContentDiv.style.height = ( this.height - 20 - 6 );
  242.       windowContentDiv.style.width = "100%";
  243.       windowContentDiv.style.position = "relative";
  244.       windowContentDiv.style.left = 0;
  245.       windowContentDiv.style.top = 24;
  246.       windowContentDiv.style.lineHeight = "20px";
  247.       windowContentDiv.style.fontSize = "10pt";
  248.       windowContentDiv.style.wordBreak = "break-all";
  249.       windowContentDiv.style.padding = "3px";
  250.       windowContentDiv.innerHTML = this.message;
  251.       // 将内容写入到文件中
  252.       windowTopDiv.appendChild( windowTopTitleSpan );
  253.       windowTopDiv.appendChild( windowTopOperateSpan );
  254.       windowTopDiv.appendChild( windowTopCloseSpan );
  255.       windowTopBgDiv.appendChild( windowTopDiv );
  256.       windowTopBgDiv.appendChild( windowContentDiv );
  257.       document.body.appendChild( windowTopBgDiv );
  258.    }
  259. }
  260. //  ---------------------------------------
  261. // 最大或者最小化弹出窗口
  262. function maxOrMinPopupDiv( windowTopOperateSpan, windowContentDiv )
  263. {
  264.    var win = windowTopOperateSpan.parentNode.parentNode;
  265.    var tit = windowTopOperateSpan.parentNode;
  266.    var flg = windowContentDiv.style.display == "none";
  267.    if( flg )
  268.    {
  269.       win.style.height = parseInt( windowContentDiv.style.height ) + parseInt( tit.style.height ) + 2 * 2;
  270.       windowContentDiv.style.display = "block";
  271.       windowTopOperateSpan.innerHTML = "0";
  272.    }
  273.    else
  274.    {
  275.       win.style.height = parseInt( tit.style.height ) + 2 * 2;
  276.       windowTopOperateSpan.innerHTML = "2";
  277.       windowContentDiv.style.display = "none";
  278.    }
  279. }
  280. //  ---------------------------------------
  281. // 让背景渐渐变暗
  282. function showBackground( obj, endInt )
  283. {
  284.    if( isIe )
  285.    {
  286.       obj.filters.alpha.opacity += 1;
  287.       if( obj.filters.alpha.opacity < endInt )
  288.       {
  289.          setTimeout( function()
  290.          {
  291.             this.showBackground( obj, endInt )
  292.          }
  293.          , 5 );
  294.       }
  295.    }
  296.    else
  297.    {
  298.       var al = parseFloat( obj.style.opacity );
  299.       al += 0.01;
  300.       obj.style.opacity = al;
  301.       if( al < ( endInt / 100 ) )
  302.       {
  303.          setTimeout( function()
  304.          {
  305.             this.showBackground( obj, endInt )
  306.          }
  307.          , 5 );
  308.       }
  309.    }
  310. }
  311. //  ---------------------------------------
  312. // 关闭弹出窗口
  313. function closeDivWindow( id )
  314. {
  315.    var windowTopTitleSpan = document.getElementById( "windowTopTitle" + id );
  316.    var windowTopOperateSpan = document.getElementById( "windowTopOperate" + id );
  317.    var windowTopCloseSpan = document.getElementById( "windowTopClose" + id );
  318.    var windowTopDiv = document.getElementById( "windowTop" + id );
  319.    var windowTopBgDiv = document.getElementById( "windowTopBg" + id );
  320.    var windowContentDiv = document.getElementById( "windowContent" + id );
  321.    var bgObj = document.getElementById( "window" + id );
  322.    windowTopDiv.removeChild( windowTopTitleSpan );
  323.    windowTopDiv.removeChild( windowTopOperateSpan );
  324.    windowTopDiv.removeChild( windowTopCloseSpan );
  325.    windowTopBgDiv.removeChild( windowTopDiv );
  326.    windowTopBgDiv.removeChild( windowContentDiv );
  327.    document.body.removeChild( windowTopBgDiv );
  328.    document.body.removeChild( bgObj );
  329. }
  330. //  ---------------------------------------
  331.  function ShowDivWin()
  332.  {
  333.   var w = new DivWindow("DivWin","标题",400,300,"按住标题可拖动 <br> 双击标题试一下?<br>       不能把我移出边框吧!! O(∩_∩)O");
  334.     w.open();
  335.   }
  336. </script>
  337. </html>
分享到:
评论

相关推荐

    经典拖曳层移动层效果

    标题中的“经典拖曳层移动层效果”是指在网页中实现的一种交互功能,允许用户通过鼠标拖动来改变页面上某个元素的位置。这种效果常见于各种网页应用中,如窗口式对话框、可自定义布局的界面等。通过拖曳层移动层技术...

    AJAX模块拖曳移动效果,拖曳层移动层

    模块拖曳移动效果[拖曳层移动层],鼠标移动层

    仿3721首页模块拖曳移动效果[拖曳层移动层].rar

    标题中的“仿3721首页模块拖曳移动效果[拖曳层移动层].rar”指的是一种网页设计技术,具体来说是实现页面元素(如模块或区块)可被用户通过鼠标拖动来改变其在页面上的位置的效果。3721是中国早期的互联网公司,其...

    图片放大 缩小 拖曳 移动 点击弹出层 发送ajax等

    图片放大 缩小 拖曳 移动 点击弹出层 发送ajax等 图片放大 缩小 拖曳 移动 点击弹出层 发送ajax等 图片放大 缩小 拖曳 移动 点击弹出层 发送ajax等 图片放大 缩小 拖曳 移动 点击弹出层 发送ajax等 图片放大 缩小 ...

    js实现层的拖曳,很实用的哦

    根据给定的信息,本文将详细解析两种利用JavaScript实现层拖曳的方法。这两种方法均涉及到DOM操作、事件监听以及鼠标事件的处理。 ### 方法一:基于鼠标事件的传统拖拽实现 #### 1. 原理简介 这种方法的核心是通过...

    可拖曳简单新闻系统设计

    在这个新闻系统中,C#被用来编写控制器、模型以及业务逻辑层的代码,处理数据库交互、验证用户输入和执行其他复杂的业务规则。 数据库方面,可能采用了如SQL Server这样的关系型数据库管理系统,用于存储新闻条目、...

    可拖曳的弹出层

    js控制的弹出层,并且可拖曳,需要与jquery.js文件置于同一目录下

    仿3721首页模块拖曳移动效果js代码[可拖曳层移动层]

    仿3721首页模块拖曳移动效果[拖曳层移动层]呵,做了一些细致的处理 html, body { width:100%; height:100%; padding:0px; margin:0px; } body { text-align:center; font-size:14px; } .cell_left, .cell_...

    汽车右后拖曳臂轴断裂原因分析.pdf

    【标题】: "汽车右后拖曳臂轴断裂原因分析" 【描述】: 本文针对某汽车在短时间内出现右后拖曳臂轴断裂的问题进行了深入的分析,通过一系列的检验和测试,包括宏观和微观检验、硬度测试、金相检验以及化学成分分析,...

    论文研究-拖曳线列阵声呐数据录取系统的设计与实现.pdf

    为了满足拖曳线列阵声呐系统数据传输实时性高、数据量大的要求, 设计了一种基于PCI总线的数据录取系统。硬件方面, 系统采用PCI9054高效率DMA传输技术与外扩大容量FIFO相结合的方案, 实现了高速、连续的声呐数据传输;...

    js点击弹出div层实现可拖曳的弹窗效果

    在前端开发中,实现一个点击后弹出的div层,并使其具备拖曳功能是一个常见的需求,尤其在构建用户友好的交互界面时显得尤为重要。具体到这份文档,我们将会探讨如何通过JavaScript代码实现一个可拖曳的弹出层效果,...

    快捷方式(div)拖曳

    快捷方式(div)拖曳,有需要的赶紧下载。

    JS实现可展开折叠层的鼠标拖曳效果

    本文实例讲述了JS实现可展开折叠层的鼠标拖曳效果。分享给大家供大家参考。具体如下: 这是一款简单JS代码实现的鼠标拖曳图层效果,比较精简,大家参考一下。鼠标点击层标题栏可实现层内容的展开与折叠,按住标题栏...

    行业分类-设备装置-在轨拖曳的组合体航天器姿轨复合控制方法.zip

    2. **在轨拖曳**:在轨拖曳是一种利用地球大气层中的微小阻力来改变航天器轨道的技术。通过调整航天器的形状或表面积,可以增强与大气层的相互作用,从而实现轨道调整,减少对推进剂的依赖。 3. **姿轨复合控制**:...

    Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题)

    Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题),大屏项目显示云南省3D的地图,可拖拽缩放、地图打点、点击图标弹框等等功能。 ## 使用 - 启动调试服务: `npm start` - 构建 dist: `npm run ...

    水下拖曳升沉补偿系统的非参数模型自适应控制 (2010年)

    为补偿拖体深度变化,本文提出了由外层深度升沉补偿控制系统和内层位置伺服控制系统双层结构的水下拖曳升沉补偿系统总体设计方案,运用基于紧格式线性化的非参数模型自适应控制方法设计了系统外层深度升沉补偿控制器...

    一个简单的鼠标拖曳图层效果

    一个简单的鼠标拖曳图层效果,简单JS代码实现的鼠标拖曳图层效果,比较精简,大家参考一下。

Global site tag (gtag.js) - Google Analytics