From 227dcfd188806bc081bed94d0bccc2a58dda058d Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 11 Jan 2022 15:35:20 +0100 Subject: [PATCH] wait #5014 @1.5 --- js/libs/fluidbook/fluidbook.articles.js | 34 ++++++++++++++----- js/libs/jquery/jquery.scrollto.min.js | 7 ++++ .../perfect-scrollbar/perfect-scrollbar.js | 1 + style/menu-articles.less | 8 ++++- 4 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 js/libs/jquery/jquery.scrollto.min.js diff --git a/js/libs/fluidbook/fluidbook.articles.js b/js/libs/fluidbook/fluidbook.articles.js index aa22e3fd..a40f7db0 100644 --- a/js/libs/fluidbook/fluidbook.articles.js +++ b/js/libs/fluidbook/fluidbook.articles.js @@ -14,17 +14,17 @@ FluidbookArticles.prototype = { $this.resize(); }); - $(document).on(this.fluidbook.input.clickEvent, '.pdfarticle-holder', function () { - $(this).addClass('active'); - }); - $(document).on('mouseleave', '.pdfarticle-holder', function () { - $(this).removeClass('active'); - }); + // $(document).on(this.fluidbook.input.clickEvent, '.pdfarticle-holder', function () { + // $(this).addClass('active'); + // }); + // $(document).on('mouseleave', '.pdfarticle-holder', function () { + // $(this).removeClass('active'); + // }); $(document).on(this.fluidbook.input.clickEvent, '.mview[data-menu="article"] .articlesPrint', function () { var view = $(this).closest('.mview'); if ($(view).hasClass('pdf')) { - $(view).find('.pdfarticle').contents().find('#print').click(); + $(view).find('.pdfarticle.print').contents().find('#print').click(); } else { var a = $(this).closest('article').attr('data-id'); var print_window = window.open('', 'print_article', 'height=400,width=600'); @@ -74,7 +74,7 @@ FluidbookArticles.prototype = { footerContents += ''; attrs += ' data-max-width="' + width + '" '; cls = 'pdf'; - view = '
'; + view = '
' + '' + '' + '
'; } else { view = '
' + article.contents + '
'; } @@ -83,6 +83,24 @@ FluidbookArticles.prototype = { this.fluidbook.menu.viewWrap(this.fluidbook.menu.closeButton() + view, 'article', attrs, cls, true); + $('iframe.pdfarticle.view').each(function () { + var iframe = $(this); + var view = iframe.parent().parent(); + console.log(view,this); + $(this).on('load', function () { + var body = $(this).contents().find('body'); + var m=25; + $(body).on('mousewheel', function (e) { + var d=(e.deltaY*m); + var v='-='+d; + if(e.deltaY<0) { + v='+='+(d*-1); + } + $(view).scrollTo(v); + }); + }); + }); + if ($("#view article").attr('dir') === undefined) { $("#view article").attr('dir', this.fluidbook.l10n.dir); } diff --git a/js/libs/jquery/jquery.scrollto.min.js b/js/libs/jquery/jquery.scrollto.min.js new file mode 100644 index 00000000..36002ed1 --- /dev/null +++ b/js/libs/jquery/jquery.scrollto.min.js @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.3 + */ +;(function(factory){'use strict';if(typeof define==='function'&&define.amd){define(['jquery'],factory)}else if(typeof module!=='undefined'&&module.exports){module.exports=factory(require('jquery'))}else{factory(jQuery)}})(function($){'use strict';var $scrollTo=$.scrollTo=function(target,duration,settings){return $(window).scrollTo(target,duration,settings)};$scrollTo.defaults={axis:'xy',duration:0,limit:true};function isWin(elem){return!elem.nodeName||$.inArray(elem.nodeName.toLowerCase(),['iframe','#document','html','body'])!==-1}function isFunction(obj){return typeof obj==='function'}$.fn.scrollTo=function(target,duration,settings){if(typeof duration==='object'){settings=duration;duration=0}if(typeof settings==='function'){settings={onAfter:settings}}if(target==='max'){target=9e9}settings=$.extend({},$scrollTo.defaults,settings);duration=duration||settings.duration;var queue=settings.queue&&settings.axis.length>1;if(queue){duration/=2}settings.offset=both(settings.offset);settings.over=both(settings.over);return this.each(function(){if(target===null){return}var win=isWin(this),elem=win?this.contentWindow||window:this,$elem=$(elem),targ=target,attr={},toff;switch(typeof targ){case 'number':case 'string':if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=win?$(targ):$(targ,elem);case 'object':if(targ.length===0){return}if(targ.is||targ.style){toff=(targ=$(targ)).offset()}}var offset=isFunction(settings.offset)&&settings.offset(elem,targ)||settings.offset;$.each(settings.axis.split(''),function(i,axis){var Pos=axis==='x'?'Left':'Top',pos=Pos.toLowerCase(),key='scroll'+Pos,prev=$elem[key](),max=$scrollTo.max(elem,axis);if(toff){attr[key]=toff[pos]+(win?0:prev-$elem.offset()[pos]);if(settings.margin){attr[key]-=parseInt(targ.css('margin'+Pos),10)||0;attr[key]-=parseInt(targ.css('border'+Pos+'Width'),10)||0}attr[key]+=offset[pos]||0;if(settings.over[pos]){attr[key]+=targ[axis==='x'?'width':'height']()*settings.over[pos]}}else{var val=targ[pos];attr[key]=val.slice&&val.slice(-1)==='%'?parseFloat(val)/100*max:val}if(settings.limit&&/^\d+$/.test(attr[key])){attr[key]=attr[key]<=0?0:Math.min(attr[key],max)}if(!i&&settings.axis.length>1){if(prev===attr[key]){attr={}}else if(queue){animate(settings.onAfterFirst);attr={}}}});animate(settings.onAfter);function animate(callback){var opts=$.extend({},settings,{queue:true,duration:duration,complete:callback&&function(){callback.call(elem,targ,settings)}});$elem.animate(attr,opts)}})};$scrollTo.max=function(elem,axis){var Dim=axis==='x'?'Width':'Height',scroll='scroll'+Dim;if(!isWin(elem)){return elem[scroll]-$(elem)[Dim.toLowerCase()]()}var size='client'+Dim,doc=elem.ownerDocument||elem.document,html=doc.documentElement,body=doc.body;return Math.max(html[scroll],body[scroll])-Math.min(html[size],body[size])};function both(val){return isFunction(val)||$.isPlainObject(val)?val:{top:val,left:val}}$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(t){return $(t.elem)[t.prop]()},set:function(t){var curr=this.get(t);if(t.options.interrupt&&t._last&&t._last!==curr){return $(t.elem).stop()}var next=Math.round(t.now);if(curr!==next){$(t.elem)[t.prop](next);t._last=this.get(t)}}};return $scrollTo}); \ No newline at end of file diff --git a/js/libs/perfect-scrollbar/perfect-scrollbar.js b/js/libs/perfect-scrollbar/perfect-scrollbar.js index 194202af..7921c6b8 100644 --- a/js/libs/perfect-scrollbar/perfect-scrollbar.js +++ b/js/libs/perfect-scrollbar/perfect-scrollbar.js @@ -2201,6 +2201,7 @@ } function mousewheelHandler(e) { + console.log(e); var ref = getDeltaFromEvent(e); var deltaX = ref[0]; var deltaY = ref[1]; diff --git a/style/menu-articles.less b/style/menu-articles.less index ba0667e3..6877f6ed 100644 --- a/style/menu-articles.less +++ b/style/menu-articles.less @@ -109,7 +109,13 @@ overflow: hidden; width: 100%; height: 100%; - pointer-events: none; + pointer-events: auto; + } + + iframe.print{ + width: 0; + height: 0; + position: absolute; } &.active { -- 2.39.5