Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Про квадрат... 
:(
    Опции темы
Rexar
Дата 3.4.2006, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 14.12.2005

Репутация: нет
Всего: 0



Квадрат разбит на четыре цветовых сектора относительно осей.
При попадании курсора мыши на любой сектор, он должен постепенно
расширяться от центра до определенного размера или до момента
снятия курсора мыши с сектора. По кнопке он должен возвращаться
в начальное состояние.

Подскажите что-то по этому поводу, или киньте ссылку на пример, чтоб посмотреть, если есть конечно...
PM MAIL   Вверх
Ciber SLasH
Дата 4.4.2006, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Можно пойти таким путём:
1) создаём контейер-квадарт DIV
2) запихиваем в него 4 квадрта-DIV'а с нужными цветами
3) по onMouseOver на квадратах запускаем через setInterval функцию, которая будет увеличивать, на какую-то константу, размер текущего квадрата
4) по onMouseOut на квадратах снимаем интервал с помощью clearInterval
PM   Вверх
12345c
Дата 4.4.2006, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Была такая демонстрация на сайте Нетскейпа для NN4 на слоях layer. Но не стоит её искать, легче написать. Это тебе задачку для программирования дали? Тогда посмотри и сделай по-своему smile

Код

<script>ww=0;
ff=function(c1,c2){document.write(c1+'<div style=background-color:wheat;width:100;height:100; onmouseover=wwObj=this;ww=setInterval(ff2,30); onmouseout=clearInterval(ww); onclick=clearInterval(ww);this.style.width=this.style.height=100></div></td>'+c2);}
ff2=function(){wwObj.style.width=wwObj.style.height=parseInt(wwObj.style.width)+1;}
    ff('<table width=100%><tr><td width=50% height=200 align=right valign=bottom>','');
    ff('<td width=50% align=left valign=bottom>','</tr>');
    ff('<tr><td height=200 align=right valign=top>','');
    ff('<td align=left valign=top>','</tr></table>');
</script>



--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Rexar
Дата 4.4.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 14.12.2005

Репутация: нет
Всего: 0



Цитата(12345c @ 4.4.2006, 01:42)
Это тебе задачку для программирования дали?


Ага smile


Короче надо сделать с помощью слоев....
Я написал че-то, но оно ничего не выводит...background и bgcolor по-просту не работают..., как мне вывести 4 квадрата ? Подскажите пожалуйста...
Код

<html>
<head> 
<meta charset="windows-1251">
</head>
<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" bgcolor="">
<layer background="ImagesForlab6/black.JPG" width="70" height="70" name="kv1" z-index="1"> </layer>
<layer background="ImagesForlab6/blue.JPG" width="70" height="70" name="kv2" z-index="2"> </layer> 
<br>
<layer background="ImagesForlab6/green.JPG" width="70" height="70" name="kv3" z-index="3"> </layer>
<layer  background="ImagesForlab6/red.JPG" width="70" height="70" name="kv4" z-index="4"> </layer>
</body>
</html>

PM MAIL   Вверх
dstorm81
Дата 4.4.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



layer?
?? =>z-index="3"
а почему не div
юзай style. так имхо намного проще


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
12345c
Дата 4.4.2006, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Rexar, про layer можно надёжно забыть, они нигде больше не поддерживаются. div и span - это те же слои, если у них position:absolute

...А ты не пробовал запустить мой скрипт ? В моём решении слоёв нет, они бы даже мешали. Просто по постановке позиционировать в потоке (не в слоях) намного проще, не надо вычислять местоположение. Со слоями придётся менять top, left, width, height одновременно.
Цитата(Rexar @ 4.4.2006, 22:39 Найти цитируемый пост)
Короче надо сделать с помощью слоев....
И ни одной таблицы нельзя?

PM WWW   Вверх
Rexar
Дата 5.4.2006, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 14.12.2005

Репутация: нет
Всего: 0



Название лаб. работы: Разработка JavaScript-программы с применением слоев....Думаю, что без слоев не обойтись...

Я че-то не пойму как Div использовать....Как мне просто вывести 4 квадрата(чтоб из них один большой был) с разными цветами ?

