Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
4 / 4 / 0
Регистрация: 02.08.2013
Сообщений: 39

одно событие-2 функции как?

02.08.2013, 16:52. Показов 3849. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите как реализовать условие. При клике на картинку запускается анимация. Нужно чтобы при повторном клике анимация возвращалась в исходное состояние, а когда кликаешь опять, снова повторялась бы. Намудрил вот такой код:
HTML5
1
<div align="center" class="photshop3" onclick="slide()" ><div align="center" class="anim" ><div class="svit"></div><div class="str"></div></div></div></div>
JavaScript
1
2
3
4
5
6
$(document).ready(function(){
    });
    
    function slide(){ $(".svit").animate({ top:"+=30px"}, 1000,
 
    function(){ $(".str").animate({ left:"-=110px"}, 15)})}
При клике див "svit" съезжает вниз ("str" в бок) и останавливаются как и задумано, но при повторном клике они снова двигаются от текущей позиции и уезжают за границы обертки "photshop3" , а нужно, чтобы дивы участвующие в анимации становились в исходное положение и по третьему клику анимация снова продолжалась бы. Подскажите как это реализовать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2013, 16:52
Ответы с готовыми решениями:

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

Не повторять одно и тоже событие многократно
Здравствуйте! Возникла интересная ситуация, помогите найти лучший выход :). Допустим, я &quot;повесил&quot; событие на изменение формы: ...

Как задать нескольким кнопкам одно событие
Привет всем! Моя задача - есть 16 кнопок 1 из них становиться другого цвета (реализовано) мы нажимаем одну из кнопок, и проверяем её цвет,...

6
8 / 8 / 1
Регистрация: 23.07.2013
Сообщений: 49
02.08.2013, 17:16
JavaScript
1
2
3
4
5
6
7
8
9
$(document).ready(function(){
     $('.photshop3').toggle(function(){
          $(".svit").animate({ top:"+=30px"}, 1000,
          function(){ $(".str").animate({ left:"-=110px"}, 15)});
     },function(){
          $(".svit").animate({ top:"-=30px"}, 1000,
          function(){ $(".str").animate({ left:"+=110px"}, 15)});
     });
 });
0
4 / 4 / 0
Регистрация: 02.08.2013
Сообщений: 39
04.08.2013, 09:38  [ТС]
Спасибо за код, я неправильно выразился. Нужно: первый клик: анимация дивов, остановка; второй клик: дивы возвращаются в исходное положение;
Я понимаю, что тут должна быть функция toggle, но путаюсь в синтаксисе в скобках, кавычках. У вас в коде, анимация возврата через запятую, поэтому все действия идут без остановки по одному клику

$(document).ready(function(){
$('.photshop3').toggle(function(){
$(".svit").animate({ top:"+=30px"}, 1000,
function(){ $(".str").animate({ left:"-=110px"}, 15)});
},function(){
$(".svit").animate({ top:"-=30px"}, 1000,
function(){ $(".str").animate({ left:"+=110px"}, 15)});
});
});

Думаю тут нужно разделить функции, но путаюсь в синтаксисе, а может я и не прав вовсе.
0
69 / 69 / 22
Регистрация: 06.06.2013
Сообщений: 404
04.08.2013, 12:18
.toggle больше не работает в таком формате

Добавлено через 9 минут
JavaScript
1
2
3
4
5
6
7
$(document).ready(function(){
     $('.photshop3').click(function(){
          if($('.svit').data('animated') == false)
          $(".svit").animate({ top:"+=30px"}, 1000,function(){ $(".str").animate({ left:"-=110px"}, 15) }).data('animated',true);
          else
          $(".svit").animate({ top:"-=30px"}, 1000,function(){ $(".str").animate({ left:"+=110px"}, 15) }).data('animated',false);
 });
попробуй так
0
8 / 8 / 1
Регистрация: 23.07.2013
Сообщений: 49
04.08.2013, 15:02
JavaScript
1
2
3
4
5
$(document).ready(function(){
    $(".photshop3").click(function(){
        $(".svit").slideToggle("slow");
    });
});
0
4 / 4 / 0
Регистрация: 02.08.2013
Сообщений: 39
05.08.2013, 09:37  [ТС]
Цитата Сообщение от vooduq Посмотреть сообщение
.toggle больше не работает в таком формате

Добавлено через 9 минут
JavaScript
1
2
3
4
5
6
7
$(document).ready(function(){
     $('.photshop3').click(function(){
          if($('.svit').data('animated') == false)
          $(".svit").animate({ top:"+=30px"}, 1000,function(){ $(".str").animate({ left:"-=110px"}, 15) }).data('animated',true);
          else
          $(".svit").animate({ top:"-=30px"}, 1000,function(){ $(".str").animate({ left:"+=110px"}, 15) }).data('animated',false);
 });
попробуй так
ХМ.. по логике вещей должно работать, но не работает, работает если добавить в конце }); и поменять местами значения условий if и else. Но опять таки оба условия почему то работают за один клик.
А условие должно применяться только к переменной svit? Ко второй переменной ведь тоже применена функция анимации
0
69 / 69 / 22
Регистрация: 06.06.2013
Сообщений: 404
05.08.2013, 12:16
смотри в функции объекта .svit выполняется ф-ция .str, так что думаю нет нужды создавать внутреннюю дату) + событие применяется только к .svit`y
возможно попробуй окружить тело if и else рамками {}, т.к. двоная ф-ция может интерпретироваться как множество строк, а без рамок можно только для одной но то что дата, клик и двойная анимация работает, в этом нет сомнения)

Добавлено через 2 минуты
скобли да забыл)
пробуй так
JavaScript
1
2
3
4
5
6
7
8
$(document).ready(function(){
     $('.photshop3').click(function(){
          if($('.svit').data('animated') == false) {
          $(".svit").animate({ top:"+=30px"}, 1000,function(){ $(".str").animate({ left:"-=110px"}, 15) }).data('animated',true); }
          else {
          $(".svit").animate({ top:"-=30px"}, 1000,function(){ $(".str").animate({ left:"+=110px"}, 15) }).data('animated',false); }
 });
 });
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.08.2013, 12:16
Помогаю со студенческими работами здесь

Как на несколько кнопок повесить одно событие
Здравствуйте! У меня есть на форме аж 40 кнопок, но на какую бы ни нажал пользователь, код должен выполняться один и тот же. Не хотелось...

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

Как для нескольких компонентов выполнять одно событие
Вообще суть такая: На форме есть 5 кнопок. Я на одну кнопку реализовал код, чтобы когда наводишь курсор на Button он сам в течении 3 сек....

Одно событие для многих объектов. Как отловить?
День добрый! На форме 30 panel, в каждой есть TableLayoutPanel в которой уже есть 40 Label. В общей сложности получается рабочих лейблов...

Как к динамически созданным объектам приладить одно событие
Уважаемые Дамы и Господа! Обращаюсь к вам с просьбой о помощи. Проблема заключается в следующем: Из папки Inbox выбираются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru