Плавно выпадающий Div
если так, то выпадает 1 пиксель блока при нажатии клавиши:
function changeHeight(){ i=0; document.getElementById('Keys1').style.display='bl ock'; ddd=setInterval(stopChange(), 100); } function stopChange(){ i=i+1; document.getElementById('Keys1').style.height=i; if (i == 155) {clearInterval(ddd);} } подскажите, пожалуйста, где ошибка? |
Рустиш, для начала сделай полный пример, а не огрызки...
Возможно из-за этого document.getElementById('Keys1').style.height=i*!*+'px'*/!*; |
щас) дело там не в пикселах. если в первой функции ставлю начальное i=5, то и выпадает на 5 пикселов. вот код более подробный:
<a href="javascript: changeHeight()">Составить заказ</a> <div id="keys1">...</div>- ссылка в главном документе, которая запускает функцию первую, а так же сам раскрывающийся див. #keys1{ width: 150px; height: 0px; overflow:hidden; display: none; background-color: rgba(255, 255, 0, 1); }- описание дива в цсс. function changeHeight(){ i=0; document.getElementById('Keys1').style.display='bl ock'; ddd=setInterval(stopChange(), 100); } function stopChange(){ i=i+1; document.getElementById('Keys1').style.height=i; if (i == 155) {clearInterval(ddd);}- ну и вот, собственно ЯС, сохраненный в отдельном, подключенном к проекту, файле. не наращивается значение i в функции stopChange() при повторном ее вызове через интервал времени 100. |
все, заработало. засунул вторую функцию полностью в первую:
function changeHeight(){ i=0; document.getElementById('Keys1').style.display="block"; ddd=setInterval(function (){i=i+1;document.getElementById('Keys1').style.height = i;if (i >= 155) {clearInterval(ddd);};}, 400); } и апгрейд: <a href="javascript: changeHeight('Keys1',156)">Составить заказ</a> <div id="keys1">...</div> #keys1{ width: 150px; height: 0px; overflow: hidden; background-color: rgba(255, 255, 255, 0); } function changeHeight(divID, normalHeight){ alert(normalHeight); myDiv = document.getElementById(divID); size=normalHeight+'px'; if(myDiv.style.height==''){myDiv.style.height = '0px';}; if(myDiv.style.height=='0px'){i=0; ddd = setInterval(function (){myDiv.style.height = ++i; if (i >= normalHeight) {clearInterval(ddd);};}, 0);} else if(myDiv.style.height==size){{i=normalHeight; ddd = setInterval(function (){myDiv.style.height = --i; if (i <= 0) {clearInterval(ddd);};}, 0);};}; } |
ребят, это опять я... в мазиле список всего один раз открывается и закрывается, во всех остальных браузерах нормально хоть триста раз тыкай, будет работать корректно. что делать? :)
|
Цитата:
|
Цитата:
Цитата:
changeHeight('Keys1',156); function changeHeight(divID, normalHeight) { myDiv = document.getElementById(divID); size = normalHeight + 'px'; if (myDiv.style.height == '') { myDiv.style.height = '0px'; }; if (myDiv.style.height == '0px') { i = 0; ddd = setInterval(function () { *!*myDiv.style.height = ++i;*/!* if (i >= normalHeight) { clearInterval(ddd); }; }, 0); } else if (myDiv.style.height == size) { { i = normalHeight; ddd = setInterval(function () { *!*myDiv.style.height = --i;*/!* if (i <= 0) { clearInterval(ddd); }; }, 0); }; }; } фф не переваривает длины и т.д в css без указания измерения. пиксели надо дописать, как сказал ksa. |
melky, спасибо!
|
Часовой пояс GMT +3, время: 08:29. |