Well, they are dependent on jQuery, so I don't know if that matters or not, but here's the code just in case:
ko.bindingHandlers.slideVisible = {
init: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).toggle(value);
},
update: function (element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor(), allBindings = allBindingsAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
var duration = allBindings.slideDuration || 400;
if (valueUnwrapped == true)
$(element).slideDown(duration);
else
$(element).slideUp(duration);
}
};
ko.bindingHandlers.fadeVisible = {
init: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).toggle(value);
},
update: function (element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor(), allBindings = allBindingsAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
var duration = allBindings.fadeDuration || 400;
if (valueUnwrapped == true)
$(element).fadeIn(duration);
else
$(element).fadeOut(duration);
}
};
Pretty basic overall...