[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Всплывающее меню при наведении на ссылку
Golovastik
Не работает всплывающее меню при наведении на ссылку, что делать?

<html><head>
<title>
Тренировочный документ</title>
<script
type='text/javascript'>

var
bounty_obj;
window.onload =
bounty_obj = document.getElementById('hint');

function bounty_show() {
if (bounty_hide.T) {
clearTimeout(bounty_hide.T);
bounty_hide.T = 0;
};
bounty_obj.style.display = 'block';
};

function bounty_hide() {
if (bounty_hide.T) {
clearTimeout(bounty_hide.T);
bounty_hide.T = 0;
};
bounty_hide.T = setTimeout(function(){
bounty_obj.style.display = 'none';
bounty_hide.T = 0;
}, 4000);
};

</script>
</head>
<body>

<a
href='page.html' onMouseOver='bounty_show()' onMouseOut='bounty_hide()'>Переход в будующее</a>
<div
id="hint" style="display:none"><img src='1.gif' alt=''></div>

</body>
</html>





Спустя 9 минут (10.08.2010 - 23:28) Lenarfate написал(а):
на jquery попробуй, проще раз в сто. вот например
http://anton.shevchuk.name/javascript/jque...or-beginners-2/

Спустя 1 час, 22 минуты, 3 секунды (11.08.2010 - 00:50) Golovastik написал(а):
А на JavaScript кто-нибудь знает?

Спустя 15 секунд (11.08.2010 - 00:50) Lenarfate написал(а):
это и есть javascript

Спустя 39 секунд (11.08.2010 - 00:51) Lenarfate написал(а):

Спустя 6 часов, 54 минуты, 39 секунд (11.08.2010 - 07:45) Nord написал(а):
Вот эти строчки смущают:

window.onload =
bounty_obj = document.getElementById('hint');

Здесь, я думаю, имелось в виду:

window.onload = function(){
bounty_obj = document.getElementById('hint');
}

Спустя 6 часов, 24 минуты, 21 секунда (11.08.2010 - 14:10) Golovastik написал(а):
Да, точно.
Ещё момент, скажите как сделать, чтоб картинка выехала, постояла 2 секунда и опять заехала. Думаю что цикл нужен и смена координат за кадой итераций, но как именно это в коде написать не знаю. Подскажите как это сделать. Заранее
благодарю.

Спустя 31 минута, 5 секунд (11.08.2010 - 14:41) Lenarfate написал(а):
заходишь на офф сайт jquery там все очень подробно

Спустя 16 минут, 24 секунды (11.08.2010 - 14:57) Golovastik написал(а):
А без jquery, подскажите ,как на чисто JAvaScript сделать?

Спустя 1 минута, 48 секунд (11.08.2010 - 14:59) Lenarfate написал(а):
задолбаешься.если конечно ты знаешь js на среднем уровне хотя бы, то не так сложно

Спустя 55 минут, 36 секунд (11.08.2010 - 15:54) Golovastik написал(а):
Если кто знает напишите хоть примерно как это реализовывается на джаваскрипте.

Спустя 58 минут, 5 секунд (11.08.2010 - 16:53) Golovastik написал(а):

По поводу предыдущего кода:
В функции bounty_show()
Там делается сравнение
if (bounty_hide.T) {
clearTimeout(bounty_hide.T);
bounty_hide.T = 0;


Что будет означать вот это с точкой bounty_hide.T в сравнении?
Это значит доступ через мою созданную функцию с именем bounty_hide к какой-то другой переменной находящейся в другой функции что ли?
Меня смущает .Т, почему она может ещё и добавлятся к названию любой функции где угодно?

Спустя 21 минута, 32 секунды (11.08.2010 - 17:14) Lenarfate написал(а):
напишем, скока заплатишь biggrin.gif biggrin.gif

Спустя 19 часов, 46 минут, 6 секунд (12.08.2010 - 13:00) Golovastik написал(а):
Вот так вроде меньше код.

<html><head>
<title>
Тренировочный документ</title>
<script
type='text/javascript'>
var
bounty_obj;
window.onload = function(){
bounty_obj = document.getElementById('hint');
}

function bounty_show() {
bounty_obj.style.display = 'block';
};
function bounty_hide() {
setTimeout(function(){
bounty_obj.style.display = 'none';
}, 4000);
};
</script>
</head>
<body

<a href='page.html' onMouseOver='bounty_show()' onMouseOut='bounty_hide()'>Переход в будующее</a>
<div
id="hint" style="display:none"><img src='1.gif' alt='Информация'></div>
</body>
</html>


Спустя 2 часа, 6 минут, 32 секунды (12.08.2010 - 15:07) ilystone написал(а):
Golovastik

Че хоть ты пристал к базовому JS?? Умные дяди специально придумали фреймворк JQuery как-раз для таких вещей. Если с английским не туго - посмотри серию вот тут http://blog.themeforest.net/screencasts/jq...s-video-series/

Все равно придется юзать Jquery, как не крути

Спустя 5 часов, 46 минут, 10 секунд (12.08.2010 - 20:53) Golovastik написал(а):
Не ясно место:

1)То есть если свойство с именем Т которое получило значение от анонимной функции, то есть если оно его получило,которая что-то возвратила не равна нулю, а чему-то равна? Вот это имеется ввиду в этом месте?
if (bounty_hide.T) {

2)Как можно обращаться к свойству Т, если оно определено ниже, а сравнение идёт выше, использование свойства с именем Т, объекта bounty_hide


3)Что означает .Т - это свойство объекта bounty_hide?

