Browse Source

adds delay for hover intent, refactors delayed hide

Former-commit-id: 67efb2ad9d
Former-commit-id: dcbc3b6d3a
pull/258/head
Jack Lukic 12 years ago
parent
commit
14fa263769
8 changed files with 98 additions and 43 deletions
  1. 27
      build/minified/modules/dropdown.js
  2. 2
      build/minified/modules/dropdown.min.js
  3. 2
      build/minified/modules/tab.min.js
  4. 27
      build/packaged/modules/dropdown.js
  5. 2
      build/packaged/semantic.min.js.REMOVED.git-id
  6. 27
      build/uncompressed/modules/dropdown.js
  7. 27
      node/src/files/components/semantic/modules/dropdown.js
  8. 27
      src/modules/dropdown.js

27
build/minified/modules/dropdown.js

@ -72,8 +72,8 @@ $.fn.dropdown = function(parameters) {
}
else if(settings.on == 'hover') {
$module
.on('mouseenter' + eventNamespace, module.show)
.on('mouseleave' + eventNamespace, module.delayedHide)
.on('mouseenter' + eventNamespace, module.delay.show)
.on('mouseleave' + eventNamespace, module.delay.hide)
;
}
else {
@ -355,7 +355,6 @@ $.fn.dropdown = function(parameters) {
show: function() {
module.debug('Checking if dropdown can show');
clearTimeout(module.graceTimer);
if( !module.is.visible() ) {
module.hideOthers();
$module
@ -383,9 +382,17 @@ $.fn.dropdown = function(parameters) {
}
},
delayedHide: function() {
module.verbose('User moused away setting timer to hide dropdown');
module.graceTimer = setTimeout(module.hide, settings.gracePeriod);
delay: {
show: function() {
module.verbose('Delaying show event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.show, settings.delay.show);
},
hide: function() {
module.verbose('Delaying hide event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.hide, settings.delay.hide);
}
},
hideOthers: function() {
@ -524,7 +531,7 @@ $.fn.dropdown = function(parameters) {
found = instance[value];
}
else {
module.error(error.method);
module.error(errors.method);
}
});
}
@ -566,8 +573,12 @@ $.fn.dropdown.settings = {
performance : true,
on : 'click',
gracePeriod : 300,
action : 'hide',
delay: {
show: 50,
hide: 300
},
animation : {
show: 'slide',

2
build/minified/modules/dropdown.min.js
File diff suppressed because it is too large
View File

2
build/minified/modules/tab.min.js
File diff suppressed because it is too large
View File

27
build/packaged/modules/dropdown.js

@ -72,8 +72,8 @@ $.fn.dropdown = function(parameters) {
}
else if(settings.on == 'hover') {
$module
.on('mouseenter' + eventNamespace, module.show)
.on('mouseleave' + eventNamespace, module.delayedHide)
.on('mouseenter' + eventNamespace, module.delay.show)
.on('mouseleave' + eventNamespace, module.delay.hide)
;
}
else {
@ -355,7 +355,6 @@ $.fn.dropdown = function(parameters) {
show: function() {
module.debug('Checking if dropdown can show');
clearTimeout(module.graceTimer);
if( !module.is.visible() ) {
module.hideOthers();
$module
@ -383,9 +382,17 @@ $.fn.dropdown = function(parameters) {
}
},
delayedHide: function() {
module.verbose('User moused away setting timer to hide dropdown');
module.graceTimer = setTimeout(module.hide, settings.gracePeriod);
delay: {
show: function() {
module.verbose('Delaying show event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.show, settings.delay.show);
},
hide: function() {
module.verbose('Delaying hide event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.hide, settings.delay.hide);
}
},
hideOthers: function() {
@ -524,7 +531,7 @@ $.fn.dropdown = function(parameters) {
found = instance[value];
}
else {
module.error(error.method);
module.error(errors.method);
}
});
}
@ -566,8 +573,12 @@ $.fn.dropdown.settings = {
performance : true,
on : 'click',
gracePeriod : 300,
action : 'hide',
delay: {
show: 50,
hide: 300
},
animation : {
show: 'slide',

2
build/packaged/semantic.min.js.REMOVED.git-id

@ -1 +1 @@
7f8c1444ffdd04c2c1ebd873adfbc69111c410f2
e83850ded1c28d221e3a4ed7c80a6459f9696a5f

27
build/uncompressed/modules/dropdown.js

@ -72,8 +72,8 @@ $.fn.dropdown = function(parameters) {
}
else if(settings.on == 'hover') {
$module
.on('mouseenter' + eventNamespace, module.show)
.on('mouseleave' + eventNamespace, module.delayedHide)
.on('mouseenter' + eventNamespace, module.delay.show)
.on('mouseleave' + eventNamespace, module.delay.hide)
;
}
else {
@ -355,7 +355,6 @@ $.fn.dropdown = function(parameters) {
show: function() {
module.debug('Checking if dropdown can show');
clearTimeout(module.graceTimer);
if( !module.is.visible() ) {
module.hideOthers();
$module
@ -383,9 +382,17 @@ $.fn.dropdown = function(parameters) {
}
},
delayedHide: function() {
module.verbose('User moused away setting timer to hide dropdown');
module.graceTimer = setTimeout(module.hide, settings.gracePeriod);
delay: {
show: function() {
module.verbose('Delaying show event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.show, settings.delay.show);
},
hide: function() {
module.verbose('Delaying hide event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.hide, settings.delay.hide);
}
},
hideOthers: function() {
@ -524,7 +531,7 @@ $.fn.dropdown = function(parameters) {
found = instance[value];
}
else {
module.error(error.method);
module.error(errors.method);
}
});
}
@ -566,8 +573,12 @@ $.fn.dropdown.settings = {
performance : true,
on : 'click',
gracePeriod : 300,
action : 'hide',
delay: {
show: 50,
hide: 300
},
animation : {
show: 'slide',

27
node/src/files/components/semantic/modules/dropdown.js

@ -72,8 +72,8 @@ $.fn.dropdown = function(parameters) {
}
else if(settings.on == 'hover') {
$module
.on('mouseenter' + eventNamespace, module.show)
.on('mouseleave' + eventNamespace, module.delayedHide)
.on('mouseenter' + eventNamespace, module.delay.show)
.on('mouseleave' + eventNamespace, module.delay.hide)
;
}
else {
@ -355,7 +355,6 @@ $.fn.dropdown = function(parameters) {
show: function() {
module.debug('Checking if dropdown can show');
clearTimeout(module.graceTimer);
if( !module.is.visible() ) {
module.hideOthers();
$module
@ -383,9 +382,17 @@ $.fn.dropdown = function(parameters) {
}
},
delayedHide: function() {
module.verbose('User moused away setting timer to hide dropdown');
module.graceTimer = setTimeout(module.hide, settings.gracePeriod);
delay: {
show: function() {
module.verbose('Delaying show event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.show, settings.delay.show);
},
hide: function() {
module.verbose('Delaying hide event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.hide, settings.delay.hide);
}
},
hideOthers: function() {
@ -524,7 +531,7 @@ $.fn.dropdown = function(parameters) {
found = instance[value];
}
else {
module.error(error.method);
module.error(errors.method);
}
});
}
@ -566,8 +573,12 @@ $.fn.dropdown.settings = {
performance : true,
on : 'click',
gracePeriod : 300,
action : 'hide',
delay: {
show: 50,
hide: 300
},
animation : {
show: 'slide',

27
src/modules/dropdown.js

@ -72,8 +72,8 @@ $.fn.dropdown = function(parameters) {
}
else if(settings.on == 'hover') {
$module
.on('mouseenter' + eventNamespace, module.show)
.on('mouseleave' + eventNamespace, module.delayedHide)
.on('mouseenter' + eventNamespace, module.delay.show)
.on('mouseleave' + eventNamespace, module.delay.hide)
;
}
else {
@ -355,7 +355,6 @@ $.fn.dropdown = function(parameters) {
show: function() {
module.debug('Checking if dropdown can show');
clearTimeout(module.graceTimer);
if( !module.is.visible() ) {
module.hideOthers();
$module
@ -383,9 +382,17 @@ $.fn.dropdown = function(parameters) {
}
},
delayedHide: function() {
module.verbose('User moused away setting timer to hide dropdown');
module.graceTimer = setTimeout(module.hide, settings.gracePeriod);
delay: {
show: function() {
module.verbose('Delaying show event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.show, settings.delay.show);
},
hide: function() {
module.verbose('Delaying hide event to ensure user intent');
clearTimeout(module.graceTimer);
module.graceTimer = setTimeout(module.hide, settings.delay.hide);
}
},
hideOthers: function() {
@ -524,7 +531,7 @@ $.fn.dropdown = function(parameters) {
found = instance[value];
}
else {
module.error(error.method);
module.error(errors.method);
}
});
}
@ -566,8 +573,12 @@ $.fn.dropdown.settings = {
performance : true,
on : 'click',
gracePeriod : 300,
action : 'hide',
delay: {
show: 50,
hide: 300
},
animation : {
show: 'slide',

Loading…
Cancel
Save