alert(document.getElementById("a").scrollHeight); // IE6sp1 186 FF2.0 196
找到一个有数滴,哈lz试试看
<!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>
    <title> new document </title>
    <meta name="generator" content="editplus" />
    <meta name="author" content="Gao YiXiang" />
    <meta name="email" content="[email protected]" />
    <meta name="keywords" content="javascript dhtml dom" />
    <meta name="description" content="I love web development." />
<style type="text/css">
<!--
.a
{
    border: 1px dotted red;
    width:190px; 
    height:95px; 
    overflow:hidden;
}
.a ul 
{
    margin:0px;
    padding:0px;
    list-style:none;
}
.a li 
{
    display:block; 
    float:left; 
    width:95px; 
    text-align:center
}
//-->
</style>
</head>
<body>
    <div id="a" class="a">
      <div id="b">
          <ul>
            <li><img src="green_2003.jpg" width="90" height="75" /><br>图片名称</li>
            <li><img src="green_2003.jpg" width="90" height="75" /><br>图片名称</li>
            <li><img src="green_2003.jpg" width="90" height="75" /><br>图片名称</li>
            <li><img src="green_2003.jpg" width="90" height="75" /><br>图片名称</li>
          <ul>
      </div>
    </div>
<script type="text/javascript">
<!--
alert(document.getElementById("b").offsetHeight); // IE6sp1 186 FF2.0 0
alert(document.getElementById("a").scrollHeight); // IE6sp1 186 FF2.0 196
//-->
</script></body>
</html>