Это сообщение отредактировал(а) Rexar - 5.4.2006, 00:19
PM MAIL   Вверх
Rexar
Дата 5.4.2006, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 14.12.2005

Репутация: нет
Всего: 0



Цитата(Ciber SLasH @ 4.4.2006, 00:15 Найти цитируемый пост)
1) создаём контейер-квадарт DIV
2) запихиваем в него 4 квадрта-DIV'а с нужными цветами


Как это реализовать ? Че-то я пытался, но толком ничего не вышло (((

PM MAIL   Вверх
12345c
Дата 5.4.2006, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Дивы запихивать неудобно, потому что они начинаются с новой строки (блочный элемент. А нам же надо их в ряд расположить.

Цитата(Rexar @ 5.4.2006, 00:17 Найти цитируемый пост)
Разработка JavaScript-программы с применением слоев....
Ну логотип на слое выведи в уголке, пусть порадуются smile

Или нет, спроси, сойдёт ли за слой атрибут position:relative . (На самом деле он слой, но фокус в том, что свойство слоя тоже не понадобится.)

Код

<div style="background-color:lightgrey;width=100%;height:200px;text-align:center;">

<span style="position:relative;background-color:wheat;width=100px;height:100px;margin:1px;"></span>
<span style="position:relative;background-color:peachpuff;width=100px;height:100px;margin:1px;"></span><br>
<span style="position:relative;background-color:lightpink;width=100px;height:100px;margin:1px;"></span>

</div>

PM WWW   Вверх
smartov
Дата 5.4.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Цитата(12345c @ 5.4.2006, 09:36 Найти цитируемый пост)
Дивы запихивать неудобно, потому что они начинаются с новой строки (блочный элемент. А нам же надо их в ряд расположить.

Код

<body>
<style>
.line
{
    float:left;
    clear:both;
}
.lineend
{
    float:left;
}
div{
    width:100px;
    height:100px;
    margin:0;
}
.red { background-color: red }
.green { background-color: green }
.blue { background-color: blue }
.orange { background-color: orange }

.square {
    border:1px solid black;
    width:202px;
    text-align:center;
}
</style>
<div class="line square">

<div class="line red">Div1</div><div class="lineend green">Div2</div>
<div class="line blue">Div3</div><div class="lineend orange">Div4</div>

</div>

</body>

PM MAIL   Вверх
Rexar
Дата 5.4.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 14.12.2005

Репутация: нет
Всего: 0



Цитата(Ciber SLasH @ 4.4.2006, 00:15)
3) по onMouseOver на квадратах запускаем через setInterval функцию, которая будет увеличивать, на какую-то константу, размер текущего квадрата
4) по onMouseOut на квадратах снимаем интервал с помощью clearInterval

А что это такое setInterval ? Куда это писать ?
И как изменить размер определенного Div'a если имена не задаються ?
Я сделал как предложил smartov.
Написал в одном Div'e style="height:110; width:110 ", но "эффекта слоев" я не увидел...квардат просто увеличился и все сдвинулось вниз.... Я так понял что нужно сделать чтоб один Div как-бы наложился на остальные, а не тупо увеличился...
Помогите пожалуйста.
PM MAIL   Вверх
12345c
Дата 6.4.2006, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



 Есть в этом коде небольшая ошибка в 1 пиксел, но в остальном работает.
Код
<script>ww=ii=z=0;
ff=function(c1,c2){c=['red','green','blue','yellow'][ii++];c1=c1.replace(/(<td)/,'$1 bgcolor=lightgrey id=ramki'+ii);document.write(c1+'<div id=sqrs'+ii+' style=background-color:'+c+';width:100;height:100;position:absolute; onmouseover=wwObj=this;ww=setInterval(ff2,45);this.style.zIndex=++z; onmouseout=clearInterval(ww); onclick=clearInterval(ww);this.style.width=this.style.height=100;coords();></div></td>'+c2);}
ff2=function(){wwObj.style.width=wwObj.style.height=parseInt(wwObj.style.width)+2;
    wwObj.style.left=parseInt(wwObj.style.left)-1;wwObj.style.top=parseInt(wwObj.style.top)-1;}
    ff('<center><table bgcolor=black><tr><td width=100 height=100 align=right valign=bottom>','');
    ff('<td width=100 align=left valign=bottom>','</tr>');
    ff('<tr><td height=100 align=right valign=top>','');
    ff('<td align=left valign=top>','</tr></table></center>');
coords=function(){for(i=1;i<=4;i++){o=document.getElementById('sqrs'+i);q=document.getElementById('ramki'+i);o.style.left=q.offsetLeft+q.offsetParent.offsetLeft;o.style.top=q.offsetTop+q.offsetParent.offsetTop;}}
onload=coords;
</script>
(это, конечно, не для обучения пример по стилю написания)
Демо - http://js2.ru/example/JsPrimeryCode-81.htm 

Это сообщение отредактировал(а) 12345c - 3.3.2008, 15:30


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Rexar
Дата 6.4.2006, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 14.12.2005

Репутация: нет
Всего: 0



Огромное спасибо, буду разбираться теперь как работает smile
PM MAIL   Вверх
dstorm81
Дата 6.4.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



Код

<html>
<head>
<script>
var r=1;
var tmr,mArr

function growUp()
{
obj1=document.getElementById(growUp.arguments[0]).style
obj2=document.getElementById(growUp.arguments[5]).style
obj3=document.getElementById(growUp.arguments[10]).style
obj4=document.getElementById(growUp.arguments[15]).style
mArr=new Array(obj1,obj2,obj3,obj4)
if(
(parseInt(obj1.width)>20 && parseInt(obj1.height)>20)&&(parseInt(obj2.width)>20 && parseInt(obj2.height)>20) && 
(parseInt(obj3.width)>20 && parseInt(obj3.height)>20)&&(parseInt(obj4.width)>20 && parseInt(obj4.height)>20)
)
    {
    for(i=0;i<mArr.length;i++)
        {
        mArr[i].top=parseInt(mArr[i].top)+growUp.arguments[i*5+1];
        mArr[i].left=parseInt(mArr[i].left)+growUp.arguments[i*5+2];
        mArr[i].width=parseInt(mArr[i].width)+growUp.arguments[i*5+3];
        mArr[i].height=parseInt(mArr[i].height)+growUp.arguments[i*5+4];
        }
    }
else{}
}
</script>

<div  id=sq1 style='position:absolute;top:10px;left:10px;width:100px;height:100px;background-color:green;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px' 
onmouseover=tmr=setInterval('growUp("sq1",0,0,r,r,"sq2",0,r,-r,r,"sq3",r,0,r,-r,"sq4",r,r,-r,-r)',10) 
onmouseout=clearInterval(tmr)></div>
<div  id=sq2 style='position:absolute;top:10px;left:110px;width:100px;height:100px;background-color:red;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px' 
onmouseover=tmr=setInterval('growUp("sq1",0,0,-r,r,"sq2",0,-r,r,r,"sq3",r,0,-r,-r,"sq4",r,-r,r,-r)',10) 
onmouseout=clearInterval(tmr);></div>
<div  id=sq3 style='position:absolute;top:110px;left:10px;width:100px;height:100px;background-color:orange;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px' 
onmouseover=tmr=setInterval('growUp("sq1",0,0,r,-r,"sq2",0,r,-r,-r,"sq3",-r,0,r,r,"sq4",-r,r,-r,r)',10) 
onmouseout=clearInterval(tmr)></div>
<div  id=sq4 style='position:absolute;top:110px;left:110px;width:100px;height:100px;background-color:blue;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px' 
onmouseover=tmr=setInterval('growUp("sq1",0,0,-r,-r,"sq2",0,-r,r,-r,"sq3",-r,0,-r,r,"sq4",-r,-r,r,r)',10) 
onmouseout=clearInterval(tmr)></div>

</body>
</html>

212345c я как понял ему же вроде как в кавдрате изменения нужны, типа один слой увеличивается, другие уменьшаются, вот тоже скриптик свой подкину, правда функцию восстановления до начальных разсеров пока не дописал, думать тяжело что-то

Это сообщение отредактировал(а) dstorm81 - 6.4.2006, 13:34


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
smartov
Дата 6.4.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



dstorm81, ну если брать такой ...хм... немного простоватый подход, то вот с рестором

Код

<html>
<head>
<script>
var r=1;
var tmr,mArr
function restore()
{
obj1=document.getElementById(restore.arguments[0]).style;
obj2=document.getElementById(restore.arguments[1]).style;
obj3=document.getElementById(restore.arguments[2]).style;
obj4=document.getElementById(restore.arguments[3]).style;
mArr=new Array(obj1,obj2,obj3,obj4);
for(var i=0;i<mArr.length;i++) {
    mArr[i].width = '100';
    mArr[i].height = '100';
    mArr[i].top = (i<2) ? '10' : '110';
    mArr[i].left = (i==1 || i==3) ? '110' : '10';

}
}

function growUp()
{
obj1=document.getElementById(growUp.arguments[0]).style
obj2=document.getElementById(growUp.arguments[5]).style
obj3=document.getElementById(growUp.arguments[10]).style
obj4=document.getElementById(growUp.arguments[15]).style
mArr=new Array(obj1,obj2,obj3,obj4)
if(
(parseInt(obj1.width)>20 && parseInt(obj1.height)>20)&&(parseInt(obj2.width)>20 && parseInt(obj2.height)>20) && 
(parseInt(obj3.width)>20 && parseInt(obj3.height)>20)&&(parseInt(obj4.width)>20 && parseInt(obj4.height)>20)
)
    {
    for(i=0;i<mArr.length;i++)
        {
        mArr[i].top=parseInt(mArr[i].top)+growUp.arguments[i*5+1];
        mArr[i].left=parseInt(mArr[i].left)+growUp.arguments[i*5+2];
        mArr[i].width=parseInt(mArr[i].width)+growUp.arguments[i*5+3];
        mArr[i].height=parseInt(mArr[i].height)+growUp.arguments[i*5+4];
        }
    }
else{}
}
</script>
<div  id=sq1 style='position:absolute;top:10px;left:10px;width:100px;height:100px;background-color:green;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px' 
onmouseover=tmr=setInterval('growUp("sq1",0,0,r,r,"sq2",0,r,-r,r,"sq3",r,0,r,-r,"sq4",r,r,-r,-r)',10) 
onmouseout=clearInterval(tmr)></div>
<div  id=sq2 style='position:absolute;top:10px;left:110px;width:100px;height:100px;background-color:red;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px' 
onmouseover=tmr=setInterval('growUp("sq1",0,0,-r,r,"sq2",0,-r,r,r,"sq3",r,0,-r,-r,"sq4",r,-r,r,-r)',10) 
onmouseout=clearInterval(tmr);></div>
<div  id=sq3 style='position:absolute;top:110px;left:10px;width:100px;height:100px;background-color:orange;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px' 
onmouseover=tmr=setInterval('growUp("sq1",0,0,r,-r,"sq2",0,r,-r,-r,"sq3",-r,0,r,r,"sq4",-r,r,-r,r)',10) 
onmouseout=clearInterval(tmr)></div>
<div  id=sq4 style='position:absolute;top:110px;left:110px;width:100px;height:100px;background-color:blue;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px' 
onmouseover=tmr=setInterval('growUp("sq1",0,0,-r,-r,"sq2",0,-r,r,-r,"sq3",-r,0,-r,r,"sq4",-r,-r,r,r)',10) 
onmouseout=clearInterval(tmr)></div>

<input type="button" onclick="restore('sq1','sq2','sq3','sq4')" value="restore" style="position:absolute;top:220px;left:10px;">
</body>
</html>

PM MAIL   Вверх
12345c
Дата 6.4.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



dstorm81, smartov, интересные решения. Понять можно многозначно, как оказывается. Действительно, "он должен постепенно расширяться от центра ", а от какого центра - непонятно. Я понял сначала, что от центра пересечения секторов, потом - что от центра текущего квадрата. А ваши решения от какого центра? smile

Потом можно будет сделать галерею решений, статью к ней написать, положить в "Наши скрипты", например.
PM WWW   Вверх
dstorm81
Дата 6.4.2006, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



он должен постепенно расширяться от центра до определенного размера или до момента
снятия курсора мыши с сектора.
это явно армейская фраза по типу
копайте траншею от меня и до обеда smile



--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
Rexar
Дата 6.4.2006, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 14.12.2005

Репутация: нет
Всего: 0



Работа с DIV.

Это я устанавливаю отступ слева на 100:
document.all["div1"].style.left=100;


ВОПРОС: "как установить Z-INDEX"
document.all["div1"].style.z-index=100; - Не работает.


Это сообщение отредактировал(а) Rexar - 6.4.2006, 23:30
PM MAIL   Вверх
12345c
Дата 6.4.2006, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



document.getElement......().offsetWidth (есть в кодах выше) . Писать же надо в style.width и приписывать 'px' для валидности.
PM WWW   Вверх
Rexar
Дата 7.4.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 14.12.2005

Репутация: нет
Всего: 0



Я сделал эту задачу вот так:

Код

<html>
<head>
<script language="javascript">
function move(obj)
{
doc=document.all[obj].style.width;
r=parseInt(doc);
r=r+2;
document.all[obj].style.width=r;
document.all[obj].style.height=r;
doc=document.all[obj].style.top;
doc=parseInt(doc);
doc=doc-1;
document.all[obj].style.top=doc;
doc=document.all[obj].style.left;
doc=parseInt(doc);
doc=doc-1;
document.all[obj].style.left=doc;
document.all[obj].style.left=doc;
z1=document.all['div1'].style.zIndex;
z2=document.all['div2'].style.zIndex;
z3=document.all['div3'].style.zIndex;
z4=document.all['div4'].style.zIndex;
if (z1>z2) {maxx=z1;} else{maxx=z2;}
if (z3>maxx) {maxx=z3;}
if (z4>maxx) {maxx=z4;}
document.all[obj].style.zIndex=maxx+1;
}
</script>
</head>
<div id="div1" onMouseOver="move('div1')" style="position:absolute; z-index:1; top:100; left:100; background-color:#FF0000; width:100; height:100; "></div> 
<div id="div2" onMouseOver="move('div2')" style="position:absolute; z-index:2; top:100; left:200;background-color:#0000FF; width:100; height:100;"></div> 
<div id="div3" onMouseOver="move('div3')" style="position:absolute; z-index:3; top:200; left:100; background-color:#00CC00; width:100; height:100;"></div> 
<div id="div4" onMouseOver="move('div4')" style="position:absolute; z-index:4; top:200; left:200;background-color:#FFCC00; width:100; height:100;"></div> 
</html>



Только минус один- Когда мышь попадает на поле DIV, то квадратик увеличивается на 1 пиксел...

Вопрос:"Как сделать так, чтобы когда мышь находится на Div'e чтоб выполнялась функция до тех пор, пока мышь не будет убрана с Div'a "


Это сообщение отредактировал(а) Rexar - 7.4.2006, 00:10
PM MAIL   Вверх
smartov
Дата 7.4.2006, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Rexar, ну ты уж товарищ совсем обленился...
Тебе практически готовый код показали... Нужно же и самому думать...
Гугли функцию setInterval
PM MAIL   Вверх
dstorm81
Дата 1.5.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



хотя и поздно ужо, но все таки добил ресторинг, может внукам нашим пригодится? smile
Код

<html>
<head>
<title>::growing and restoring 4 squares::</title>
<script>
var r=1;
var rMin=w=h=0;
var rMax='';
var tmr,mArr,tmr1='';
var spd=10;
function growUp()
{
obj1=document.getElementById(growUp.arguments[0]).style;
obj2=document.getElementById(growUp.arguments[5]).style;
obj3=document.getElementById(growUp.arguments[10]).style;
obj4=document.getElementById(growUp.arguments[15]).style;
mArr=new Array(obj1,obj2,obj3,obj4);
if(
(parseInt(obj1.width)>rMin && parseInt(obj1.height)>rMin)&&(parseInt(obj2.width)>rMin && parseInt(obj2.height)>rMin) && 
(parseInt(obj3.width)>rMin && parseInt(obj3.height)>rMin)&&(parseInt(obj4.width)>rMin && parseInt(obj4.height)>rMin)
)
    {
    for(i=0;i<mArr.length;i++)
        {
        mArr[i].top=parseInt(mArr[i].top)+growUp.arguments[i*5+1];
        mArr[i].left=parseInt(mArr[i].left)+growUp.arguments[i*5+2];
        mArr[i].width=parseInt(mArr[i].width)+growUp.arguments[i*5+3];
        mArr[i].height=parseInt(mArr[i].height)+growUp.arguments[i*5+4];
        }
    }
else{}
}

function restorIng()
{

obj1=document.getElementById(restorIng.arguments[0]).style;
obj2=document.getElementById(restorIng.arguments[9]).style;
obj3=document.getElementById(restorIng.arguments[18]).style;
obj4=document.getElementById(restorIng.arguments[27]).style;
mArr=new Array(obj1,obj2,obj3,obj4);
    for(i=0;i<mArr.length;i++)
    {
    if(parseInt(mArr[i].width)>rMax){mArr[i].left=parseInt(mArr[i].left)+restorIng.arguments[i*9+1];mArr[i].width=parseInt(mArr[i].width)+restorIng.arguments[i*9+2]}
    if(parseInt(mArr[i].width)<rMax){mArr[i].left=parseInt(mArr[i].left)+restorIng.arguments[i*9+3];mArr[i].width=parseInt(mArr[i].width)+restorIng.arguments[i*9+4]}
    if(parseInt(mArr[i].width)==rMax){w=1;}
    if(parseInt(mArr[i].height)>rMax){mArr[i].top=parseInt(mArr[i].top)+restorIng.arguments[i*9+5];mArr[i].height=parseInt(mArr[i].height)+restorIng.arguments[i*9+6]}
    if(parseInt(mArr[i].height)<rMax){mArr[i].top=parseInt(mArr[i].top)+restorIng.arguments[i*9+7];mArr[i].height=parseInt(mArr[i].height)+restorIng.arguments[i*9+8]}
    if(parseInt(mArr[i].height)==rMax){h=1;}
    if((w+h)==2){clearInterval(tmr1)}
    }
}

function doSmall(){w=h=0;tmr1=setInterval('restorIng("sq1",0,-r,0,r,0,-r,0,r,"sq2",r,-r,-r,r,0,-r,0,r,"sq3",0,-r,0,r,r,-r,-r,r,"sq4",r,-r,-r,r,r,-r,-r,r)',spd);}
</script>
</head>
<body onload=rMax=parseInt(document.getElementById('sq1').style.width)>
<div  id=sq1 style='position:absolute;top:10px;left:10px;width:100px;height:100px;background-color:green;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px;' 
onmouseover=clearInterval(tmr1);tmr=setInterval('growUp("sq1",0,0,r,r,"sq2",0,r,-r,r,"sq3",r,0,r,-r,"sq4",r,r,-r,-r)',spd); 
onmouseout=clearInterval(tmr);doSmall()></div>
<div  id=sq2 style='position:absolute;top:10px;left:110px;width:100px;height:100px;background-color:red;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px;' 
onmouseover=clearInterval(tmr1);tmr=setInterval('growUp("sq1",0,0,-r,r,"sq2",0,-r,r,r,"sq3",r,0,-r,-r,"sq4",r,-r,r,-r)',spd);
onmouseout=clearInterval(tmr);doSmall()></div>
<div  id=sq3 style='position:absolute;top:110px;left:10px;width:100px;height:100px;background-color:orange;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px;' 
onmouseover=clearInterval(tmr1);tmr=setInterval('growUp("sq1",0,0,r,-r,"sq2",0,r,-r,-r,"sq3",-r,0,r,r,"sq4",-r,r,-r,r)',spd);
onmouseout=clearInterval(tmr);doSmall()></div>
<div  id=sq4 style='position:absolute;top:110px;left:110px;width:100px;height:100px;background-color:blue;border-width:0;z-index:3;font-size:0px;margin:0px;padding:0px;' 
onmouseover=clearInterval(tmr1);tmr=setInterval('growUp("sq1",0,0,-r,-r,"sq2",0,-r,r,-r,"sq3",-r,0,-r,r,"sq4",-r,-r,r,r)',spd);
onmouseout=clearInterval(tmr);doSmall()></div>

</body>
</html>
 


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0747 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.