Skip to content

Commit

Permalink
popup: doesn't invalidate zIndex when anchor set while popup is hidden (
Browse files Browse the repository at this point in the history
close #1214)
  • Loading branch information
persidskiy committed Dec 29, 2014
1 parent 34d5cec commit ad49cd7
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 12 deletions.
1 change: 1 addition & 0 deletions common.blocks/popup/_target/popup_target_anchor.js
Expand Up @@ -95,6 +95,7 @@ provide(Popup.decl({ modName : 'target', modVal : 'anchor' }, /** @lends popup.p
.redraw();
} else {
this._anchorParents = null;
this._zIndexGroupLevel = null;
}

return this;
Expand Down
47 changes: 35 additions & 12 deletions common.blocks/popup/_target/popup_target_anchor.spec.js
Expand Up @@ -199,8 +199,7 @@ describe('popup', function() {
popup2.setMod('visible');
popup.setMod('visible');

Number(popup.domElem.css('z-index'))
.should.be.gt(Number(popup2.domElem.css('z-index')));
getZIndex(popup).should.be.gt(getZIndex(popup2));
});

it('should properly use zIndexGroupLevel param', function() {
Expand All @@ -216,8 +215,7 @@ describe('popup', function() {
popup2.setMod('visible');
popup.setMod('visible');

Number(popup.domElem.css('z-index'))
.should.be.lt(Number(popup2.domElem.css('z-index')));
getZIndex(popup).should.be.lt(getZIndex(popup2));
});

it('should properly use z-index-group blocks which may be in anchor parents', function() {
Expand Down Expand Up @@ -250,11 +248,9 @@ describe('popup', function() {
popup2.setMod('visible');
popup.setMod('visible');

Number(popup.domElem.css('z-index'))
.should.be.lt(Number(popup2.domElem.css('z-index')));
getZIndex(popup).should.be.lt(getZIndex(popup2));

Number(popup2.domElem.css('z-index'))
.should.be.lt(Number(popup3.domElem.css('z-index')));
getZIndex(popup2).should.be.lt(getZIndex(popup3));
});

it('should consider zIndexGroupLevel of parent popup', function() {
Expand All @@ -270,13 +266,36 @@ describe('popup', function() {
popup.setMod('visible');
popup2.setAnchor(popupAnchorDomElem).setMod('visible');

Number(popup.domElem.css('z-index'))
.should.be.lt(Number(popup2.domElem.css('z-index')));
getZIndex(popup).should.be.lt(getZIndex(popup2));

popup.setAnchor(popup2.domElem.find('span:first'));

Number(popup.domElem.css('z-index'))
.should.be.gt(Number(popup2.domElem.css('z-index')));
getZIndex(popup).should.be.gt(getZIndex(popup2));
});

it('should recalculate z-index when anchor is changed', function() {
var anchorLevel1 = $(BEMHTML.apply({
block : 'z-index-group',
mods : { level : 1 },
content : {
block : 'anchor',
tag : 'span',
content : 'anchor 1'
}
})).appendTo('body').find('.anchor');

popup.setAnchor(popupAnchorDomElem).setMod('visible');

var initialZIndex = getZIndex(popup);

popup.setAnchor(anchorLevel1);
getZIndex(popup).should.be.gt(initialZIndex, 'popup moved to z-index-group_level_1 while visible');

popup
.delMod('visible')
.setAnchor(popupAnchorDomElem)
.setMod('visible');
getZIndex(popup).should.be.equal(initialZIndex, 'popup moved from z-index-group_level_1 while hidden');
});
});

Expand All @@ -300,4 +319,8 @@ function buildPopup(parentDomElem, bemjson) {
.bem('popup');
}

function getZIndex(popup) {
return Number(popup.domElem.css('z-index'));
}

});

0 comments on commit ad49cd7

Please sign in to comment.