Просмотр полной версии : Сдвиг картинки-ссылки
<li><a href="#" onMouseOver="gogogo(this,29,0)" onMouseOut="gogogo(this, 60, -1)"><img src="css/images/q.png" width="100" height="20"></a></li>
function gogogo(node, i, sv) {
if (sv == 0) {
setTimeout(function() {node.style.left = i+1; i++; if (i<=60) gogogo(node, i, 0);},8);
}
else {
setTimeout(function() {node.style.left = i-1; i--; if (i>=29) gogogo(node, i, -1);},8);
}
}
Проблема в том, что при изменении положения указателя мыши начинает работать как if так и else. Думаю что проблему можно решить путем выделения определенной прямоугольной области, при наведении на который будет работать if, а за пределами есстественно else.
Просьба помочь оптимизировать или подкинуть какие-нибудь другие идеи.
Pavel M.
22.11.2011, 14:49
что-то типа этого можно использовать
пример на jQuery
нужно навести на картинку
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script>
<script type='text/javascript'>
$(window).load(function(){
$('div a').hover(
function () {
$(this).stop().animate({'margin-left': 30}, 300);
},
function () {
$(this).stop().animate({'margin-left': 0}, 300);
}
);
});
</script>
</head>
<body>
<div>
<a href="#"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"></a>
</div>
</body>
</html>
не силен в jQuery, и JS только начал изучать.
можете пояснить следующие моменты?
1. $(window).load(function() -- здесь мы подгружаем новую функцию?
2. $(this) - это $('div a')?
3. $('div a').hover - для чего hover?
p.s. благодарю.
Pavel M.
22.11.2011, 15:51
1. $(window).load(function() -- здесь мы подгружаем новую функцию?
2. $(this) - это $('div a')?
3. $('div a').hover - для чего hover?
1. ждем загрузки всей страницы со всеми элементами
2. в этом случае - да
3. http://api.jquery.com/hover/
1. ждем загрузки всей страницы со всеми элементами
2. в этом случае - да
3. http://api.jquery.com/hover/
спасибо)
pagemaster
08.04.2013, 22:45
Здравствуйте!
Тема уже старая, но у меня возник похожий вопрос, помогите пожалуйста.
У меня есть круг (порезанный на куски) и когда я навожу на определенный кусок, он должен отодвигаться... Подскажите как это прописать? Со случаем вправо я уже разобрался)) методом тыка пробовал таким же образом задавать отступ вверх и вниз, но ничего не получается...
Заранее благодарен!
А случай "вправо" - это какой случай?)
Четче сформулируйте вопрос, выложите простой кусок html и ваш скрипт.
pagemaster
09.04.2013, 16:20
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script>
<script type='text/javascript'>
$(window).load(function(){
$('div a').hover(
function () {
$(this).stop().animate({'margin-left': 50}, 300);
},
function () {
$(this).stop().animate({'margin-left': 0}, 300);
}
);
});
</script>
</head>
<body>
<div>
<a href="#"><img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"></a>
</div>
</body>
</html>
В данном случае прописывается margin-left 50 и изображение движется в право (так как отступ то левый) на 50 пикселей. Я пытался написать margin: 0 50 50 0; чтобы изображение двигалось вправо и вверх, но почему то не работает... подскажите как правильно прописывать в jQuery отступы, чтобы все работало) ну или я думал что может стоит прописывать не отступы, а задавать координаты относительно страницы, если это возможно, то подскажите как =) буду очень благодарен
$(this).stop().animate({
'margin-left': 0,
'margin-top': '20px'
}, 300);
вообще Обычно присваивают элементу position relative/absolute и изменяют left и top
pagemaster
09.04.2013, 19:02
$(window).load(function(){
$('div a').hover(
function () {
$(this).stop().animate({
'margin-left': '50px',
'margin-top': '20px'
}, 300);
},
function () {
$(this).stop().animate({
'margin-left': '0px',
'margin-top': '0px'
}, 300);
}
);
});
Вправо движется, а вниз нет... =( и это ведь по идеи должно получатся как то по диагонали движение?
pagemaster
09.04.2013, 19:03
если оставить только 'margin-top': '20px' то картинка не движется вниз...
pagemaster
09.04.2013, 23:05
ну помогите...
покажите кусок кода который бы двигал картинку вниз или по диагонали
pagemaster
09.04.2013, 23:19
и так же вопрос как указать элемент для перемещения, в случае указанном выше прописано $('div a') я так понимаю это указывается что в блоке div будет двигаться элемент в теге <a></a>, а как указать на пример чтобы использовался определенный блок по его id? На пример пишем <div id="1">картинка<div> и чтобы именно этот блок работал со скриптом
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<div>
<a href='#' style='width: 60px; height: 20px; position: absolute; top: 0; left: 0'>aaa</a>
</div>
<script>
$(window).load(function(){
$('div a').hover(
function () {
$(this).stop().animate({
'left': '50px',
'top': '20px'
}, 300);
},
function () {
$(this).stop().animate({
'left': '0px',
'top': '0px'
}, 300);
}
);
});
</script>
Не знаю что тут может не работать.
pagemaster
10.04.2013, 14:40
спасибо за ответ)
моя ошибка была в том что картинке не была прописана "position"
а не подскажите еще как мне использовать данный скрипт для определенной картинки? просто сейчас используется ко всем тегам a в div
я хотел прописывать картинке свой id и указывать его в скрипте, как это сделать?
pagemaster
10.04.2013, 18:03
люди добрые и не очень =)
помогите пожалуйста, как изменить вот эту строчку $('div a').hover( так, чтобы указать div по его id
$('div id="1"').hover( как то так?
animhotep
10.04.2013, 18:48
$("#id1").hover
pagemaster
11.04.2013, 03:41
Вот так?
<script>
$(window).load(function(){
$("#id1").hover(
function (this) {
$(this).stop().animate({
'left': '465px',
'top': '422px'
}, 800);
},
function () {
$(this).stop().animate({
'left': '465px',
'top': '422px'
}, 800);
}
);
});
</script>
</div>
<div id="1"> <a href="#" id="image1" style="position:absolute; overflow:hidden; left:465px; top:922px; width:180px; height:255px; z-index:0"><img src="images/1.png" alt="" border=0 width=180 height=255></a></div>
Почему то не работает... что не так?
$("#id1").hover(
$("#1").hover(
pagemaster
11.04.2013, 10:03
не работает... пробовал id тега <a> и <div>
<script>
$(window).load(function(){
$("#1").hover(
function (this) {
$(this).stop().animate({
'left': '465px',
'top': '422px'
}, 800);
},
function () {
$(this).stop().animate({
'left': '465px',
'top': '422px'
}, 800);
}
);
});
</script>
</div>
<div id="1"> <a href="#" style="position:absolute; overflow:hidden; left:465px; top:922px; width:180px; height:255px; z-index:0"><img src="images/1.png"></a></div>
Естественно не работает! И не должно работать. Вы присваиваете position absolute для ссылки, а двигать пытаетесь див.
pagemaster
11.04.2013, 10:27
Смотрите, я с дива убрал id и поставил его тегу <a>, не работает.
Потом вернул все обратно и написал $("#1 a"), но тоже не работает!..
Вот весь код:
<script>
$(window).load(function(){
$("#1 a").hover(
function (this) {
$(this).stop().animate({
'left': '465px',
'top': '422px'
}, 800);
},
function () {
$(this).stop().animate({
'left': '465px',
'top': '422px'
}, 800);
}
);
});
</script>
</div>
<div id="1"> <a href="#" style="position:absolute; overflow:hidden; left:465px; top:922px; width:180px; height:255px; z-index:0"><img src="images/1.png"></a></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<div id='1'>
<a href='#' style='width: 60px; height: 20px; position: absolute; top: 0; left: 0'>aaa</a>
</div>
<div>
<a id='2' href='#' style='width: 60px; height: 20px; position: absolute; top: 0; left: 100px'>aaa</a>
</div>
<script>
$(window).load(function(){
$('#1 a').hover(
function () {
$(this).stop().animate({
'left': '50px',
'top': '20px'
}, 300);
},
function () {
$(this).stop().animate({
'left': '0px',
'top': '0px'
}, 300);
}
);
$('#2').hover(
function () {
$(this).stop().animate({
'left': '50px',
'top': '20px'
}, 300);
},
function () {
$(this).stop().animate({
'left': '100px',
'top': '0px'
}, 300);
}
);
});
</script>
pagemaster
11.04.2013, 10:35
мне кажется или он не работает?) текст не движется
pagemaster
11.04.2013, 10:35
во, заработало) все, спасибо огромное)) буду разбираться
Что выдает консоль? Вы вообще подключили jQuery?
pagemaster
11.04.2013, 11:07
все, работает, jQuery конечно же подключил, ответы на все мои вопросы получил =) спасибо Вам
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot