فهرست منبع

[core] Add support for fadeOut and speed to the fadeVisible ko binding

Johan Åhlén 10 سال پیش
والد
کامیت
7cde058

+ 12 - 2
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -28,12 +28,22 @@ ko.bindingHandlers.slideVisible = {
 ko.bindingHandlers.fadeVisible = {
   init: function (element, valueAccessor) {
     var value = valueAccessor();
-    $(element).toggle(ko.unwrap(value));
+    var toggleValue = typeof value.value === "undefined" ? value : value.value;
+    $(element).toggle(ko.unwrap(toggleValue));
   },
   update: function (element, valueAccessor) {
     var value = valueAccessor();
+    var toggleValue = typeof value.value === "undefined" ? value : value.value;
+    var speed = typeof value.speed === "undefined" ? 'normal' : value.speed;
+    var fadeOut = typeof value.fadeOut === "undefined" ? false : value.fadeOut;
     $(element).stop();
-    ko.unwrap(value) ? $(element).fadeIn() : $(element).hide();
+    if (ko.unwrap(toggleValue)) {
+      $(element).fadeIn(speed);
+    } else if (fadeOut) {
+      $(element).fadeOut(speed);
+    } else {
+      $(element).hide();
+    }
   }
 };
 

+ 1 - 1
desktop/core/src/desktop/templates/ko_components.mako

@@ -910,7 +910,7 @@ from desktop.views import _ko
       <div class="all-alternatives" data-bind="foreach: snippetsInWheel">
         <div class="add-snippet-alt pointer" style="display:none;" data-bind="
             event: { 'mouseenter': $parent.showHistory, 'mouseleave': $parent.hideHistory },
-            fadeVisible: $parent.showingHistory(),
+            fadeVisible: { value: $parent.showingHistory(), fadeOut: true, speed: 'slow' },
             style: { 'left': $parent.positions[$index()].left, 'top': $parent.positions[$index()].top },
             click: $parent.addNewSnippet">
           <div data-bind="text: name()"></div>