Browse Source

#6449 #6495 - Adapt fix for dimmer scroll. Move to modal from dimmer. Blocking scroll requires determining content height which only modal can do

pull/6579/merge
Jack 6 years ago
parent
commit
d6ebab1e6c
2 changed files with 17 additions and 13 deletions
  1. 12
      src/definitions/modules/dimmer.js
  2. 18
      src/definitions/modules/modal.js

12
src/definitions/modules/dimmer.js

@ -157,9 +157,6 @@ $.fn.dimmer = function(parameters) {
event.stopImmediatePropagation(); event.stopImmediatePropagation();
} }
}, },
preventScroll: function(event) {
event.preventDefault();
}
}, },
addContent: function(element) { addContent: function(element) {
@ -197,11 +194,6 @@ $.fn.dimmer = function(parameters) {
module.animate.show(callback); module.animate.show(callback);
settings.onShow.call(element); settings.onShow.call(element);
settings.onChange.call(element); settings.onChange.call(element);
if(module.is.page()) {
// touch events default to passive, due to changes in chrome to optimize mobile perf
$dimmable.get(0).addEventListener('touchmove', module.event.preventScroll, { passive: false });
}
} }
else { else {
module.debug('Dimmer is already shown or disabled'); module.debug('Dimmer is already shown or disabled');
@ -218,10 +210,6 @@ $.fn.dimmer = function(parameters) {
module.animate.hide(callback); module.animate.hide(callback);
settings.onHide.call(element); settings.onHide.call(element);
settings.onChange.call(element); settings.onChange.call(element);
if(module.is.page()) {
$dimmable.get(0).removeEventListener('touchmove', module.event.preventScroll, { passive: false });
}
} }
else { else {
module.debug('Dimmer is not visible'); module.debug('Dimmer is not visible');

18
src/definitions/modules/modal.js

@ -209,6 +209,16 @@ $.fn.modal = function(parameters) {
$window $window
.on('resize' + elementEventNamespace, module.event.resize) .on('resize' + elementEventNamespace, module.event.resize)
; ;
},
scrollLock: function() {
// touch events default to passive, due to changes in chrome to optimize mobile perf
$dimmable.get(0).addEventListener('touchmove', module.event.preventScroll, { passive: false });
}
},
unbind: {
scrollLock: function() {
$dimmable.get(0).removeEventListener('touchmove', module.event.preventScroll, { passive: false });
} }
}, },
@ -229,6 +239,9 @@ $.fn.modal = function(parameters) {
ignoreRepeatedEvents = false; ignoreRepeatedEvents = false;
}); });
}, },
preventScroll: function(event) {
event.preventDefault();
},
deny: function() { deny: function() {
if(ignoreRepeatedEvents || settings.onDeny.call(element, $(this)) === false) { if(ignoreRepeatedEvents || settings.onDeny.call(element, $(this)) === false) {
module.verbose('Deny callback returned false cancelling hide'); module.verbose('Deny callback returned false cancelling hide');
@ -304,7 +317,6 @@ $.fn.modal = function(parameters) {
? callback ? callback
: function(){} : function(){}
; ;
console.log('test');
module.refreshModals(); module.refreshModals();
module.set.dimmerSettings(); module.set.dimmerSettings();
module.showModal(callback); module.showModal(callback);
@ -315,6 +327,7 @@ $.fn.modal = function(parameters) {
? callback ? callback
: function(){} : function(){}
; ;
module.unbind.scrollLock();
module.refreshModals(); module.refreshModals();
module.hideModal(callback); module.hideModal(callback);
}, },
@ -718,15 +731,18 @@ $.fn.modal = function(parameters) {
scrolling: function() { scrolling: function() {
$dimmable.addClass(className.scrolling); $dimmable.addClass(className.scrolling);
$module.addClass(className.scrolling); $module.addClass(className.scrolling);
module.unbind.scrollLock();
}, },
legacy: function() { legacy: function() {
$module.addClass(className.legacy); $module.addClass(className.legacy);
}, },
type: function() { type: function() {
console.log('setting');
if(module.can.fit()) { if(module.can.fit()) {
module.verbose('Modal fits on screen'); module.verbose('Modal fits on screen');
if(!module.others.active() && !module.others.animating()) { if(!module.others.active() && !module.others.animating()) {
module.remove.scrolling(); module.remove.scrolling();
module.bind.scrollLock();
} }
} }
else { else {

Loading…
Cancel
Save