Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2011, 00:44
Аватар для Рустиш
Новичок на форуме
Отправить личное сообщение для Рустиш Посмотреть профиль Найти все сообщения от Рустиш
 
Регистрация: 16.12.2011
Сообщений: 6

Плавно выпадающий 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);}
}
подскажите, пожалуйста, где ошибка?

Последний раз редактировалось Рустиш, 19.12.2011 в 02:57.
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2011, 08:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Рустиш, для начала сделай полный пример, а не огрызки...

Возможно из-за этого
document.getElementById('Keys1').style.height=i*!*+'px'*/!*;
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2011, 11:54
Аватар для Рустиш
Новичок на форуме
Отправить личное сообщение для Рустиш Посмотреть профиль Найти все сообщения от Рустиш
 
Регистрация: 16.12.2011
Сообщений: 6

щас) дело там не в пикселах. если в первой функции ставлю начальное 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.
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2011, 12:06
Аватар для Рустиш
Новичок на форуме
Отправить личное сообщение для Рустиш Посмотреть профиль Найти все сообщения от Рустиш
 
Регистрация: 16.12.2011
Сообщений: 6

все, заработало. засунул вторую функцию полностью в первую:

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);};};
}

Последний раз редактировалось Рустиш, 20.12.2011 в 00:04.
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2011, 23:47
Аватар для Рустиш
Новичок на форуме
Отправить личное сообщение для Рустиш Посмотреть профиль Найти все сообщения от Рустиш
 
Регистрация: 16.12.2011
Сообщений: 6

ребят, это опять я... в мазиле список всего один раз открывается и закрывается, во всех остальных браузерах нормально хоть триста раз тыкай, будет работать корректно. что делать?
Ответить с цитированием
  #6 (permalink)  
Старый 20.12.2011, 09:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Рустиш
что делать?
Начни с тестового примера...
Ответить с цитированием
  #7 (permalink)  
Старый 20.12.2011, 10:25
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Рустиш Посмотреть сообщение
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);}
.
вечная ошибка. скобки не надо писать. скобками вы вызываете функцию, а setTimeout требует функцию как первый аргумент

Сообщение от Рустиш Посмотреть сообщение
ребят, это опять я... в мазиле список всего один раз открывается и закрывается, во всех остальных браузерах нормально хоть триста раз тыкай, будет работать корректно. что делать?
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.
Ответить с цитированием
  #8 (permalink)  
Старый 21.12.2011, 17:46
Аватар для Рустиш
Новичок на форуме
Отправить личное сообщение для Рустиш Посмотреть профиль Найти все сообщения от Рустиш
 
Регистрация: 16.12.2011
Сообщений: 6

melky, спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с div И animate g00000dman jQuery 2 24.03.2011 23:34
Как сделать, чтобы span или div исчезали и появлялись плавно? Бобр Общие вопросы Javascript 30 15.02.2011 19:44
Закрытие прозрачного div при щелчке мыши в любой его области mav1 Элементы интерфейса 8 09.02.2011 19:25
Плавно выпадающий select revvo Элементы интерфейса 1 01.02.2011 16:51
Сделать Плавно выдвигающиеся DIV pavdin Общие вопросы Javascript 2 02.07.2010 16:17