Плавно выпадающий 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, время: 14:49. |