我要实现一个像webqq聊天框一样的一个可以拖动的层,
在网上找到一个例子:http://www.workcss.com/jsdemo/4/index.html 有这样一个问题,拖拽的时候在 非IE浏览器 下,层里面的文字会加上蓝色背景变成选中状态(其他层的文字也会),怎么能让他不选中呢? 不好解决的话,推荐一个更好的拖动层的实现方案也行,谢谢各位大虾了
在网上找到一个例子:http://www.workcss.com/jsdemo/4/index.html 有这样一个问题,拖拽的时候在 非IE浏览器 下,层里面的文字会加上蓝色背景变成选中状态(其他层的文字也会),怎么能让他不选中呢? 不好解决的话,推荐一个更好的拖动层的实现方案也行,谢谢各位大虾了
解决方案 »
- 自解压后添加可信任站点
- 如何做到 通过JS 读取本地text文档,并根据文档数据动态创建表单(table)
- 兄弟们,帮我看看怎么做一个类似的页面。
- 上传图片前,需要限制其长宽尺寸大小该如何判断呢
- "为空或不是对象问题"大家帮忙看看
- 初学者提问:这个非常简单的程序运行不出结果?请教
- 页面有上下两个框架,如何使上框架中的输入框a失去焦点时,a的值传递到下框架中
- 菜鸟提问:如何根据单选按钮选中的直显示或隐藏网页的部分内容
- 文件域能赋初值
- 请教各位大神,我想在一个页面显示2个倒计时,但是为什么只能读取出一个呢
- 请各位达人帮小弟解决下JS MSComm 接收COM口数据的问题!
- 一个简单jquery问题
<html>
<head>
<title>zsqsc,Look! </title>
<style>
body,div{margin-left:0px;margin-top:0px;}
#canbemoved_div{
position:absolute;
background-color:#fff;
z-index:999;
left:100px; top:100px; width:500px; height:1px;
clear:both;display:block; height:1px;
}#canbemoved_title_div{
background-color:#bbb;
border-bottom:solid #333;
width:500px; height:25px;
color:red
}
#canbemoved_content_div {
padding:10px;
border: 1px solid #ccc;
}
/*圆角*/
.m4,.m3,.m2,.m1{border-left:1px solid #ccc;border-right:1px solid #ccc;background:#ccc;display:block; height:1px; overflow:hidden;}
.m4 {margin:0 4px; background:#eee; }
.m3 { margin:0 3px;}
.m2 { margin:0 2px; }
.m1 { margin:0 1px; }</style>
<script type="text/javascript">
var bStartDrag=false, dx=0, dy=0;
function $(id){return document.getElementById(id);}function beginDrag(e,o){
bStartDrag=true; o.style.cursor='move';
e=e||window.event;
var _x=e.clientX||e.pageX, _y=e.clientY||e.pageY; objDrag=o.parentNode;
dx=_x-parseInt(objDrag.offsetLeft);
dy=_y-parseInt(objDrag.offsetTop);
if(document.addEventListener){
objDrag.addEventListener("mousemove",_moveHandler,true);
objDrag.addEventListener("mouseup",_upHandler,true);
}
else if(document.attachEvent){
objDrag.attachEvent("onmousemove",_moveHandler);
objDrag.attachEvent("onmouseup",_upHandler);
}
function _upHandler(){
if(document.removeEventListener){
objDrag.removeEventListener("mouseup",_upHandler,true);
objDrag.removeEventListener("mousemove",_moveHandler,true);
}
else{
objDrag.detachEvent("onmouseup",_upHandler);
objDrag.detachEvent("onmousemove",_moveHandler);
}
stopDrag();
}
function _moveHandler(e){
e=e||window.event;
if(bStartDrag){
with(objDrag){
var myX=e.clientX-dx, myY=e.clientY-dy;
style.left=myX+'px'; style.top=myY+'px';
dx=e.clientX-offsetLeft;
dy=e.clientY-offsetTop;
}
}
}
function stopDrag(){
$('canbemoved_title_div').style.cursor='default';
}
}
</script>
</head>
<body>
<div id="canbemoved_div">
<span class="m4"></span>
<span class="m3"></span>
<span class="m2"></span> <span class="m1"></span>
<div id='canbemoved_title_div' onmousedown="beginDrag(event,this);">
<span style'color:red'>标题栏</span>
</div>
<div id='canbemoved_content_div'>
<p>
我要实现一个像webqq聊天框一样的一个可以拖动的层,
在网上找到一个例子:http://www.workcss.com/jsdemo/4/index.html 有这样一个问题,拖拽的时候在 非IE浏览器 下,层里面的文字会加上蓝色背景变成选中状态(其他层的文字也会),怎么能让他不选中呢? 不好解决的话,推荐一个更好的拖动层的实现方案也行,谢谢各位大虾了
</p>
</div>
</div>
</body></html>
不太明白你说的什么意思?要解决的问题是,我的拖拽响应区域是一个div层,里面包含各种标签,拖动时网站的所有span内容都可能成选中状态,怎么样让它不选中呢?
函数的里面加上
window.getSelection&&window.getSelection().removeAllRanges();
每次移动的时候都会清空选中也可以看看我这个
不过图片都木有了 木有了
http://www.cnblogs.com/wtcsy/archive/2010/02/25/vv.html
【我的拖拽响应区域是一个div层,里面包含各种标签,拖动时网站的所有span内容都可能成选中状态】:
我的建议是不让这个整个DIV成为拖拽响应区域,而是加个标题栏。就像拖拽程序窗口一样,只能拖动标题栏才可以移动。具体的,2楼的例子已经展示了