dポイントプレゼントキャンペーン実施中!

アコーディオンメニューを設置したのですか、開いた時にすべてが表示されずに下部がきれてしまします。
どこかに高さを制限しているところがあるのでしょうか?
知識が無く、いろいろ調べてみたりしたのですがわかりません。
どなたか教えていただけませんでしょうか?

-------------script.js----------------

var accordion=function(){
var tm=sp=10;
function slider(n){this.nm=n; this.arr=[]}
slider.prototype.init=function(t,c,k){
var a,h,s,l,i; a=document.getElementById(t); this.sl=k?k:'';
h=a.getElementsByTagName('dt'); s=a.getElementsByTagName('dd'); this.l=h.length;
for(i=0;i<this.l;i++){var d=h[i]; this.arr[i]=d; d.onclick=new Function(this.nm+'.pro(this)'); if(c==i){d.className=this.sl}}
l=s.length;
for(i=0;i<l;i++){var d=s[i]; d.mh=d.offsetHeight; if(c!=i){d.style.height=0; d.style.display='none'}}
}
slider.prototype.pro=function(d){
for(var i=0;i<this.l;i++){
var h=this.arr[i], s=h.nextSibling; s=s.nodeType!=1?s.nextSibling:s; clearInterval(s.tm);
if(h==d&&s.style.display=='none'){s.style.display=''; su(s,1); h.className=this.sl}
else if(s.style.display==''){su(s,-1); h.className=''}
}
}
function su(c,f){c.tm=setInterval(function(){sl(c,f)},tm)}
function sl(c,f){
var h=c.offsetHeight, m=c.mh, d=f==1?m-h:h; c.style.height=h+(Math.ceil(d/sp)*f)+'px';
c.style.opacity=h/m; c.style.filter='alpha(opacity='+h*100/m+')';
if(f==1&&h>=m){clearInterval(c.tm)}else if(f!=1&&h==1){c.style.display='none'; clearInterval(c.tm)}
}
return{slider:slider}
}();

-----------------------------------------

-----------style.css--------------------------

* {margin:0; padding:0}


#accordion2 {width:180px; margin:10px auto; border:0px solid #000; border-top:none}
.accordion2 {width:180px; font:10px Verdana,Arial; color:#fff}
.accordion2 dt {width:180px; border-top:0px solid #333}
.accordion2 dt:hover {background-color:#fff}
.accordion2 .open {background-color:#fff}
.accordion2 dd {overflow:hidden; background:#fff}
.accordion2 span {display:block; width:180px; border-top:none; padding:0px}

----------------------------------------

A 回答 (1件)

回答がないみたいなので…



よくわかりませんが、initの時点で対象要素のoffsetHeightを取得しているようです。

スクリプトをはずした場合に正しく(全部)表示できていますか?
floatなどの影響で高さが要素に反映されていないようなことがないでしょうか?
あるいは、init後にddに内容を加えたりしている場合、正しくレンダリングできるはずであっても(↑)で高さを取得済みのため反映されません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
勉強不足を痛感いたしました。
再度作り直してみます。

お礼日時:2011/01/18 16:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!