Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2008, 22:45
Аспирант
Отправить личное сообщение для Destrifer Посмотреть профиль Найти все сообщения от Destrifer
 
Регистрация: 29.11.2008
Сообщений: 64

Не работает функция
После скролла списка не срабатывает функция my() (которая убирает его).
Если им не пользоваться все ок.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>

z=250;
b=0;
a=0;
function my2()   
{
	if(z==115) {return};
	a=setTimeout('my2()',10);
    z -= 1;
    document.getElementById("div1").style.top = z + 'px';
}

function my3()   
{
	if(z==250) {return};
	d=setTimeout('my3()',10);
    z += 1;
    document.getElementById("div1").style.top = z + 'px';
}

function my()   
{
	if (a == 0){
	if(b == -164) {a=1; document.getElementById("bt").innerHTML = "&#8594"; return;}
	setTimeout('my()',10);
    b -= 4;
    document.getElementById("div1").style.left = b + 'px';}
	else if (a == 1){
	if (b == 0) {a=0; document.getElementById("bt").innerHTML = "&#8592"; return;}
	setTimeout('my()',10);
    b += 4;
    document.getElementById("div1").style.left = b + 'px';}
}
</script>
<style>
body {
margin:0;
background-color:#333;
}
#div1 {
width: 164px;
position: fixed;
z-index: 1;
}
.div11 {
width: 164px;
position: fixed;
height:136px;
top: 30%;
z-index: 0;
}
.div111 {
width: 164px;
height:136px;
position: fixed;
top: 30%;
z-index: 1;
clip: rect(0 164px 136px 0);
}
#div1 > a {
display: block;
text-decoration: none;
color: #ffffff;
padding: 5px;
background:#212121;
border: 2px ridge #000;
}
#div1 > a:hover {background: #7f7f7f;}
.div3 {
position:absolute;
top:0;
left:50%;
margin-left:-41px;
margin-top:-26px;
}
.div3 a {
text-decoration: none;
color: #ffffff;
border: 2px ridge #000;
background:#212121;
padding: 5px 30px;
}
.div3 a:hover {background: #7f7f7f;}
.div4 {
position:absolute;
left:50%;
top:100%;
margin-left:-41px;
margin-top:7px;
}
.div4 a {
text-decoration: none;
color: #ffffff;
border: 2px ridge #000;
background:#212121;
padding: 5px 30px;
}
.div4 a:hover {background: #7f7f7f;}
#slide {
position:absolute;
right:-30px;
top:50%;
margin-top:-18px;
}
#slide > a {
text-decoration: none;
color: #ffffff;
border: 2px ridge #000;
background:#212121;
padding: 30px 5px;
line-height:36px;
}
#slide > a:hover {background: #7f7f7f;}
</style>
</head>

<body>
<div class="div111">
<div id="div1">
	<a href="#" >111</a>
	<a href="#" >222</a>
	<a href="#" >333</a>
	<a href="#" >444</a>
	<a href="#" >555</a>
	<a href="#" >666</a>
	<a href="#" >777</a>
	<a href="#" >888</a>
</div>
</div>
<div class="div11">
	<div class="div3" onmouseover="my2();" onmouseout='clearTimeout(a);';><a href="#nul">&#8593</a></div>
	<div class="div4" onmouseover="my3();" onmouseout='clearTimeout(d);';><a href="#nul">&#8595</a></div>
	<div id="slide" onclick="my()"><a id='bt' href="#nul">&#8592</a></div>
