Круговое меню с использованием jQuery и jQuery Radmenu Plugin - PullRequest
0 голосов
/ 14 января 2011

http://goo.gl/zMiYs

Привет всем, мне удалось частично реализовать указанное выше меню (меню открывается, элементы появляются, элементы перемещаются в пункт назначения) с помощью плагина jQuery и jQuery Radmenu. Я использовал следующее, чтобы целевой элемент вращался / перемещался по кругу более одного раза, потому что, как реализовано радмену, он перемещает элементы только один раз за клик / событие:

$('#radial_container').radmenu("next").radmenu("next");

Однако именно в этот момент я застрял, потому что не вижу возможности использовать функцию обратного вызова после остановки анимации (последняя .radmenu("next")). В плагине есть опция afterAnimation, но она оказалась бесполезной, потому что она срабатывает после каждого .radmenu("next") - другими словами, слишком часто. Я также пытался работать с jQuery queue() и dequeue(), но безуспешно.

Я был бы очень признателен, если бы мне помогли решить эту проблему или указали мне правильное направление, куда я должен смотреть. В последние дни я потратил немало времени на поиск похожих меню, но не смог найти ничего похожего на то, что я хочу сделать, учитывая, что это не очень экзотическая идея. Спасибо!

Редактировать: Добавлена ​​ссылка на объяснение меню.

1 Ответ

2 голосов
/ 06 апреля 2011

Мой предыдущий ответ был удален, что меня немного расстроило.

Не берите в голову.

Я думаю, что решение, которое вам требуется, может выглядеть примерно так:

onSelect: function($selected){ // show what is returned 
  var i=0;
    while (i<= $selected.index())
    {
      jQuery("#radial_container").radmenu("next");
      i++;
    }
  },

Затем просто откорректируйте свою математику, если необходимо, чтобы убедиться, что пункт назначения правильный.Если вы хотите быть более умным, вы можете сказать, что если индекс меньше половины окружности, выберите prev вместо next.

Надеюсь, это вам поможет.У меня все нормально работает.

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