首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

javascript弹出新div层的有关问题

2012-05-08 
javascript弹出新div层的问题这是一个在弹出新div层的代码,新层可以移动,背景变暗。现在的问题是我想在一个

javascript弹出新div层的问题
这是一个在弹出新div层的代码,新层可以移动,背景变暗。现在的问题是我想在一个页面多次调用这个层(我已经在css区分开id层,所以我估计不是<style>标签里的问题),问题来了,我调用的的层弹出来的大小都是和最后一个javascript里面设置的一样,我尝试调换他们的位置,不管怎么调换,弹出来的窗口都是以最后一个的大小一样,而且只有最后那个可以移动,其他的不可以移动了,我觉得是javascript里面判断id的问题,可是这个javascript部分我只找到“鼠标拖动”部分的“fd”可以改,单单改这个没用,请问高手这是怎么回事?我是初学者,很多不懂,完整代码如下:



<!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">
<head><style>
<!--
html,body{
height:100%;
}
* {
padding:0;
margin:0;
}
#upcontent {
list-style-position: outside;
list-style-image: none;
list-style-type: none;
}
#upcontent li {
font-size:12px;
color:#333;
line-height:150%;
}
#bodyL {
float:left;
width:84px;
margin-right:2px;
}
#tittleup {
font-size:14px;
font-weight:bold;
padding-left:25px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #d0daec;
margin-bottom: 10px;
padding-bottom: 10px;
}
a.od {
float:right;
font-size:14px;
text-decoration: none;
}
a.od:hover {
color:#FF0000;
}
#fd {
background:#EDF1F8;
border: 2px solid #849BCA;
margin-top:2px;
margin-left:2px;
float:left;
overflow:hidden;
position:absolute;
left:0px;
top:0px;
cursor:move;
float:left;/*filter:alpha(opacity=50);*/
z-index: 10;
}
.contentup {
padding:20px;
}
}
--></style>
<title>tcc</title>

</head>
<body >
<div id="bodyL"> <a href="#" onclick = "show('fd',event);return false;"> 欢迎</a> </div>
<div id="fd" style="display:none;filter:alpha(opacity=100);opacity:1;">
  <div class="contentup"> <a href="#" class="od" onclick = "closeed('fd');return false;"> 关闭 </a>
  <div id="tittleup">百度</div>
  <ul id="upcontent">
  <li>您现在来到的网站是百度(www.baidu.com),本站热烈欢迎您的到来,谢谢支持我们。</li>
  </ul>
  </div>
</div>
<script> var prox;
  var proy;
  var proxc;
  var proyc;
var isIe=(document.all)?true:false;
function setSelectState(state)
{
var objl=document.getElementsByTagName('select');
for(var i=0;i<objl.length;i++)
{
objl[i].style.visibility=state;
}
}
function mousePosition(ev)
{
if(ev.pageX || ev.pageY)
{
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY + document.body.scrollTop - 

document.body.clientTop
};
}
//关闭
function closeWindow()
{
if(document.getElementById('back')!=null)
{
document.getElementById('back').parentNode.removeChild(document.getElementById('back'));
}
if(document.getElementById('mesWindow')!=null)
{
document.getElementById('mesWindow').parentNode.removeChild(document.getElementById('mesWindow'));
}
if(isIe){
setSelectState('');}
}
  function show(id,ev){/*--打开--*/
closeWindow();
var bWidth=parseInt(document.documentElement.scrollWidth);
var bHeight=parseInt(document.documentElement.scrollHeight)<592?592:parseInt

(document.documentElement.scrollHeight);
if(isIe){
setSelectState('hidden');}
var back=document.createElement("div");
back.id="back";
var styleStr="top:0px;left:0px;position:absolute;background:#666;width:"+bWidth

+"px;height:"+bHeight+"px;";


styleStr+=(isIe)?"filter:alpha(opacity=40);":"opacity:0.40;";
back.style.cssText=styleStr;
document.body.appendChild(back);

  clearInterval(prox);
  clearInterval(proy);
  clearInterval(proxc);
  clearInterval(proyc);
  var o = document.getElementById(id);
  o.style.display = "block";
  o.style.width = "1px";
  o.style.height = "1px"; 
  prox = setInterval(function(){openx(o,500)},10);

  }  
  function openx(o,x){/*--打开x--*/
  var cx = parseInt(o.style.width);
  if(cx < x)
  {
  o.style.width = (cx + Math.ceil((x-cx)/5)) +"px";
  }
  else
  {
  clearInterval(prox);
  proy = setInterval(function(){openy(o,300)},10);
  }
  }  
