17.03.2012, 11:29
|
|
Аспирант
|
|
Регистрация: 05.07.2011
Сообщений: 44
|
|
Из Наведения на Клик (mouseover/mouseout->Click)
Нужна помощь.
Есть код, при наведении на объект появляется блок с текстом. Нужно сделать, чтобы не при наведении, а при нажатии на объект появлялся блок с текстом.
Вот код:
$(.links').each(function () {
var distance = 0;
var time = 400;
var hideDelay = 200;
var hideDelayTimer = null;
var beingShown = false;
var shown = false;
var trigger = $('#download', this);
var info = $('.downloadBox', this).css('opacity', 0);
$([trigger.get(0), info.get(0)]).mouseover(function () {
if (hideDelayTimer) clearTimeout(hideDelayTimer);
if (beingShown || shown) {
// don't trigger the animation again
return;
} else {
// reset position of info box
beingShown = true;
info.css({
top: 25,
left: 0,
display: 'block'
}).animate({
top: 25,
opacity: 1
}, time, 'swing', function() {
beingShown = false;
shown = true;
});
}
return false;
}).mouseout(function () {
if (hideDelayTimer) clearTimeout(hideDelayTimer);
hideDelayTimer = setTimeout(function () {
hideDelayTimer = null;
info.animate({
top: 25,
opacity: 0
}, time, 'swing', function () {
shown = false;
info.css('display', 'none');
});
}, hideDelay);
return false;
});
});
Заранее примного благодарен...
Последний раз редактировалось nightkon, 17.03.2012 в 11:35.
|
|
17.03.2012, 11:41
|
Server
|
|
Регистрация: 26.09.2011
Сообщений: 252
|
|
mouseover меняйте на click
mouseout непонятно на что, т.к. вы не определили событие отмены показа блока.
|
|
17.03.2012, 11:46
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
или в toggle засунуть :
$(.links').each(function () {
var distance = 0;
var time = 400;
var hideDelay = 200;
var hideDelayTimer = null;
var beingShown = false;
var shown = false;
var trigger = $('#download', this);
var info = $('.downloadBox', this).css('opacity', 0);
$([trigger.get(0), info.get(0)]).toggle(function () {
if (hideDelayTimer) clearTimeout(hideDelayTimer);
if (beingShown || shown) {
// don't trigger the animation again
return;
} else {
// reset position of info box
beingShown = true;
info.css({
top: 25,
left: 0,
display: 'block'
}).animate({
top: 25,
opacity: 1
}, time, 'swing', function() {
beingShown = false;
shown = true;
});
}
return false;
}, function () {
if (hideDelayTimer) clearTimeout(hideDelayTimer);
hideDelayTimer = setTimeout(function () {
hideDelayTimer = null;
info.animate({
top: 25,
opacity: 0
}, time, 'swing', function () {
shown = false;
info.css('display', 'none');
});
}, hideDelay);
return false;
});
});
|
|
17.03.2012, 11:59
|
|
Аспирант
|
|
Регистрация: 05.07.2011
Сообщений: 44
|
|
Сообщение от melky
|
или в toggle засунуть :
|
Спасибо большое... Примного благодарен...
|
|
17.03.2012, 12:30
|
|
Аспирант
|
|
Регистрация: 05.07.2011
Сообщений: 44
|
|
Блин, проблема возникла...
В том блоке, который (в сим случае это тег .links) открывается, при клике на объект (#download), клик действует на оба элемента.
Как сделать, чтобы при клике на область тега .links, блок не исчезал? У меня так ссылка стоит, я на неё нажимаю, ничего не просходит далее, только блок исчезает и все
|
|
17.03.2012, 12:47
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
потому что вы изменяете его свойство top на 25 пикселей, а потом анимируете это свойство до 25 пикселей. оно будет изменяться ? (нет)
info.css({
top: 25,
left: 0,
display: 'block'
}).animate({
top: 25,
opacity: 1
}, time, 'swing', function() {
beingShown = false;
shown = true;
});
|
|
17.03.2012, 13:12
|
|
Аспирант
|
|
Регистрация: 05.07.2011
Сообщений: 44
|
|
melky,
Убрал в анимации top: 25, и при исчезании тоже его нет.
Вот ваш вопрос не понял не много "будет изменяться?", ничего изменяться не будет просто блок всплывает и исчезает, и всё что в блоке тоже не изменяется.
|
|
17.03.2012, 16:04
|
|
Аспирант
|
|
Регистрация: 05.07.2011
Сообщений: 44
|
|
Как сделать, чтобы при нажатии на всплывающий блок (это уже после нажатия на #download) не исчезал сам блок?
Нынешняя проблема в том, я считаю, что функция toggle работает и для #download и для .links, как сделать чтобы было только для #download и не срабатывала на блоке .links?
Последний раз редактировалось nightkon, 18.03.2012 в 07:45.
|
|
18.03.2012, 07:46
|
|
Аспирант
|
|
Регистрация: 05.07.2011
Сообщений: 44
|
|
Никак не могу решить этот вопрос, может кто-нибудь помочь?
|
|
|
|