PDA

View Full Version : Script isn't working, any help would be appreciated.


rlemon
06-10-2005, 02:17 PM
<script>
function show(id,top){
var txt = document.getElementById(id);
var parent = document.getElementById(top);
var current = (txt.style.display == 'block') ? 'none' : 'block';
txt.style.display = current;
if(current == 'block'){
show_open(id);
} else {
show_close(id);
}

}
var open_ctr=0;
var close_ctr;
function show_open(id){
open_ctr++;
var txt = document.getElementById(id);
txt.style.display = 'block';
txt.style.height = open_ctr+"px";
if(open_ctr <=100){
var oto = setTimeout( function () { show_open(id) }, 25);
} else {
clearTimeout(oto);
close_ctr=open_ctr;
return;
}
return;
}
function show_close(id){
close_ctr--;
var txt = document.getElementById(id);
txt.style.height = close_ctr+"px";
if(close_ctr >=1){
var cto = setTimeout( function () { show_close(id) }, 25);
} else {
clearTimeout(cto);
txt.style.display = 'none';
close_ctr = 0;
open_ctr = 0;
return;
}
return;
}
</script>
<style>
.txt {
display: none;
position: relative;
height:1px;
overflow: auto;
}
</style>


and


<div id="t1" onclick="show('txt1',this.id)">title #1</div>
<div class="txt" id="txt1">
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.

</div>
<div id="t2" onclick="show('txt2',this.id)">title #2</div>
<div class="txt" id="txt2">
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.

</div>
<div id="t3" onclick="show('txt3',this.id)">title #3</div>
<div class="txt" id="txt3">
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.
Ut purus neque, varius vel, sodales eget, interdum ut, sem. Etiam mi purus, ullamcorper id, tincidunt id, commodo ut, lectus. Quisque nisl. Suspendisse et enim. Nam erat. Quisque molestie ipsum volutpat nibh. In diam est, tincidunt in, sagittis ac, malesuada id, lectus. Fusce quis lacus. Duis sodales ultricies massa. Duis et leo non augue blandit commodo. Aliquam consectetuer. Aliquam vehicula metus vitae nulla. Vestibulum eget risus. Proin ac sapien.

</div>

rlemon
06-10-2005, 02:18 PM
for me in Mozilla it's opening correctly the first time, then all is lost. :confused:

Kor
06-10-2005, 02:53 PM
try:

setTimeout('show_close('+id+')', 25)

glenngv
06-10-2005, 03:15 PM
You are not resetting the open_ctr variable to 0.

function show(id,top){
var txt = document.getElementById(id);
var parent = document.getElementById(top);
var current = (txt.style.display == 'block') ? 'none' : 'block';
txt.style.display = current;
open_ctr=0;
if(current == 'block'){
show_open(id);
} else {
show_close(id);
}

}

Harry Armadillo
06-10-2005, 03:21 PM
And you're using only a single pair of open_ctr and close_ctr for multiple divs. Your oto and cto are bad too -- they're local variables, won't be around long enough to be useful. Try thisfunction show(id,top){
var txt = document.getElementById(id);
clearTimeout(txt.to);
if(txt.style.display != 'block'){
txt.style.display = 'block';
show_open(id);
}
else {
show_close(id);
}

}
function show_open(id){
var txt = document.getElementById(id);
open_ctr=(parseInt(txt.style.height)||0)+1;
txt.style.height = open_ctr+"px";
if(open_ctr <=100){
txt.to = setTimeout('show_open("'+id+'")', 25);
}
return;
}
function show_close(id){
var txt = document.getElementById(id);
close_ctr=parseInt(txt.style.height)-1;
txt.style.height = close_ctr+"px";
if(close_ctr >=1){
txt.to = setTimeout('show_close("'+id+'")', 25);
}
else {
txt.style.display = 'none';
}
return;
}

rlemon
06-10-2005, 04:54 PM
You are not resetting the open_ctr variable to 0.

function show(id,top){
var txt = document.getElementById(id);
var parent = document.getElementById(top);
var current = (txt.style.display == 'block') ? 'none' : 'block';
txt.style.display = current;
open_ctr=0;
if(current == 'block'){
show_open(id);
} else {
show_close(id);
}

}
i am later down.
look in the other function