</div>
<div id='tt'></div>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 06.12.2008, 23:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Destrifer
a=setTimeout('my2()',10);
Сообщение от Destrifer
function my()
{
if (a == 0){
потому что вы одну и ту же переменную используете по принципиально разным надобностям
Ответить с цитированием
  #3 (permalink)  
Старый 06.12.2008, 23:30
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

после вызова ТОЛЬКО прокрутки вниз, скрытие/раскрытие работает нормально

ЗЫ научитесь пользватся
var
. очень полезная штука знаете ли
Ответить с цитированием
  #4 (permalink)  
Старый 06.12.2008, 23:41
Аспирант
Отправить личное сообщение для Destrifer Посмотреть профиль Найти все сообщения от Destrifer
 
Регистрация: 29.11.2008
Сообщений: 64

Цитата:
Сообщение от Destrifer
a=setTimeout('my2()',10);


Сообщение от Destrifer
function my()
{
if (a == 0){


потому что вы одну и ту же переменную используете по принципиально разным надобностям
Ааа, черт... И вроде проверял переменные... век живи век учись... Спасибо
Цитата:
ЗЫ научитесь пользватся var

. очень полезная штука знаете ли
Просто решил съэкономить на синтаксисе... И так всегда работало...
Вроде var указывает на объявление глобальной переменной.
А если без него что, локальная?
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2008, 00:16
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Наоборот с var локальная, без нее в любом контексте - глобальная. Но если var употребляется в глобальном контексте (объект window) то переменная будет глобальной.
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2008, 00:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

наоборот
тут на сайте есть куча ОЧЕНЬ качественных статей, справочник по языку, и еще куча всякого полезного.
все это в вашем распоряжении
Сперва перестаньте экономить время на изучение основ
Сообщение от Destrifer
И так всегда работало...
знаете. в мультике SouthPark, люди научились ректально потреблять пищу, и избавлятся от продуктов ее переработки через рот.
не самый удобный способ, но они находили это приемлимым, и даже крутым.
вы тоже так считаете?
Ответить с цитированием
  #7 (permalink)  
Старый 07.12.2008, 00:40
Аспирант
Отправить личное сообщение для Destrifer Посмотреть профиль Найти все сообщения от Destrifer
 
Регистрация: 29.11.2008
Сообщений: 64

Цитата:
Наоборот с var локальная, без нее в любом контексте - глобальная. Но если var употребляется в глобальном контексте (объект window) то переменная будет глобальной.
Ок, спасибо
Цитата:
наоборот
тут на сайте есть куча ОЧЕНЬ качественных статей, справочник по языку, и еще куча всякого полезного.
все это в вашем распоряжении
Сперва перестаньте экономить время на изучение основ
Грешен, посыпаю голову пеплом...
Цитата:
знаете. в мультике SouthPark, люди научились ректально потреблять пищу, и избавлятся от продуктов ее переработки через рот.
не самый удобный способ, но они находили это приемлимым, и даже крутым.
вы тоже так считаете?
SouthPark я не смотрю, но замечание, конечно, справедливое

Последний раз редактировалось Destrifer, 07.12.2008 в 00:45.
Ответить с цитированием
  #8 (permalink)  
Старый 07.12.2008, 01:13
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Destrifer,
надеюсь все вышеперчесленное пойдет вам на пользу(даже и не сомневаюсь что так и будет), и ваш уровень возрастет.
PS очень рекосендую использовать FireBug под FireFox, для отладки JS
Ответить с цитированием
  #9 (permalink)  
Старый 07.12.2008, 01:34
Аспирант
Отправить личное сообщение для Destrifer Посмотреть профиль Найти все сообщения от Destrifer
 
Регистрация: 29.11.2008
Сообщений: 64

Спасибо, возьму на вооружение
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работает в Mozilla и не работает в IE Maxidrom Events/DOM/Window 4 27.02.2010 16:37
Скрипт не работает в опере, работает в IE XpycTuk Общие вопросы Javascript 9 06.03.2009 15:50
DatePicker не работает при сипользование innerHTML AJlekceu jQuery 2 26.10.2008 17:49
Prototype + Ajax - не работает в IE, FF. silvek Prototype & script.aculo.us 0 30.08.2008 16:06
Код не работает в седьмом Эксплорере... vol4ara Общие вопросы Javascript 0 14.07.2008 18:53