解决方案 »

  1.   

    刚刚遍历所有属性和样式,FF下只有a的scrollHeight属性可用!
    至于为啥相差10,俺就说不清了FF2.0下a相关height属性scrollHeight : 196
    clientHeight : 95
    offsetHeight : 97
    IE6sp1下a相关height属性scrollHeight : 186
    clientHeight : 95
    offsetHeight : 97
      

  2.   

    to: yixianggao 
    我是说B的值取不到,不管是scrollHeight还是offsetHeight,因为要做滚动,光A不行to: yixianggao 
    是的,两种游览器取得值有差别,也不知道为什么,用了float后就没值了
    如果去掉图片或用table来替代li,每行N个,这样似乎就正常了(数值如你所说有差别)
    但我的项目中要求图和文一起显示
    还有没有更好的办法,请大家帮忙测试一下,这问题我弄了几天,还是没有解决办法
      

  3.   

    我是做后台的,但这个项目客户要求前台用DIV+CSS来设计,公司没其他人懂,所以只好我来弄
    我搜索了很多网站,没找到符合这样显示效果的网页,麻烦大家给找一下,非常感谢
    我感觉还是用css能解决的,现在问题就出在float上,不用它,排版效果就不行,用了它JS方面值就不对了
    但我想了几天也没想出css排版方面其他设计方法
      

  4.   


    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>shawl.qiu template</title>
    <style type="text/css">
    /* <![CDATA[ *//* ]]> */
    </style>
    <script type="text/javascript">
    /*<![CDATA[*/
     if (navigator.appName=="Microsoft Internet Explorer") 
     {
      //最大化窗口
      self.moveTo(-5,-5)
      self.resizeTo(screen.availWidth +8,screen.availHeight+8)
      //这个脚本定义的宽度其实比原窗口还要大那么一点.
     }
    /*]]*/
    </script>
    </head>
    <body>
    <style type="text/css">
    <!--
    .a {width:190px; height:95px; overflow:hidden;}
    .a ul {margin:0px; padding:0px; list-style:none}
    .a li {display:block; float:left; width:95px; text-align:center}
    -->
    </style>
    <div id="a" class="a">
      <div id="b">
          <ul>
            <li><img src="aaa.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="aaa.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="aaa.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="aaa.gif" width="90" height="75" /><br>图片名称</li>
          <ul>
      </div>
    </div>
    <script type="text/javascript">
    <!--
     var b = document.getElementById("b");
     var iWidth = b.offsetWidth;
     if(fCkBrs()!==1)
     {
      iWidth = parseInt(fGetStyle(b, "width"));
     }
     
     defaultStatus = iWidth;
     
    function fGetStyle(Ele, sStyle)
    { // shawl.qiu code, return string; Func: fCkBrs, fRgbToHex
     var Brs = fCkBrs(); 
     if(Brs===3||Brs===2)
     {
      var sReturn = getComputedStyle(Ele, null)[sStyle];
      if(/\brgb\b/i.test(sReturn))
      {
       return fRgbToHex(sReturn);
      }
      return sReturn;
     }
     else return Ele.currentStyle[sStyle];
    } // end function fGetStyle(Ele, sStyle)
     
    function fCkBrs()
    {// shawl.qiu script
     switch (navigator.appName)
     {
      case 'Opera': return 2;
      case 'Netscape': return 3;
      default: return 1;
     }
    } // end function fCkBrs function fRgbToHex(sRgb, bNoSharp, bDebug)
    { // shawl.qiu code, return string; Func: fPadStr
     if(!sRgb||sRgb=="") throw new Error("RGB颜色代码不正确!");
     var Debug = bDebug;
     
     var sSharp = "";
     if(!bNoSharp) sSharp = "#";
     if(/rgb\(/i.test(sRgb))
     {
      sRgb = sRgb.replace(/^[\s\S]*?rgb\((.*?)\)[\s\S]*/gi, "$1").replace(/\s+/g, "");
     }
     var RgbAr = sRgb.split(",");
     var sReturn =
      [
      sSharp
      ,(fPadStr((RgbAr[0]-0).toString(16)).toUpperCase())
      ,(fPadStr((RgbAr[1]-0).toString(16)).toUpperCase())
      ,(fPadStr((RgbAr[2]-0).toString(16)).toUpperCase())
      ].join("");
     
     if(Debug)alert(sReturn);
     
     return sReturn;
    } // end function fRgbToHex(sRgb, bNoSharp, bDebug)
     
    function fPadStr(sSrc, sPad, nLen)
    {// shawl.qiu script, return string
     if(!sSrc)return false;
     if(!sPad)sPad='0';
     if(!nLen)nLen=2;
     sSrc+='';
     if(sSrc.length>=nLen)return sSrc;
     sPad=new Array(nLen+1).join(sPad);
     var re=new RegExp('.*(.{'+(nLen)+'})$');
     return (sPad+sSrc).replace(re,'$1');
    } // end function fPadStr
    //-->
    </script>
    </body>
    </html>
      

  5.   

    <style type="text/css">
    <!--
    .a {width:190px; height:95px; overflow:hidden;}
    .a ul {margin:0px; padding:0px; list-style:none}
    .a li {display:block; float:left; width:95px; text-align:center}
    #b{height:30px;} //假定是30px
    -->
    </style>
    <div id="a" class="a">
      <div id="b">
          <ul>
            <li><img src="aaa.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="aaa.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="aaa.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="aaa.gif" width="90" height="75" /><br>图片名称</li>
          <ul>
      </div>
    </div>
    <script type="text/javascript">
    <!--
    alert(document.getElementById("b").offsetHeight);
    //-->
    </script>
    因为没有定义所以得到的是0
    FF就是这样你不定义他就是0,你可以用FF的DOM查看器查看
      

  6.   

    <style type="text/css">
    <!--
    .a1 {width:190px; height:95px; overflow:hidden;}
    .a1 ul {margin:0px; padding:0px; list-style:none}
    .a1 li {display:block; float:left; width:95px; text-align:center}
    -->
    </style><div id="a" class="a1">
      <div id="b">
          <ul>
            <li><img src="1.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="1.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="1.gif" width="90" height="75" /><br>图片名称</li>
            <li><img src="1.gif" width="90" height="75" /><br>图片名称</li>
          <ul>
      <div style="clear:both"></div>
      </div>
    </div><script>
    alert(document.getElementById("b").offsetHeight);
    </script>
      

  7.   

    这个其实是模型的问题
    用css处理就好了
      

  8.   

    lz干嘛在3楼吐俺两次?!to ljupin
    b值可以取到了。to ljupin
    高度差别已经消除了,现在IE6和FF2下高度已经一致了,不过无关紧要!俺也吐了lz两次,哈无缝图片滚动 IE6sp1, FF2.0 测试可用!lz看看满意不?!L@_@K
    <!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>
        <title>dhtml.div.customizeMarquee.html</title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="Gao YiXiang" />
        <meta name="email" content="[email protected]" />
        <meta name="keywords" content="javascript dhtml dom" />
        <meta name="description" content="I love web development." />
    <style type="text/css">
    <!--
    .a
    {
        position: relative;
        width: 190px;
        height: 95px;
        overflow:hidden;
    }
    .a ul
    {
        margin:0px;
        padding:0px;
        list-style:none;
    }
    .a li
    {
        display:block;
        float: left;
        width:95px;
        text-align:center
    }
    .b
    {
        position: relative;
        top: 0px;
        float: left;
        background-color: yellow;
        font-size: 14px;
        line-height: 20px;
    }
    img
    {
        float: left;
    }#divOutput
    {
        display: none;
        padding: 5px 5px 5px 5px;
        margin-top: 10px;
        background-color: black;
        color: white;
    }
    //-->
    </style>
    <script type="text/javascript">
    <!--// Unit: MilliSecond.
    var iInterval = 50;
    // Unit: pixel.
    var iDistance = 1;var eTarget;
    var iHeight;
    var iTimerID;function startMarquee()
    {
        eTarget = document.getElementById("b");
        iHeight = eTarget.offsetHeight;    var eClone = eTarget.getElementsByTagName("ul")[0].cloneNode(true);
        eTarget.appendChild(eClone);    iTimerID = setInterval(moveUp,iInterval);    eTarget.onmouseover = function()
        {
            clearInterval(iTimerID);
        };    eTarget.onmouseout = function()
        {
            iTimerID = setInterval(moveUp,iInterval);
        };
    }function moveUp()
    {
        var top = parseInt(eTarget.style.top);
        if (isNaN(top)) top = 0;
        else if (top == -iHeight) top = 0;    eTarget.style.top = (top-iDistance) + "px";
    }//-->
    </script>
    </head>
    <body onload="startMarquee()">
        <h3>无缝图片滚动 IE6sp1, FF2.0 测试可用!</h3>
        <div id="a" class="a">
            <div id="b" class="b">
              <ul>
                <li><img src="green_2003.jpg" width="90" height="75" /><br />图片名称1</li>
                <li><img src="green_2003.jpg" width="90" height="75" /><br />图片名称2</li>
                <li><img src="green_2003.jpg" width="90" height="75" /><br />图片名称3</li>
                <li><img src="green_2003.jpg" width="90" height="75" /><br />图片名称4</li>
              <ul>
            </div>
        </div>
        <div id="divOutput"></div><script type="text/javascript">
    <!--
    function showHeight()
    {
        var b = document.getElementById("b");
        var info = "";
        for (var p in b)
        {
            if (p.indexOf("Height")>-1 || p.indexOf("height")>-1)
            {
                info += p + " : " + b[p] + "<br />";
            }
        }
        
        var output = document.getElementById("divOutput");
        output.style.display = "block";
        output.innerHTML = info;   
    }
    showHeight();//-->
    </script></body>
    </html>
      

  9.   

    补充一句:这是俺写滴第一段兼容FF滴js!
      

  10.   

    用scrollTop属性
    可以参考石头君写的滚动...http://topic.csdn.net/u/20071109/13/82853946-dff7-429f-ad90-30dfee33d7e6.html
      

  11.   

    不好意思,这段时间一直忙,没顾上来,上面的问题已解决,没用li,改用div对此重写JS,封装了一下,现在通过调用参数可以随意支持上下左右滚动,反复测试了N天,IE和FF下都正常感谢大家的回复,至于li方式还是没解决,有空我再研究各位的回复