Browse Source

#1252 Add fix for IE not obeying transform context

1.0
jlukic 10 years ago
parent
commit
753c587311
2 changed files with 62 additions and 18 deletions
  1. 73
      src/definitions/modules/sidebar.js
  2. 7
      src/definitions/modules/sidebar.less

73
src/definitions/modules/sidebar.js

@ -163,37 +163,69 @@ $.fn.sidebar = function(parameters) {
var var
width = $module.outerWidth(), width = $module.outerWidth(),
height = $module.outerHeight(), height = $module.outerHeight(),
style = ''
+ '<style title="' + namespace + '">'
+ ' .ui.visible.left.sidebar ~ .fixed,'
+ ' .ui.visible.left.sidebar ~ .pusher {'
style
;
style = ''
+ '<style title="' + namespace + '">'
+ ' .ui.visible.left.sidebar ~ .fixed,'
+ ' .ui.visible.left.sidebar ~ .pusher {'
+ ' -webkit-transform: translate3d('+ width + 'px, 0, 0);'
+ ' transform: translate3d('+ width + 'px, 0, 0);'
+ ' }'
+ ' .ui.visible.right.sidebar ~ .fixed,'
+ ' .ui.visible.right.sidebar ~ .pusher {'
+ ' -webkit-transform: translate3d(-'+ width + 'px, 0, 0);'
+ ' transform: translate3d(-'+ width + 'px, 0, 0);'
+ ' }'
+ ' .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed,'
+ ' .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher,'
+ ' .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed,'
+ ' .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher {'
+ ' -webkit-transform: translate3d(0px, 0, 0);'
+ ' transform: translate3d(0px, 0, 0);'
+ ' }'
+ ' .ui.visible.top.sidebar ~ .fixed,'
+ ' .ui.visible.top.sidebar ~ .pusher {'
+ ' -webkit-transform: translate3d(0, ' + height + 'px, 0);'
+ ' transform: translate3d(0, ' + height + 'px, 0);'
+ ' }'
+ ' .ui.visible.bottom.sidebar ~ .fixed,'
+ ' .ui.visible.bottom.sidebar ~ .pusher {'
+ ' -webkit-transform: translate3d(0, -' + height + 'px, 0);'
+ ' transform: translate3d(0, -' + height + 'px, 0);'
+ ' }'
;
/* IE is only browser not to create context with transforms */
/* https://www.w3.org/Bugs/Public/show_bug.cgi?id=16328 */
if( module.is.ie() ) {
style += ''
+ ' .ui.visible.left.sidebar ~ .pusher:after {'
+ ' -webkit-transform: translate3d('+ width + 'px, 0, 0);' + ' -webkit-transform: translate3d('+ width + 'px, 0, 0);'
+ ' transform: translate3d('+ width + 'px, 0, 0);' + ' transform: translate3d('+ width + 'px, 0, 0);'
+ ' }' + ' }'
+ ' .ui.visible.right.sidebar ~ .fixed,'
+ ' .ui.visible.right.sidebar ~ .pusher {'
+ ' .ui.visible.right.sidebar ~ .pusher:after {'
+ ' -webkit-transform: translate3d(-'+ width + 'px, 0, 0);' + ' -webkit-transform: translate3d(-'+ width + 'px, 0, 0);'
+ ' transform: translate3d(-'+ width + 'px, 0, 0);' + ' transform: translate3d(-'+ width + 'px, 0, 0);'
+ ' }' + ' }'
+ ' .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed,'
+ ' .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher,'
+ ' .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed,'
+ ' .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher {'
+ ' .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher:after,'
+ ' .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher:after {'
+ ' -webkit-transform: translate3d(0px, 0, 0);' + ' -webkit-transform: translate3d(0px, 0, 0);'
+ ' transform: translate3d(0px, 0, 0);' + ' transform: translate3d(0px, 0, 0);'
+ ' }' + ' }'
+ ' .ui.visible.top.sidebar ~ .fixed,'
+ ' .ui.visible.top.sidebar ~ .pusher {'
+ ' .ui.visible.top.sidebar ~ .pusher:after {'
+ ' -webkit-transform: translate3d(0, ' + height + 'px, 0);' + ' -webkit-transform: translate3d(0, ' + height + 'px, 0);'
+ ' transform: translate3d(0, ' + height + 'px, 0);' + ' transform: translate3d(0, ' + height + 'px, 0);'
+ ' }' + ' }'
+ ' .ui.visible.bottom.sidebar ~ .fixed,'
+ ' .ui.visible.bottom.sidebar ~ .pusher {'
+ ' .ui.visible.bottom.sidebar ~ .pusher:after {'
+ ' -webkit-transform: translate3d(0, -' + height + 'px, 0);' + ' -webkit-transform: translate3d(0, -' + height + 'px, 0);'
+ ' transform: translate3d(0, -' + height + 'px, 0);' + ' transform: translate3d(0, -' + height + 'px, 0);'
+ ' }' + ' }'
+ '</style>'
;
;
}
style += '</style>';
$head.append(style); $head.append(style);
$style = $('style[title=' + namespace + ']'); $style = $('style[title=' + namespace + ']');
module.debug('Adding sizing css to head', $style); module.debug('Adding sizing css to head', $style);
@ -618,6 +650,15 @@ $.fn.sidebar = function(parameters) {
}, },
is: { is: {
ie: function() {
var
isIE11 = (!(window.ActiveXObject) && 'ActiveXObject' in window),
isIE = ('ActiveXObject' in window)
;
return (isIE11 || isIE);
},
legacy: function() { legacy: function() {
var var
element = document.createElement('div'), element = document.createElement('div'),

7
src/definitions/modules/sidebar.less

@ -139,7 +139,10 @@
height: 0px; height: 0px;
overflow: hidden; overflow: hidden;
opacity: 0; opacity: 0;
transition: opacity @duration;
transition:
transform @duration,
opacity @duration
;
will-change: opacity; will-change: opacity;
z-index: @dimmerLayer; z-index: @dimmerLayer;
} }
@ -452,4 +455,4 @@
} }
.ui.visible.scale.down.sidebar ~ .pusher { .ui.visible.scale.down.sidebar ~ .pusher {
transform: scale(0.75); transform: scale(0.75);
}
}
Loading…
Cancel
Save