Skip to content

Commit

Permalink
Further improvements in regards to #287
Browse files Browse the repository at this point in the history
  • Loading branch information
thednp committed May 28, 2019
1 parent d1e6519 commit ed976b7
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 28 deletions.
12 changes: 12 additions & 0 deletions assets/js/scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@ myModal.addEventListener('show.bs.modal', function(e) {
e.target && console.log('show.bs.modal triggered for #'+e.target.id);
e.relatedTarget && console.log('event.relatedTarget is '+e.relatedTarget.tagName+'.'+e.relatedTarget.className.replace(/\s/g,'.'));
}, false);
myModal.addEventListener('shown.bs.modal', function(e) {
e.target && console.log('shown.bs.modal triggered for #'+e.target.id);
e.relatedTarget && console.log('event.relatedTarget is '+e.relatedTarget.tagName+'.'+e.relatedTarget.className.replace(/\s/g,'.'));
}, false);
myModal.addEventListener('hide.bs.modal', function(e) {
e.target && console.log('hide.bs.modal triggered for #'+e.target.id);
e.relatedTarget && console.log('event.relatedTarget is '+e.relatedTarget.tagName+'.'+e.relatedTarget.className.replace(/\s/g,'.'));
}, false);
myModal.addEventListener('hidden.bs.modal', function(e) {
e.target && console.log('hidden.bs.modal triggered for #'+e.target.id);
e.relatedTarget && console.log('event.relatedTarget is '+e.relatedTarget.tagName+'.'+e.relatedTarget.className.replace(/\s/g,'.'));
}, false);


