scroll menu on keyboard navigation
This commit is contained in:
parent
d3fc6207de
commit
b84cb799ca
1 changed files with 36 additions and 3 deletions
|
@ -1934,7 +1934,8 @@ requires
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectNextItem() {
|
function selectNextItem() {
|
||||||
var selected = self.options.selected;
|
var offset,
|
||||||
|
selected = self.options.selected;
|
||||||
if (!isLastEnabledItem()) {
|
if (!isLastEnabledItem()) {
|
||||||
if (selected > -1) {
|
if (selected > -1) {
|
||||||
that.items[selected].trigger("mouseleave");
|
that.items[selected].trigger("mouseleave");
|
||||||
|
@ -1943,11 +1944,29 @@ requires
|
||||||
selected++;
|
selected++;
|
||||||
} while (that.items[selected].options("disabled"))
|
} while (that.items[selected].options("disabled"))
|
||||||
that.items[selected].trigger("mouseenter");
|
that.items[selected].trigger("mouseenter");
|
||||||
|
offset = that.items[selected].offset().top + itemHeight -
|
||||||
|
that.$container.offset().top - that.$container.height();
|
||||||
|
if (offset > 0) {
|
||||||
|
if (that.$scrollbars.up.is(":hidden")) {
|
||||||
|
that.$scrollbars.up.show();
|
||||||
|
that.$container.height(that.$container.height() - itemHeight);
|
||||||
|
offset += itemHeight;
|
||||||
|
}
|
||||||
|
if (selected == that.items.length - 1) {
|
||||||
|
that.$scrollbars.down.hide();
|
||||||
|
that.$container.height(that.$container.height() + itemHeight);
|
||||||
|
} else {
|
||||||
|
that.$content.css({
|
||||||
|
top: ((parseInt(that.$content.css("top")) || 0) - offset) + "px"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectPreviousItem() {
|
function selectPreviousItem() {
|
||||||
var selected = self.options.selected;
|
var offset,
|
||||||
|
selected = self.options.selected;
|
||||||
if (!isFirstEnabledItem()) {
|
if (!isFirstEnabledItem()) {
|
||||||
that.items[selected].trigger("mouseleave");
|
that.items[selected].trigger("mouseleave");
|
||||||
do {
|
do {
|
||||||
|
@ -1955,6 +1974,21 @@ requires
|
||||||
} while (that.items[selected].options("disabled"))
|
} while (that.items[selected].options("disabled"))
|
||||||
that.items[selected].trigger("mouseenter");
|
that.items[selected].trigger("mouseenter");
|
||||||
}
|
}
|
||||||
|
offset = that.items[selected].offset().top - that.$container.offset().top;
|
||||||
|
Ox.print(offset);
|
||||||
|
if (offset < 0) {
|
||||||
|
if (that.$scrollbars.down.is(":hidden")) {
|
||||||
|
that.$scrollbars.down.show();
|
||||||
|
that.$container.height(that.$container.height() - itemHeight);
|
||||||
|
}
|
||||||
|
if (selected == 0) {
|
||||||
|
that.$scrollbars.up.hide();
|
||||||
|
that.$container.height(that.$container.height() + itemHeight);
|
||||||
|
}
|
||||||
|
that.$content.css({
|
||||||
|
top: ((parseInt(that.$content.css("top")) || 0) - offset) + "px"
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectSubmenu() {
|
function selectSubmenu() {
|
||||||
|
@ -1996,7 +2030,6 @@ requires
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// fixme: scroll menu back up!
|
|
||||||
if (that.$scrollbars.up.is(":visible")) {
|
if (that.$scrollbars.up.is(":visible")) {
|
||||||
that.$content.css({
|
that.$content.css({
|
||||||
top: "0px"
|
top: "0px"
|
||||||
|
|
Loading…
Reference in a new issue