有一段js创建div随鼠标移动的代码,应用的时候出了点问题:div的宽度不能限制,求js高手帮我改改,谢谢了先。代码如下:
//随鼠标提示信息
//使用方法:例如: onmouseover="wsug(event, '芯晴网页特效<br />本站地址:www.CsrCode.cn')" onmouseout="wsug(event, 0)"
function wsug(e, str){
 var oThis = arguments.callee;
 if(!str) {
  oThis.sug.style.visibility = 'hidden';
  document.onmousemove = null;
  return;
 }   
 if(!oThis.sug){
  var div = document.createElement('div'), css = 'top:0; left:0; position:absolute; width:20px z-index:100; visibility:hidden';
  div.style.cssText = css;
  div.setAttribute('style',css);
  var sug = document.createElement('div'), css= 'font:normal 12px/16px "宋体";width:20px; white-space:nowrap; color:#666; padding:3px; position:absolute; left:0; top:0; z-index:10; background:#f9fdfd; border:1px solid #0aa';
  sug.style.cssText = css;
  sug.setAttribute('style',css);
  var dr = document.createElement('div'), css = 'position:absolute; top:3px; left:3px; background:#333; filter:alpha(opacity=50); opacity:0.5; z-index:9';
  dr.style.cssText = css;
  dr.setAttribute('style',css);
  var ifr = document.createElement('iframe'), css='position:absolute; left:0; top:0; z-index:8; filter:alpha(opacity=0); opacity:0';  
  ifr.style.cssText = css;
  ifr.setAttribute('style',css);
  div.appendChild(ifr);
  div.appendChild(dr);
  div.appendChild(sug);
  div.sug = sug;
  document.body.appendChild(div);
  oThis.sug = div;
  oThis.dr = dr;
  oThis.ifr = ifr;
  div = dr = ifr = sug = null;
 }
 var e = e || window.event, obj = oThis.sug, dr = oThis.dr, ifr = oThis.ifr;
 obj.sug.innerHTML = str;
 var w = obj.sug.offsetWidth, h = obj.sug.offsetHeight, dw = document.documentElement.clientWidth||document.body.clientWidth; dh = document.documentElement.clientHeight || document.body.clientHeight;
 var st = document.documentElement.scrollTop || document.body.scrollTop, sl = document.documentElement.scrollLeft || document.body.scrollLeft;
 var left = e.clientX +sl +17 + w < dw + sl && e.clientX + sl + 15 || e.clientX +sl-8 - w, top = e.clientY + st + 17;
 obj.style.left = left+ 10 + 'px';
 obj.style.top = top + 10 + 'px';
 dr.style.width = w + 'px';
 dr.style.height = h + 'px';
 ifr.style.width = w + 3 + 'px';
 ifr.style.height = h + 3 + 'px';
 obj.style.visibility = 'visible';
 document.onmousemove = function(e){
  var e = e || window.event, st = document.documentElement.scrollTop || document.body.scrollTop, sl = document.documentElement.scrollLeft || document.body.scrollLeft;
  var left = e.clientX +sl +17 + w < dw + sl && e.clientX + sl + 15 || e.clientX +sl-8 - w, top = e.clientY + st +17 + h < dh + st && e.clientY + st + 17 || e.clientY + st - 5 - h;
  obj.style.left = left + 'px';
  obj.style.top = top + 'px';
 }
}

解决方案 »

  1.   

    var sug = document.createElement('div'), css= 'font:normal 12px/16px "宋体";width:400px;
      

  2.   

    我刚才试试了一次 是因为div里面的文字太多了 才把div撑大了  能怎么让文字自动换行咧?
      

  3.   

    div是没法文字自动换行的,td 可以,设定好td的宽度,如果超过,td会自动换行
      

  4.   

    那怎么办?  div都从页面溢出了?  
      

  5.   

    可以这样,你div设定好宽度,然后里边放个table,width="100%",高度让他自己调去呗
    <div style="width:300px;overflow:auto;height:200px">
    <table>...</table>
    </div>
      

  6.   

    问题解决了  谢谢各位帮助    是white-space:nowrap;限制了换行