1

我不熟悉 JavaScript,我是 jQuery 的初学者!我发现RadMenu Pluging from web 并想使用它,以便它在我单击的文档上的任何位置打开,而不仅仅是一个固定位置。

$(function() {
        jQuery("#radial_container").radmenu({
            listClass: 'list',
            itemClass: 'item',
            radius: 100,
            animSpeed: 400,
            centerX: 30,
            centerY: 100,
            selectEvent: "click",
            onSelect: function($selected) {
                alert("you clicked on .. "
                + $selected.index());
            },
            angleOffset: Math.PI,
            onShow: function($menuitems) {
                $menuitems.each(function(i) {
                    var $this = jQuery(this);
                    setTimeout(function() {
                        $this.fadeIn(500);
                    }, i * 100);
                });
            }
        });
    });

我正在尝试使用 onClick 或 mouseover 方法实时更新 centerX 和 centerY 值,但它没有得到更新。

请建议我该怎么做才能使它工作。

4

1 回答 1

1

这可以通过在单击事件发生时更改包含径向菜单的topleft属性来完成。<div>例如,

$(document).click(function (e) {
  $('#radial_container').css('left', (e.pageX - 30) + 'px');
  $('#radial_container').css('top', (e.pageY - 40) + 'px');
  $("#radial_container").radmenu("show");
});

这是一个可以进一步使用的工作版本的小提琴:http: //jsfiddle.net/munderwood/7asLq/

这两个值-30以及-40我用来移动圆心的值只是因为它们似乎或多或少地起作用。它们将随着菜单的半径、文本大小等而变化,但我将它们保留在其中,以便您了解如何以及在何处相对于鼠标光标移动菜单。

于 2014-04-06T01:28:55.330 回答