主题: 弹出菜单位置调整
作者: njm168, 发布日期: 2014-04-14 15:59:03, 浏览数: 2008

字体、表情等点击弹出层的位置调整到菜单栏的上面,如何操作?

以“文字大小”菜单为例源码是这样的:


self.clickToolbar('fontsize', function () {
            var curVal = self.cmd.val('fontsize'),
			menu = self.createMenu({
			    name: 'fontsize',
			    width: 150,
			});
            _each(self.fontSizeTable, function (i, val) {
                menu.addItem({
                    title: '<span style="font-size:' + val + ';" unselectable="on">' + val + '</span>',
                    height: _removeUnit(val) + 12,
                    checked: curVal === val,
                    click: function () {
                        self.exec('fontsize', val).hideMenu();
                    }
                });
            });
        });
菜单创建后才填充的菜单项。

那么怎么计算这个菜单的高度并且将此弹出层的位置调整到菜单栏的上面呢?

作者: njm168, 发布日期: 2014-04-14 17:55:17

加了一个函数,创建完菜单后调用一下

/*处理菜单弹出层位置函数*/
        self.setMenuPosition = function (pluginName, menu) {
            var knode = self.toolbar.get(pluginName),
            pos = knode.pos();
            K(menu.div).css("top", pos.y - K(menu.div).height() + "px");
        }

例如:


self.clickToolbar('fontsize', function () {
            var curVal = self.cmd.val('fontsize'),
			menu = self.createMenu({
			    name: 'fontsize',
			    width: 150
			});
            _each(self.fontSizeTable, function (i, val) {
                menu.addItem({
                    title: '<span style="font-size:' + val + ';" unselectable="on">' + val + '</span>',
                    height: _removeUnit(val) + 12,
                    checked: curVal === val,
                    click: function () {
                        self.exec('fontsize', val).hideMenu();
                    }
                });
            });
            /*处理菜单弹出层位置*/
            self.setMenuPosition("fontsize", menu);
        });
回复
发表新帖 发表回复