Спустя 35 минут, 49 секунд (12.08.2010 - 21:29) Nord написал(а):
Цитата
2)Как можно обращаться к свойству Т, если оно определено ниже, а сравнение идёт выше, использование свойства с именем Т, объекта bounty_hide

Все не инициализированные переменные в js возвращают специальное значение undefined, которое при сравнении преобразуется в false
Цитата
3)Что означает .Т - это свойство объекта bounty_hide?

Мне кажется, это что-то типа статической переменной функции

Спустя 3 дня, 19 часов, 51 минута, 49 секунд (16.08.2010 - 17:21) Golovastik написал(а):
Вот упрощённый код:

<html>
<head><title>
Document</title>
<script
type='text/javascript'>
var
a,timeoutik;

function f1(){
if(timeoutik){
clearTimeout(timeoutik);
timeoutik = 0;
};
if(!a) a = document.getElementById('tik_tak');
a.style.display = 'block';
};

/*_____________________________________________________________*/

function f2(){
if(timeoutik){
clearTimeout(timeoutik);
timeoutik = 0;
};

timeoutik = setTimeout(function(){
if(!a) a = document.getElementById('tik_tak');
a.style.display = 'none';
},2000);

};
</script>

</head>
<body>
<a
href='page.html' onMouseOver='f1()' onMouseOut='f2()'>Жми на меня</a>
<div
id="tik_tak" style="display:none;
position:absolute; left:10px; top:35px;"
>
<img
src='1.gif' alt='фотка'></div>

</body>
</html>



1)А почему обработчик событий onMouseOut='bounty_hide()'>
засовывается в онлоад,то есть когда пользователь увёл мышку от текста?

2)Как может в этой функции

 function bounty_show() {
if (bounty_hide_timeout) {
clearTimeout(bounty_hide_timeout);
bounty_hide_timeout = 0;
};
if (!bounty_obj) bounty_obj = document.getElementById('hint');
bounty_obj.style.display = 'block';
};


происходит проверка if (bounty_hide_timeout) { на то, содержит ли переменная bounty_hide_timeout что нибудь, если bounty_hide_timeout получает своё значение в теле совсем другой функции,которая находится ниже?

Спустя 4 часа, 7 минут, 23 секунды (16.08.2010 - 21:28) Guest написал(а):
Меню делается на чистом css и никаких проблем, а вот вьезд/выезд на n секунд - это надо таймер задействовать.... и как тебе уже сказали в раз 100 проще для таких вещей использовать готовые фрэймворки для того их и придумали.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.