From 11e5e5d409e6c80617b3569199e404c8e4e44e06 Mon Sep 17 00:00:00 2001 From: Tom <tw201207@gmail.com> Date: Thu, 13 Nov 2014 16:10:46 -0500 Subject: [PATCH] Fix that opacity slider --- src/main/java/com/gitblit/wicket/pages/scripts/imgdiff.js | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/scripts/imgdiff.js b/src/main/java/com/gitblit/wicket/pages/scripts/imgdiff.js index 2be4317..bfde435 100644 --- a/src/main/java/com/gitblit/wicket/pages/scripts/imgdiff.js +++ b/src/main/java/com/gitblit/wicket/pages/scripts/imgdiff.js @@ -15,9 +15,16 @@ */ jQuery(function () { // Runs on jQuery's document.ready and sets up the scroll event handlers for all image diffs. - jQuery(".imgdiff-slider").scroll(function() { - var w = 1.0 - (this.scrollLeft / (this.scrollWidth - (this.clientWidth || this.offsetWidth))); - // We encode the target img id in the slider's id: slider-imgdiffNNN. - jQuery('#' + this.id.substr(this.id.indexOf('-') + 1)).css("opacity", w); + jQuery(".imgdiff-slider-resizeable").each(function () { + var $el = jQuery(this); + var $img = jQuery('#' + this.id.substr(this.id.indexOf('-') + 1)); + function fade() { + var w = Math.max(0, $el.width() - 18); // Must correspond to CSS: 18 px is handle width, 400 px is slider width + w = Math.max(0, 1.0 - w / 400.0); + $img.css("opacity", w); + } + // Unfortunately, not even jQuery triggers resize events for our resizeable... so let's track the mouse. + $el.on('mousedown', function() { $el.on('mousemove', fade); }); + $el.on('mouseup', function() { $el.off('mousemove', fade); fade(); }); }); }); -- Gitblit v1.9.1