楼主不会是托吧?
害我再注册了一个126的帐号。
根本不是跨frame的拖拽。
本来就是在一个frame中做的。
那个画面中就上下两个frame,
并且上面的frame高度为100%。
也就是说下面的frame高度为0,
是个隐藏的frame.
因此也就不是什么跨frame拖拽了。
害我再注册了一个126的帐号。
根本不是跨frame的拖拽。
本来就是在一个frame中做的。
那个画面中就上下两个frame,
并且上面的frame高度为100%。
也就是说下面的frame高度为0,
是个隐藏的frame.
因此也就不是什么跨frame拖拽了。
做了好多的调查,终于想到了方法,
其实拖拽实现起来不难。
这个只要各个frame之前的配合就可以了。
最大的困难还是怎么实现拖拽时对象移动的效果。
也就是怎样把对象移出窗口或者frame.
如果只是改变一下图标的话就比较简单了。
想要感观上好像是把对象直接移动到别的FRAME上的话,
就很困难了。
不过好在IE下可以使用createPopup来实现。周未有时间把代码写出来。
里面讲到了如何实现这功能,而且对学习和复习js都很有好处
igoogle中也不能跨frame呀!
只是一般的拖拽而已。
就是个在body下绝对定位的div啊~,里面包含想要拖动的元素~
div是没有办法拖出frame或者窗口的。
不好意思, 我刚才实践了一下, 确实不行. 我本想在主frame下建立div以为可以盖过下面的iframe. 结果不行. 顺便贴码(jquery)<html>
<head>
<title>test</title>
<script type="text/javascript" src="scripts/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
function doMouseMove(e){
var newLeft, newTop;
newLeft=e.pageX;
newTop=e.pageY;
$("#fly").css({left:newLeft, top:newTop});
}
$(document).ready(function(){
$(document.body).mousemove(doMouseMove);
});
</script>
</head>
<body>
<div id="fly" style="position:absolute; left:800px; top:0px; z-index:200; background-color:black; width:200px; ight:200px;"></div>
<iframe style="position:absolute; left:0px; top:0px; z-index:100" height="300px" width="500px" src="www.baidu.com" frameborder="0" scrolling="no"></iframe>
</body>
</html>
把网页最外层弄成iframe width="100%" height="100%"
里面层网页才是frameset这样实现起来就简单了
div确实可以盖住 iframe,
你的程序没有盖住是因为你style里面写错了一些内容。iframe是比较特殊的一种frame,它是画面的一部分。
因此div可以覆盖到上面。
其它的frame就不可以了。
看看俺写的,IE7通过,暂不支持FF,有兴趣的自己改。两个文件,一个是Frameset.htm,一个是Frame.htm.*********************************************************************
<!--Frameset.htm-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title> Frameset </title>
</head>
<frameset cols="200,*" frameBorder="Yes" frameSpacing="2">
<frame src="Frame.htm">
<frame src="Frame.htm">
</frameset>
</html>
*********************************************************************
<!--Frame.htm-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title> Frame </title>
</head><body><div id="oDiv1" class="title" onMousedown="StartDrag(this)" onMouseup="StopDrag(this)" onMousemove="Drag(this)" style="position:absolute; left:-1000px; top:100px; width:100px; height:100px; background-color:#FFCC99; border:1px solid #FF0000; cursor:move;">跨框架拖曳</div>跨框架拖曳 <span id="oDiv2"></span><br><br><div id="oDiv3" style='display:none;'>
查看效果:拖动DIV、拖动框架线(IE7测试通过)<br><br>
本例程主要在于演示跨框架拖动的实现原理,暂未考虑兼容性,有兴趣的朋友自己改进。
</div><script type="text/javascript">
var deltaX=5; //水平校正量。设置为等于框架分割线所占宽度像素。
var move=false,oX=0,oY=0,init=false;
var LFrame,LDoc,LDiv, RFrame,RDoc,RDiv;window.onload=function(){
if(typeof(oDiv1.style.pixelLeft)=='undefined'){
document.write('您的浏览器不支持本演示例程正常运行,请在IE6,IE7运行。');
document.close();
return;
}
oDiv2.innerHTML=document.title=(window==parent.frames[0]?'Left':'Right');
if(window==parent.frames[1]){ oDiv1.style.pixelLeft=100; oDiv3.style.display=''; }
else{document.body.style.overflow='hidden';}
LFrame=parent.frames[0];
RFrame=parent.frames[1];
if(LFrame){
LDoc=LFrame.document;
RDoc=RFrame.document;
LDiv=LFrame.document.getElementById("oDiv1");
RDiv=RFrame.document.getElementById("oDiv1");
}
}
window.onresize=function(){
LDiv.style.pixelLeft=RDiv.style.pixelLeft+LDoc.body.clientWidth+deltaX;
}function StartDrag(obj)
{
if(event.button==1&&event.srcElement.tagName.toUpperCase()=="DIV")
{
obj.setCapture();
move=true;
oX=event.offsetX; oY=event.offsetY;
obj.style.background="#FFFF99";
if(LDiv)LDiv.style.background="#FFFF99";
if(RDiv)RDiv.style.background="#FFFF99";
}
}function Drag(obj)
{
if(move)
{
obj.style.pixelLeft=event.clientX-oX;
obj.style.pixelTop=event.clientY-oY;
if(window==RFrame){
if(LDiv)LDiv.style.pixelLeft=obj.style.pixelLeft+LDoc.body.clientWidth+deltaX;
if(LDiv)LDiv.style.pixelTop=event.clientY-oY;
}else{
if(RDiv)RDiv.style.pixelLeft=obj.style.pixelLeft-LDoc.body.clientWidth-deltaX;
if(RDiv)RDiv.style.pixelTop=event.clientY-oY;
}
}
}function StopDrag(obj)
{
if(move)
{
obj.releaseCapture();
obj.style.background="#FFCC99";
move=false;
if(LDiv)LDiv.style.background="#FFCC99";
if(RDiv)RDiv.style.background="#FFCC99";
}
}
</script>
</body>
</html>
http://www.cuixiping.com/jsdemo/CrossFrameDrag/Frameset.htm效果截图:
http://www.cuixiping.com/jsdemo/CrossFrameDrag/ScreenShot.gif