Skip to content

Commit a5d471c

Browse files
authored
feat(dropdown,popup): support individual show and hide transition and duration
This PR adds optional support for individual setting of transition method and duration to the dropdown and popup module. We already have the same optional setting in toast, modal and dimmer, so this PR concludes a unique syntax. Because the settings are optional, this change is 100% backwards compatible.
1 parent 6e4ff1d commit a5d471c

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/definitions/modules/dropdown.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1869,7 +1869,7 @@ $.fn.dropdown = function(parameters) {
18691869
return count;
18701870
},
18711871
transition: function($subMenu) {
1872-
return (settings.transition == 'auto')
1872+
return (settings.transition === 'auto')
18731873
? module.is.upward($subMenu)
18741874
? 'slide up'
18751875
: 'slide down'
@@ -3620,12 +3620,12 @@ $.fn.dropdown = function(parameters) {
36203620
;
36213621
module.verbose('Doing menu show animation', $currentMenu);
36223622
module.set.direction($subMenu);
3623-
transition = module.get.transition($subMenu);
3623+
transition = settings.transition.showMethod || module.get.transition($subMenu);
36243624
if( module.is.selection() ) {
36253625
module.set.scrollPosition(module.get.selectedItem(), true);
36263626
}
36273627
if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {
3628-
if(transition == 'none') {
3628+
if(transition === 'none') {
36293629
start();
36303630
$currentMenu.transition({
36313631
displayType: module.get.displayType()
@@ -3638,7 +3638,7 @@ $.fn.dropdown = function(parameters) {
36383638
animation : transition + ' in',
36393639
debug : settings.debug,
36403640
verbose : settings.verbose,
3641-
duration : settings.duration,
3641+
duration : settings.transition.showDuration || settings.duration,
36423642
queue : true,
36433643
onStart : start,
36443644
displayType: module.get.displayType(),
@@ -3664,7 +3664,7 @@ $.fn.dropdown = function(parameters) {
36643664
}
36653665
module.remove.active();
36663666
},
3667-
transition = module.get.transition($subMenu)
3667+
transition = settings.transition.hideMethod || module.get.transition($subMenu)
36683668
;
36693669
callback = $.isFunction(callback)
36703670
? callback
@@ -3673,7 +3673,7 @@ $.fn.dropdown = function(parameters) {
36733673
if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) {
36743674
module.verbose('Doing menu hide animation', $currentMenu);
36753675

3676-
if(transition == 'none') {
3676+
if(transition === 'none') {
36773677
start();
36783678
$currentMenu.transition({
36793679
displayType: module.get.displayType()
@@ -3684,7 +3684,7 @@ $.fn.dropdown = function(parameters) {
36843684
$currentMenu
36853685
.transition({
36863686
animation : transition + ' out',
3687-
duration : settings.duration,
3687+
duration : settings.transition.hideDuration || settings.duration,
36883688
debug : settings.debug,
36893689
verbose : settings.verbose,
36903690
queue : false,

src/definitions/modules/popup.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -434,11 +434,11 @@ $.fn.popup = function(parameters) {
434434
module.set.visible();
435435
$popup
436436
.transition({
437-
animation : settings.transition + ' in',
437+
animation : (settings.transition.showMethod || settings.transition) + ' in',
438438
queue : false,
439439
debug : settings.debug,
440440
verbose : settings.verbose,
441-
duration : settings.duration,
441+
duration : settings.transition.showDuration || settings.duration,
442442
onComplete : function() {
443443
module.bind.close();
444444
callback.call($popup, element);
@@ -457,9 +457,9 @@ $.fn.popup = function(parameters) {
457457
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
458458
$popup
459459
.transition({
460-
animation : settings.transition + ' out',
460+
animation : (settings.transition.hideMethod || settings.transition) + ' out',
461461
queue : false,
462-
duration : settings.duration,
462+
duration : settings.transition.hideDuration || settings.duration,
463463
debug : settings.debug,
464464
verbose : settings.verbose,
465465
onComplete : function() {

0 commit comments

Comments
 (0)