`

JS 拖动弹出层

    博客分类:
  • JS
 
阅读更多

JS写的对弹出层的拖动功能,虽然不怎么看的懂,先记着吧,以后慢慢看。

1、JSP代码:

<div id="textDiv" align="center" style="background-color:white;border:1px solid #38533c;z-index:102;position:absolute;top:5px; left:20%;display: none;padding-bottom: 5px;">			
		<div style="height:32px; background:#3877bc;width:400px;cursor:move;">
		<span style=float:left;line-height:32px;color:#fff;font-size:13px;text-indent:5px;>文本内容</span>
		<span style="line-height:32px;float:right;cursor:pointer;"><img src="images/clo.jpg"  height=32 width=32 onclick="closeTextDiv()"/></span>
		</div>
			<ul  class="ztree" style="overflow:auto" >
				<textarea id="textContent" cols="61" rows="10">
					要显示的内容
				</textarea>
			</ul>
</div>

 

2、JS调用拖动功能:

document.getElementById("textDiv").getElementsByTagName("div")[0].onmousedown=tuodong;

  

3、拖动JS代码:

var oBox=null;
var bDrag = false;
var disX = disY = 0;
var ptid="";
function tuodong(event){
	oBox=this.parentNode;
	ptid=this.parentNode.id;
	var event = event || window.event;
	bDrag = true;
	disX = event.clientX - oBox.offsetLeft;
	disY = event.clientY - oBox.offsetTop;
}
//拖拽开始
	document.onmousemove = function (event)
	{
		if (!bDrag) return;
		if(oBox==null) return false;
		var event = event || window.event;
		var iL = event.clientX - disX;
		var iT = event.clientY - disY;
		var aX = [oBox.offsetLeft];
		var aY = [oBox.offsetTop];
		var maxL = document.body.clientWidth - oBox.offsetWidth;
		var maxT = document.body.clientHeight - oBox.offsetHeight;	

		iL = iL < 0 ? 0 : iL;
		iL = iL > maxL ? maxL : iL; 		
		iT = iT < 0 ? 0 : iT;		

		oBox.style.marginTop = oBox.style.marginLeft = 0;
		oBox.style.left = iL + "px";
		oBox.style.top = iT + "px";		

		aX.push(iL);
		aY.push(iT);

		return false
	};
//鼠标释放, 结束拖拽
	document.onmouseup = function ()
	{
		bDrag = false;
	};

 

 4、这个弹出层是在鼠标点击的地方弹出的,定位代码来自:

http://yubosun.akhtm.com/tech/js-position-xiangdui-layer.htm

<style type="text/css">
#thelayer{
 width:300px;height:98px;border:#E4F5FD 1px solid;z-index:2;position:absolute;background:#FFFFFF;display:none;
}
</style>

<script>
function CPos(x, y)
{
    this.x = x;
    this.y = y;
}

function GetObjPos(ATarget)
{
    var target = ATarget;
    var pos = new CPos(target.offsetLeft, target.offsetTop);
    
    var target = target.offsetParent;
    while (target)
    {
        pos.x += target.offsetLeft;
        pos.y += target.offsetTop;
        
        target = target.offsetParent
    }
    
    return pos;
}
function showlayer(obj) {
 pos = GetObjPos(obj);
 l = document.getElementById("thelayer");
 l.style.left = pos.x + 40;
 l.style.top = pos.y + 40;
 l.style.display="block";
}
</script>

<div onclick="showlayer(this)">点我</div>

<div id="thelayer">浮我</div>
 

 

分享到:
评论

相关推荐

    bootstrap可拖拽弹出层

    Bootstrap可拖拽弹出层是一种基于前端框架Bootstrap和jQuery实现的交互式UI组件。这个组件允许用户自定义和拖动弹出窗口,提供了一种非模态(非阻塞)的对话体验,使得用户可以在不关闭当前页面的情况下与弹出层进行...

    js弹出层可拖动兼容各大浏览器

    "js弹出层可拖动兼容各大浏览器"这个主题涵盖了如何利用JavaScript实现一个弹出窗口,并确保它在各种浏览器(如Chrome、Firefox、Safari、Edge和IE等)上具有良好的兼容性。下面我们将深入探讨这一技术。 首先,...

    简单实用的jquery可拖动弹出层,遮罩层

    本文将深入探讨“简单实用的jQuery可拖动弹出层,遮罩层”这一主题,旨在帮助开发者了解如何利用jQuery实现这种功能。 首先,我们来解析标题中的关键词“jQuery可拖动弹出层”。jQuery是一个广泛使用的JavaScript库...

    JavaScript弹出层

    Js弹出层库则是专门为此目的设计的JavaScript库,简化了弹出层的创建和管理过程。在这个场景中,我们关注的是名为"Dialog"的压缩包文件,很可能包含了一个对话框实现的库或者相关的代码示例。 弹出层通常分为几种...

    使用js实现弹出层

    在网页开发中,弹出层(也称为模态窗口或对话框)是一种常见的用户交互设计,用于在不离开当前页面的情况下展示...在实际开发中,还可以根据需求进一步定制弹出层的样式和行为,例如添加拖动功能、自适应屏幕大小等。

    可拖动图片弹出层插件layer.js.rar

    可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可拖动图片弹出层插件layer.js.rar 可...

    js漂亮弹出层 对话框

    "js漂亮弹出层 对话框"着重讨论的是如何利用JavaScript创建美观且功能丰富的弹出对话框。在本文中,我们将深入探讨JavaScript弹出层的设计原则、实现方法以及一些实用的库和技巧。 首先,JavaScript是一种广泛用于...

    Js弹出层(支持拖拽,多个弹窗自动切换层级)

    标题"Js弹出层(支持拖拽,多个弹窗自动切换层级)"提及的核心知识点是JavaScript中的弹出层实现,特别是它包含的两个关键特性:拖拽功能和多层弹窗之间的层级自动切换。这意味着我们要探讨的是如何在JavaScript中...

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

    在"JS做的隐藏与显示DIV可拖动弹出层"这个实例中,我们将探讨如何利用JavaScript来创建一个可拖动的弹出层,并控制其显示与隐藏。 首先,让我们理解`div`层的隐藏与显示。在HTML中,我们创建一个`div`元素并为其...

    可拖动的弹出层提示效果.rar

    本案例中的“可拖动的弹出层提示效果”是一个利用JavaScript(JS)实现的功能,它允许用户通过鼠标拖动来改变弹出层的位置,提升用户体验。这一技术在网页应用、移动应用以及桌面应用中都有广泛应用。 “JS特效-...

    漂亮的js可移动弹出层

    "漂亮的js可移动弹出层"是利用JavaScript和jQuery技术实现的一种增强用户体验的交互设计。这种弹出层不仅美观,而且具有可移动性,允许用户根据需要自由调整其在屏幕上的位置。 JavaScript,简称JS,是一种轻量级的...

    jQuery LayerModel弹出层插件拖动弹出层效果

    jQuery LayerModel是一款基于jQuery的弹出层插件,它提供了丰富的功能,包括创建各种类型的弹出窗口,如提示、信息、确认、加载等,并且支持弹出层的拖动效果。在网页交互设计中,弹出层是常用的一种增强用户体验的...

    js弹出层效果

    通过`&lt;script&gt;`标签引入了一个名为`mask-layer.js`的JavaScript文件,该文件包含了弹出层相关的脚本逻辑。 #### 4. 内联样式与脚本 ```html body { margin: 0 0; } &lt;script type="text/javascript"&gt; // ...

    弹出层拖动DEMO

    总之,“弹出层拖动DEMO”是一个关于如何使用JavaScript实现可拖动弹出层的实例,对于学习网页交互设计和JavaScript事件处理的开发者来说,这是一个很好的学习资源。通过实践这个DEMO,你可以掌握弹出层拖动的核心...

    javascript九种自定义弹出层效果

    4. **可拖动弹出层**:用户可以通过鼠标拖动弹出层的位置。这需要监听鼠标的`mousedown`、`mousemove`和`mouseup`事件,计算偏移量,并更新弹出层的CSS位置。 5. **自适应大小**:弹出层内容可能根据数据动态变化,...

    js弹出框-弹出层-拖拽-兼容

    在这个"js弹出框-弹出层-拖拽-兼容"的插件中,开发者通过纯JavaScript实现了弹出层的创建、拖拽功能的添加,并优化了代码以适应多种浏览器环境。这个插件的价值在于它不需要依赖jQuery或其他大型库,降低了页面加载...

    jquery弹出层并可拖动

    3. **jQuery实现**:引入jQuery库,然后编写JavaScript代码来控制弹出层的显示和关闭,以及添加拖动功能。这里,我们可以使用jQuery的`mousedown`、`mousemove`和`mouseup`事件来实现拖动。 ```javascript $...

    jquery弹出层插件点击弹出层可拖动,弹出层为umeditor

    在IT领域,尤其是在Web开发中,我们经常遇到各种交互式设计和组件的实现,其中“jQuery弹出层插件点击弹出层可拖动,弹出层为umeditor”就是一个典型的例子。这个功能结合了多个技术,包括jQuery、CSS、iframe以及...

    原生Js浮动弹出层 可拖动 关闭 最小化.rar

    原生Js浮动弹出层 可拖动 关闭和最小化,用到了几个小图片,分别是标题栏、关闭按钮和最小化按钮,关闭和最小化我给误删了,自己再找个类似的图片覆盖掉吧,弹出层的其它部分都是完全正常的,兼容性也很好,具体效果...

    可拖动图片弹出层插件layer.js.zip

    总的来说,layer.js是一个强大且灵活的JavaScript插件,它通过简单的API调用即可实现可拖动的图片弹出层功能。无论是对于个人开发者还是企业项目,都能有效提升网页的交互性和用户体验。在实际使用中,开发者应结合...

Global site tag (gtag.js) - Google Analytics