// Modal initialized with JavaScript
Expand Down
9 changes: 4 additions & 5 deletions dist/bootstrap-native-v4.js
Original file line number Diff line number Diff line change
Expand Up @@ -1083,8 +1083,6 @@
scrollBarWidth = measureScrollbar();
},
createOverlay = function() {
modalOverlay = 1;

var newOverlay = DOC[createElement]('div');
overlay = queryElement('.'+modalBackdropString);

Expand All @@ -1093,14 +1091,14 @@
overlay = newOverlay;
DOC[body][appendChild](overlay);
}
modalOverlay = 1;
},
removeOverlay = function() {
overlay = queryElement('.'+modalBackdropString);
if ( overlay && overlay !== null && typeof overlay === 'object' ) {
modalOverlay = 0;
DOC[body].removeChild(overlay); overlay = null;
}
bootstrapCustomEvent.call(modal, hiddenEvent, component);
},
keydownHandlerToggle = function() {
if (hasClass(modal,showClass)) {
Expand Down Expand Up @@ -1134,6 +1132,7 @@
triggerHide = function() {
modal[style].display = '';
element && (setFocus(element));
bootstrapCustomEvent.call(modal, hiddenEvent, component);

(function(){
if (!getElementsByClassName(DOC,component+' '+showClass)[0]) {
Expand Down Expand Up @@ -1209,7 +1208,7 @@
modal[setAttribute](ariaHidden, false);

hasClass(modal,'fade') ? emulateTransitionEnd(modal, triggerShow) : triggerShow();
}, supportTransitions && overlay ? overlayDelay : 0);
}, supportTransitions && overlay && overlayDelay ? overlayDelay : 0);
};
this.hide = function() {
bootstrapCustomEvent.call(modal, hideEvent, component);
Expand All @@ -1221,7 +1220,7 @@

setTimeout(function(){
hasClass(modal,'fade') ? emulateTransitionEnd(modal, triggerHide) : triggerHide();
}, supportTransitions && overlay ? overlayDelay : 0);
}, supportTransitions && overlay && overlayDelay ? overlayDelay : 1);
};
this.setContent = function( content ) {
queryElement('.'+component+'-content',modal)[innerHTML] = content;
Expand Down
2 changes: 1 addition & 1 deletion dist/bootstrap-native-v4.min.js

Large diffs are not rendered by default.

13 changes: 5 additions & 8 deletions dist/bootstrap-native.js
Original file line number Diff line number Diff line change
Expand Up @@ -1233,8 +1233,6 @@
scrollBarWidth = measureScrollbar();
},
createOverlay = function() {
modalOverlay = 1;

var newOverlay = DOC[createElement]('div');
overlay = queryElement('.'+modalBackdropString);

Expand All @@ -1243,14 +1241,14 @@
overlay = newOverlay;
DOC[body][appendChild](overlay);
}
modalOverlay = 1;
},
removeOverlay = function() {
overlay = queryElement('.'+modalBackdropString);
if ( overlay && overlay !== null && typeof overlay === 'object' ) {
modalOverlay = 0;
DOC[body].removeChild(overlay); overlay = null;
}
bootstrapCustomEvent.call(modal, hiddenEvent, component);
},
keydownHandlerToggle = function() {
if (hasClass(modal,inClass)) {
Expand Down Expand Up @@ -1284,6 +1282,7 @@
triggerHide = function() {
modal[style].display = '';
element && (setFocus(element));
bootstrapCustomEvent.call(modal, hiddenEvent, component);

(function(){
if (!getElementsByClassName(DOC,component+' '+inClass)[0]) {
Expand Down Expand Up @@ -1339,9 +1338,7 @@
stringModal in currentOpen && currentOpen[stringModal].hide();
}

if ( this[backdrop] ) {
!modalOverlay && createOverlay();
}
this[backdrop] && !modalOverlay && createOverlay();

if ( overlay && modalOverlay && !hasClass(overlay,inClass)) {
overlay[offsetWidth]; // force reflow to enable trasition
Expand All @@ -1360,7 +1357,7 @@
modal[setAttribute](ariaHidden, false);

hasClass(modal,'fade') ? emulateTransitionEnd(modal, triggerShow) : triggerShow();
}, supportTransitions && overlay ? overlayDelay : 0);
}, supportTransitions && overlay && overlayDelay ? overlayDelay : 0);
};
this.hide = function() {
bootstrapCustomEvent.call(modal, hideEvent, component);
Expand All @@ -1372,7 +1369,7 @@

setTimeout(function(){
hasClass(modal,'fade') ? emulateTransitionEnd(modal, triggerHide) : triggerHide();
}, supportTransitions && overlay ? overlayDelay : 0);
}, supportTransitions && overlay && overlayDelay ? overlayDelay : 1);
};
this.setContent = function( content ) {
queryElement('.'+component+'-content',modal)[innerHTML] = content;
Expand Down
2 changes: 1 addition & 1 deletion dist/bootstrap-native.min.js

Large diffs are not rendered by default.

13 changes: 5 additions & 8 deletions lib/V3/modal-native.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,6 @@ var Modal = function(element, options) { // element can be the modal/triggering
scrollBarWidth = measureScrollbar();
},
createOverlay = function() {
modalOverlay = 1;

var newOverlay = DOC[createElement]('div');
overlay = queryElement('.'+modalBackdropString);

Expand All @@ -91,14 +89,14 @@ var Modal = function(element, options) { // element can be the modal/triggering
overlay = newOverlay;
DOC[body][appendChild](overlay);
}
modalOverlay = 1;
},
removeOverlay = function() {
overlay = queryElement('.'+modalBackdropString);
if ( overlay && overlay !== null && typeof overlay === 'object' ) {
modalOverlay = 0;
DOC[body].removeChild(overlay); overlay = null;
}
bootstrapCustomEvent.call(modal, hiddenEvent, component);
},
keydownHandlerToggle = function() {
if (hasClass(modal,inClass)) {
Expand Down Expand Up @@ -132,6 +130,7 @@ var Modal = function(element, options) { // element can be the modal/triggering
triggerHide = function() {
modal[style].display = '';
element && (setFocus(element));
bootstrapCustomEvent.call(modal, hiddenEvent, component);

(function(){
if (!getElementsByClassName(DOC,component+' '+inClass)[0]) {
Expand Down Expand Up @@ -187,9 +186,7 @@ var Modal = function(element, options) { // element can be the modal/triggering
stringModal in currentOpen && currentOpen[stringModal].hide();
}

if ( this[backdrop] ) {
!modalOverlay && createOverlay();
}
this[backdrop] && !modalOverlay && createOverlay();

if ( overlay && modalOverlay && !hasClass(overlay,inClass)) {
overlay[offsetWidth]; // force reflow to enable trasition
Expand All @@ -208,7 +205,7 @@ var Modal = function(element, options) { // element can be the modal/triggering
modal[setAttribute](ariaHidden, false);

hasClass(modal,'fade') ? emulateTransitionEnd(modal, triggerShow) : triggerShow();
}, supportTransitions && overlay ? overlayDelay : 0);
}, supportTransitions && overlay && overlayDelay ? overlayDelay : 0);
};
this.hide = function() {
bootstrapCustomEvent.call(modal, hideEvent, component);
Expand All @@ -220,7 +217,7 @@ var Modal = function(element, options) { // element can be the modal/triggering

setTimeout(function(){
hasClass(modal,'fade') ? emulateTransitionEnd(modal, triggerHide) : triggerHide();
}, supportTransitions && overlay ? overlayDelay : 0);
}, supportTransitions && overlay && overlayDelay ? overlayDelay : 1);
};
this.setContent = function( content ) {
queryElement('.'+component+'-content',modal)[innerHTML] = content;
Expand Down
9 changes: 4 additions & 5 deletions lib/V4/modal-native.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,6 @@ var Modal = function(element, options) { // element can be the modal/triggering
scrollBarWidth = measureScrollbar();
},
createOverlay = function() {
modalOverlay = 1;

var newOverlay = DOC[createElement]('div');
overlay = queryElement('.'+modalBackdropString);

Expand All @@ -91,14 +89,14 @@ var Modal = function(element, options) { // element can be the modal/triggering
overlay = newOverlay;
DOC[body][appendChild](overlay);
}
modalOverlay = 1;
},
removeOverlay = function() {
overlay = queryElement('.'+modalBackdropString);
if ( overlay && overlay !== null && typeof overlay === 'object' ) {
modalOverlay = 0;
DOC[body].removeChild(overlay); overlay = null;
}
bootstrapCustomEvent.call(modal, hiddenEvent, component);
},
keydownHandlerToggle = function() {
if (hasClass(modal,showClass)) {
Expand Down Expand Up @@ -132,6 +130,7 @@ var Modal = function(element, options) { // element can be the modal/triggering
triggerHide = function() {
modal[style].display = '';
element && (setFocus(element));
bootstrapCustomEvent.call(modal, hiddenEvent, component);

(function(){
if (!getElementsByClassName(DOC,component+' '+showClass)[0]) {
Expand Down Expand Up @@ -207,7 +206,7 @@ var Modal = function(element, options) { // element can be the modal/triggering
modal[setAttribute](ariaHidden, false);

hasClass(modal,'fade') ? emulateTransitionEnd(modal, triggerShow) : triggerShow();
}, supportTransitions && overlay ? overlayDelay : 0);
}, supportTransitions && overlay && overlayDelay ? overlayDelay : 0);
};
this.hide = function() {
bootstrapCustomEvent.call(modal, hideEvent, component);
Expand All @@ -219,7 +218,7 @@ var Modal = function(element, options) { // element can be the modal/triggering

setTimeout(function(){
hasClass(modal,'fade') ? emulateTransitionEnd(modal, triggerHide) : triggerHide();
}, supportTransitions && overlay ? overlayDelay : 0);
}, supportTransitions && overlay && overlayDelay ? overlayDelay : 1);
};
this.setContent = function( content ) {
queryElement('.'+component+'-content',modal)[innerHTML] = content;
Expand Down

0 comments on commit ed976b7

Please sign in to comment.