function openy(o,y){/*--打开y--*/
///  
var cy = parseInt(o.style.height);
  if(cy < y)
  {
  o.style.height = (cy + Math.ceil((y-cy)/5)) +"px";
  }
  else
  {
  clearInterval(proy);  
  }
  }  
  function closeed(id){/*--关闭--*/
closeWindow();
  clearInterval(prox);
  clearInterval(proy);
  clearInterval(proxc);
  clearInterval(proyc);  
  var o = document.getElementById(id);
  if(o.style.display == "block")
  {
  proyc = setInterval(function(){closey(o)},10);  
  }  
  }  
  function closey(o){/*--打开y--*/  
  var cy = parseInt(o.style.height);
  if(cy > 0)
  {
  o.style.height = (cy - Math.ceil(cy/5)) +"px";
  }
  else
  {
  clearInterval(proyc);  
  proxc = setInterval(function(){closex(o)},10);
  }
  }  
  function closex(o){/*--打开x--*/
  var cx = parseInt(o.style.width);
  if(cx > 0)
  {
  o.style.width = (cx - Math.ceil(cx/5)) +"px";
  }
  else
  {
  clearInterval(proxc);
  o.style.display = "none";
  }
  }  
   
   
  /*-------------------------鼠标拖动---------------------*/  
  var od = document.getElementById("fd");  
  var dx,dy,mx,my,mouseD;
  var odrag;
  var isIE = document.all ? true : false;
  document.onmousedown = function(e){
  var e = e ? e : event;
  if(e.button == (document.all ? 1 : 0))
  {
  mouseD = true;  
  }
  }
  document.onmouseup = function(){
  mouseD = false;
  odrag = "";
  if(isIE)
  {
  od.releaseCapture();
  od.filters.alpha.opacity = 100;
  }
  else
  {
  window.releaseEvents(od.MOUSEMOVE);
  od.style.opacity = 1;
  }  
  }


  //function readyMove(e){  
  od.onmousedown = function(e){
  odrag = this;
  var e = e ? e : event;
  if(e.button == (document.all ? 1 : 0))
  {
  mx = e.clientX;
  my = e.clientY;
  od.style.left = od.offsetLeft + "px";
  od.style.top = od.offsetTop + "px";
  if(isIE)
  {
  od.setCapture();  
  od.filters.alpha.opacity = 50;
  }
  else
  {
  window.captureEvents(Event.MOUSEMOVE);
  od.style.opacity = 0.5;
  }
   
  //alert(mx);
  //alert(my);
   
  } 
  }
  document.onmousemove = function(e){
  var e = e ? e : event;
   
  //alert(mrx);
  //alert(e.button);  
  if(mouseD==true && odrag)
  {  
  var mrx = e.clientX - mx;
  var mry = e.clientY - my;  
  od.style.left = parseInt(od.style.left) +mrx + "px";
  od.style.top = parseInt(od.style.top) + mry + "px";  
  mx = e.clientX;
  my = e.clientY;
   
  }
  }
function showBackground(obj,endInt)
{
obj.filters.alpha.opacity+=1;
if(obj.filters.alpha.opacity<endInt)
{
setTimeout(function(){showBackground(obj,endInt)},8);
}
}// JavaScript Document</script>
</body>
</html>


[解决办法]
效果很好。就是代码看不懂 新手中的新手
[解决办法]

探讨
我调用的的层弹出来的大小都是和最后一个javascript里面设置的一样,我尝试调换他们的位置,不管怎么调换,弹出来的窗口都是以最后一个的大小一样,而且只有最后那个可以移动,其他的不可以移动了,我觉得是javascrip……

[解决办法]
我也希望学习一下,没看太懂,效果挺好的,坐等高人解释。
[解决办法]
把你有问题的代码贴出来!
[解决办法]
我大概猜到你的问题了,你给的代码,和你想描述的问题不一致,这样大家都不好帮你。
我猜,你在重新打开窗口的时候并没有重新定义单出窗口的位置信息,以致二次打开都是上次关闭的位置信息。
[解决办法]
还有一点就是,你多次设置、弹出的层都是fd吗?如果是这样,建议你动态的创建fd弹出层
[解决办法]
试试这个吧,
那一个多么哭逼的调用。
http://www.cnblogs.com/jikey/archive/2012/03/19/2406119.html
[解决办法]
这么长的代码,全部都要自己手工输入么。。。。。。。

热点排行