.Net里漂浮窗口拖动的实现方法

.net里漂浮窗口拖动的实现方法。另外还提到一个jquery的插件 easydrag,这个插件处理拖放还算好用,但自从我上次修改后,现在又发现了它的另一个bug. 在应用了easydrag的页面中,某种情况下会在页面加载时出现“找不到对象”的脚本错误。经过仔细检查,发现问题在于 easydrag 中过早的绑定了document的 mousemove 和 mouseup 事件,而有时候脚本加载的时候 document 还没有 ready, 自然就会“找不到对象”了。

解决问题的办法很简单,我们推迟这两个事件的绑定即可:

以下为引用的内容:
  function mousemove_handler(e){
  //
  }
  function mouseup_handler(e){
  //
  // 解除鼠标移动和弹起事件的处理函数绑定
  $(document).unbind("mousemove", mousemove_handler).unbind("mouseup", mouseup_handler);
  }
  $("#拖动目标").mousedown(function(){
  //
  // 添加鼠标移动和弹起事件的处理函数绑定
  $(document).mousemove(mousemove_handler).mouseup(mouseup_handler);
  })

注意上面代码中 unbind 事件也是很必要的。

另外推荐一个很好的 jquery 插件 —— background iframe.

以前我们写网页中的日历控件之类的,为了遮住 <select>的效果。

调用方式也非常简单:

以下为引用的内容:
<div>
 <iframe></iframe>
</div>

来加载弹出的内容。但是这样有个问题,就是加载的文档和当前文档不是一个页面,那么在ASP.net等后台代码里,就不是很方便做数据绑定,因为多了一个页面,就需要多出很多不必要的变量传递工作。

而background iframe的原理是,你可以在当前页面的 <div></div> 里直接写弹出内容,它负责动态的在这个div 中插入一个透明的 iframe 作为背景的遮罩,这样也一样能达到遮挡 <select>的效果。

调用方式也非常简单:

以下为引用的内容:
$("#some_layer").bgiframe();

这样就可以了。

这里联想到,编程真的是思路最重要。记得以前看 meizz的日历控件代码,通过iframe的方式写入,实现很复杂,现在如果换了background iframe 这个思路,问题很简单就解决了。

时间: 2024-10-31 06:50:46

.Net里漂浮窗口拖动的实现方法的相关文章

Js可拖拽放大的层拖动特效实现方法_javascript技巧

本文实例讲述了Js可拖拽放大的层拖动特效实现方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!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&

iframe里面的页面调用父窗口,左右窗口js函数的方法

iframe里面的页面调用父窗口,左右窗口js函数的方法 实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法. 比如有A窗口,A内有个IFRAME B,B里面的装载的是C页面,这时C要直接调用A里面的一个自定义函数AFUN(); 那么只要在C页面中写如下JS函数就可以了: window.parent.AFUN(); 如果AFUN()有参数也可以直接传递合适的参数进去. 例如: 修改父窗口控件属性 window.parent.document.getElementById('

取消Win7窗口自动排列的方法

目前在Win7系统下,用鼠标将程序窗口拖动到桌面的左边缘或右边缘时,就变成占屏一半的窗口; 拖到上边缘时,程序窗口往往就会自动最大化. 如何取消Win7窗口自动排列呢?那么如何才能限制窗口跟随鼠标拖动操作而自动变换呢?其实我们只要对系统的默认设置进行一下修改,就能让窗口跟以往一样不随鼠标拖动操作而发生变化了,下面一起跟win7系统下载站来学习下吧. 取消Win7窗口自动排列的方法具体步骤如下: 1.首先单击"开始"按钮,在开始菜单上按一下"控制面板"选项. 2.进入

Flex控制弹出窗口拖动范围示例代码

 使用TilteWindow形式的弹出窗口发现有时候一不小心将窗口拖动到上面就拖不回来了,导致弹出窗口无法关闭,下面有个解决方法 最近做项目的时候用到了TilteWindow形式的弹出窗口,发现有时候一不小心将窗口拖动到上面就拖不回来了,导致弹出窗口无法关闭,后来发现一个好的解决办法,在弹出窗口组件初始化的方法里面加上以下代码即可   代码如下: this.addEventListener(TitleWindowBoundsEvent.WINDOW_MOVE,function(event:Eve

AS3 拖动对象实现方法

as3 拖动对象实现方法 在flash as3.0里面 有startdrag 函数 mc.startdrag(false, new rectangle(0, 0, 100, 0) ); 这样mc这个元件只能在x轴方向拖动 拖动范围是 0-100 mc.startdrag(false, new rectangle(10, 20, 100, 200) ); 这样mc是可以在x方向10-100 y轴方向20-200 这样一个矩形区域拖动 希望对你有帮助 user1.addeventlistener(m

flash getURL或navigateToURL弹出窗口被IE拦截方法

flash geturl或navigatetourl弹出窗口被ie拦截方法 ie7和firefox(我使用的版本是2.0.0.11)会阻止用navigatetourl方法打开新窗口,而as2中的geturl方法则不会,让人很不爽.既然项目选择了as3开发,就只能想办法来解决.   首先当然想到的是externalinterface了,测试发现还是会被blocked.后来想添加wmode会不会有所帮助,于是在页面中添加wmode属性为opaque,果然ok了.   现提供as3中的geturl方法

c# 窗体 聊天 udp-C# 无法触发窗口弹出 show方法不生效

问题描述 C# 无法触发窗口弹出 show方法不生效 要做一个基于UDP的群聊加私聊程序,群聊已经实现了,私聊也已经单独实现了,但是我想让着两个窗体有联系,就想QQ一样,PC1发消息的时候,PC2 自动弹出消息窗口. 登录窗体: using System.Net; namespace NetMeetingExample { public partial class FormLogin : Form { public FormLogin() { InitializeComponent(); } p

iframe 父窗口和子窗口相互的调用方法集锦_javascript技巧

一.父窗口调用iframe子窗口方法 1.HTML语法:<iframe name="myFrame" src="child.html"></iframe> 2.父窗口调用子窗口:myFrame.window.functionName(); 3.子窗品调用父窗口:parent.functionName(); 简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行 4.父窗口页面源码: 复制代码 代码如下: <html>

Flex控制弹出窗口拖动范围示例代码_Flex

最近做项目的时候用到了TilteWindow形式的弹出窗口,发现有时候一不小心将窗口拖动到上面就拖不回来了,导致弹出窗口无法关闭,后来发现一个好的解决办法,在弹出窗口组件初始化的方法里面加上以下代码即可 复制代码 代码如下: this.addEventListener(TitleWindowBoundsEvent.WINDOW_MOVE,function(event:Event):void{ event.target.x = event.target.x < 0 ? 0 : event.targ