From ea05a3a5c6993386a240ea2cba94f5b35e0c0fc1 Mon Sep 17 00:00:00 2001 From: LarsDW223 Date: Sat, 7 May 2016 14:50:33 +0200 Subject: [PATCH] Added JavaScript zoom function for preview images. Fixes #19. --- script.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ syntax.php | 7 ++++++- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 script.js diff --git a/script.js b/script.js new file mode 100644 index 0000000..2645b14 --- /dev/null +++ b/script.js @@ -0,0 +1,50 @@ +/* + * For Filelist Plugin + * + * @author joachimmueller + */ + +/* + * run on document load, setup everything we need + */ +jQuery(function () { + "use strict"; + + // CONFIG + + // these 2 variable determine popup's distance from the cursor + // you might want to adjust to get the right result + var xOffset = 10; + var yOffset = 30; + + // END CONFIG + + jQuery("img.filelist_preview").hover(function (e) { + this.t = this.title; + this.title = ""; + + var c; + if (this.t !== "") { + c = "
" + this.t; + } else { + c = ""; + } + jQuery("body").append("

Image preview" + c + "

"); + jQuery("#__filelist_preview") + .css("top", (e.pageY - xOffset) + "px") + .css("left", (e.pageX + yOffset) + "px") + .css("max-width", "300px") + .css("max-height", "300px") + .css("position", "absolute") + .fadeIn("fast"); + }, function () { + this.title = this.t; + jQuery("#__filelist_preview").remove(); + }); + jQuery("img.filelist_preview").mousemove(function (e) { + jQuery("#__filelist_preview") + .css("top", (e.pageY - xOffset) + "px") + .css("left", (e.pageX + yOffset) + "px") + .css("position", "absolute"); + }); +}); diff --git a/syntax.php b/syntax.php index 7e1e83b..cc82c2b 100644 --- a/syntax.php +++ b/syntax.php @@ -89,6 +89,7 @@ class syntax_plugin_filelist extends DokuWiki_Syntax_Plugin { 'showsize' => 0, 'showdate' => 0, 'listsep' => '", "', + 'onhover' => 0, ); foreach($flags as $flag) { list($name, $value) = explode('=', $flag); @@ -517,7 +518,11 @@ class syntax_plugin_filelist extends DokuWiki_Syntax_Plugin { if ($previewsize == 0) { $previewsize = 32; } - $renderer->doc .= ''; + $imgclass = ''; + if ($params['onhover']) { + $imgclass = 'class="filelist_preview"'; + } + $renderer->doc .= ''; } }