This repository has been archived on 2023-12-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ae75/www/plaquette-digitale-AE75/data/mobilefirst.js
2020-11-02 15:46:52 +01:00

1 line
9.3 KiB
JavaScript

function FluidbookMobileFirst(fluidbook){this.fluidbook=fluidbook;this.isScrolling=false;this.enabled=this.fluidbook.datas.mobileNavigationType==="mobilefirst";this.transitioning=false;this.firstReveal=true;if(this.enabled){this.fluidbook.datas.logoHideWhenOverriden=false;this.fluidbook.displayOnePage=true;$("#fluidbook").wrap('<div id="scroll"></div>');this.init();this.slider=new FluidbookMobileFirstSlider(this)}else{$("html").addClass("no-mobilefirst")}}FluidbookMobileFirst.prototype={init:function(){var $this=this;$("html").addClass("mobilefirst");$("#scroll").append($("#shadow"));$("#shadow .side").remove();document.getElementById("scroll").addEventListener("scroll",function(){$this.isScrolling=true;$this.checkScroll($(this).scrollTop())},{passive:true});document.getElementById("scroll").addEventListener("touchend",function(){$this.isScrolling=false});$(this.fluidbook).on("fluidbook.zoom.in.start",function(){$("#pages .mf-nav").addClass("hiddenzoom")});$(this.fluidbook).on("fluidbook.zoom.out.end",function(){$("#pages .mf-nav").removeClass("hiddenzoom")});this.fluidbook.datas.soundTheme=""},checkScroll:function(){if(this.transitioning){return}this.checkFooterNavReveal();this.checkLinksReveal()},checkFooterNavReveal:function(){if(this.transitioning){return}var nav=$("#pages .mf-nav");var reveal=$(nav).find(".reveal");var navrect=nav.get(0).getBoundingClientRect();if(navrect.top<this.fluidbook.resize.hh&&reveal.hasClass("toreveal")){reveal.removeClass("toreveal")}},checkLinksReveal:function(){if(this.transitioning){return}var $this=this;var delay=800;$("#links .link:not(.revealed):visible, .clinks [data-animation]:not(.revealed)").each(function(){var rect=$(this).get(0).getBoundingClientRect();if(rect.top<$this.fluidbook.resize.hh){$(this).addClass("revealed");if($(this).find("a.displayArea").length>0){$this.fluidbook.links.animateLink(this,delay)}else if($(this).is(".multimedia.notinteractive")){var url=$(this).find("iframe").attr("src");var iframe=$(this).find("iframe");iframe.attr("src",null);setTimeout(function(){$(iframe).attr("src",url)},10)}else if($(this).is("[data-animation]")){var $link=this;setTimeout(function(){$this.fluidbook.links.animateContentLink($link)},delay)}}})},beforeTransition:function(page){this.transitioning=true;$("#pages .mf-nav").css({opacity:0});var $this=this;var dimensions=this.fluidbook.loader.getPageDimensions(page);var max=Math.max(dimensions.height,$("#currentDoublePage").outerHeight());var selector="#nextDoublePage .page, #nextDoublePage";if($("#nextDoublePage").length===0){selector="#currentDoublePage .page,#currentDoublePage"}$(selector).css({height:dimensions.height,maxHeight:dimensions.height});$("#pages,#fluidbook").css({height:max,maxHeight:max});var scrollTo=$("#scroll").scrollTop();$("#scroll").scrollTop(0).css("transform","translateY("+-scrollTo+"px)").addClass("gototop");setTimeout(function(){$("#scroll").addClass("animate").css("transform","translateY(0px)");setTimeout(function(){$("#scroll").removeClass("gototop").removeClass("animate").css("transform","")},$this.fluidbook.pagetransitions.getTransitionDuration(page)*1e3)},10)},afterTransition:function(page){if(!this.transitioning){return}$("#pages .mf-nav").remove();$("#pages").append(this.getFooterNavigation(page));$("#pages .mf-nav").css("opacity",1);$("#pages .mf-nav .reveal").addClass("toreveal");this.fluidbook.resize.resize();if(this.transitioning){this.transitioning=false;var $this=this;setTimeout(function(){$this.checkScroll()},200);setTimeout(function(){$this.fluidbook.resize.resize()},1e3)}},resize:function(){var bh=$("#currentDoublePage").outerHeight();$("#pages .mf-nav").css("top",bh);$("#links,#searchHighlights,#shadow").css({height:bh,maxHeight:bh});var h=bh+$("#pages .mf-nav").outerHeight();$("#pages,#fluidbook").css({height:h});$("#pages").css("maxHeight",h)},getBookScale:function(aw){return Math.min(620,aw)/this.fluidbook.datas.width},getFooterNavigation:function(page){var visibility=this.fluidbook.getButtonsVisibility(page);var footer='<div class="mf-nav"><div class="reveal">';if(visibility.previous){footer+='<a class="previous" href="#/page/'+(page-1)+'">'+getSpriteIcon("interface-previous-simple")+__("Previous")+"</a>"}footer+='<div class="pagenumbers">'+page+"/"+this.fluidbook.datas.pages+"</div>";if(visibility.next){footer+='<a class="next" href="#/page/'+(page+1)+'">'+__("Next")+getSpriteIcon("interface-next-simple")+"</a>"}footer+="</div></div>";return footer},resizeIndex:function(repeat){if(!this.enabled){return}if(!$(".indexView:visible").closest(".content").hasClass("mobilefirst")){return}if(repeat===undefined){repeat=true}$(".indexView").closest(".content").removeClass("ps").css("overflow","hidden");$(".indexViewHolder").css("width",$(".indexViewHolder .doubleThumb").length*130);var tallerHeight=0;$(".indexViewHolder .pageholder img").each(function(){tallerHeight=Math.max(tallerHeight,$(this).outerHeight())});var indexHeight=tallerHeight+120;var maxHeight=parseFloat($(".mview .content").css("max-height"));var funcHeight=$(".mview .fonctions").outerHeight()||0;var scrollAmount=Math.max(0,indexHeight+funcHeight-maxHeight);if(!isNaN(scrollAmount)&&scrollAmount>0){var cutHeight=tallerHeight-scrollAmount;$(".indexViewHolder .pageholder img").each(function(){var holder=$(this).closest(".pageholder");var thumb=holder.closest(".thumb");var number=thumb.find(".number");var doubleThumb=holder.closest(".doubleThumb");if($(this).outerHeight()>cutHeight){holder.addClass("cut").css("max-height",cutHeight);thumb.css("height",cutHeight).addClass("cut");doubleThumb.css("height",cutHeight);number.css("top",cutHeight-5)}else{holder.css("max-height",null).removeClass("cut");doubleThumb.css("height",doubleThumb.data("height"));number.css("top",number.data("top"));thumb.removeClass("cut")}})}else{$(".indexViewHolder .pageholder").css("max-height",null).removeClass("cut");$(".indexViewHolder .number").each(function(){$(this).css("top",$(this).data("top"))});$(".indexViewHolder .doubleThumb").each(function(){$(this).css("height",$(this).data("height"))});$(".indexViewHolder .thumb").removeClass("cut")}setTimeout(function(){$(".indexViewHolder").perfectScrollbar("update");$(".indexViewHolder").find(".ps__rail-x").addClass("ps--clicking")},500);$(".indexViewHolder").perfectScrollbar({suppressScrollY:true,useBothWheelAxes:true});$(".indexViewHolder").find(".ps__rail-x").addClass("ps--clicking");if(repeat){var $this=this;setTimeout(function(){$this.resizeIndex(false)},200)}$(".indexView").css("opacity",1)}};function FluidbookMobileFirstSlider(mobilefirst){this.mobilefirst=mobilefirst;this.fluidbook=this.mobilefirst.fluidbook;this.width=176;this.init()}FluidbookMobileFirstSlider.prototype={init:function(){var $this=this;$('<div id="mf-slider"><div class="pagethumb"><div class="mask-top"></div><div class="border"></div><div class="mask-bottom"></div></div><div class="slider"><div class="progress"></div></div><div class="pagenumber"></div></div>').insertAfter("#z");this.element=$("#mf-slider");$(this.fluidbook).on("fluidbook.beforePageTransition",function(){$this.element.addClass("hidden")});$(this.fluidbook).on("fluidbook.page.change.end",function(e,page){$this.changePage(page)});$(this.fluidbook).on("fluidbook.resize",function(){$this.resize()});$("#scroll").on("scroll",function(){$this.updateScroll();return true});$(this.fluidbook).on("fluidbook.zoom.in.start",function(){$this.element.addClass("hiddenzoom")});$(this.fluidbook).on("fluidbook.zoom.out.end",function(){$this.element.removeClass("hiddenzoom")})},changePage:function(page){var dim=this.fluidbook.datas.pagesDimensions[page];var ratio=dim[0]/dim[1];var h=this.width/ratio;var $this=this;this.element.find(".pagenumber").text(page+"/"+this.fluidbook.datas.pages);this.element.find(".progress").css("width",100*(page/this.fluidbook.datas.pages)+"%");this.fluidbook.loader.loadThumb(page,function(){var img=$this.fluidbook.loader.loadThumb(page,function(){});var pt=$this.element.find(".pagethumb");$(pt).find("img").remove();$(pt).css("height",h).append(img);$this.element.removeClass("hidden");$this.resize()})},updateScroll:function(){if(this.element.hasClass("hiddenresp")||this.element.hasClass("hiddenzoom")){return}var h=this.element.find(".pagethumb").outerHeight();var fluidbook=$("#fluidbook").get(0).getBoundingClientRect();var visiblePixels=this.fluidbook.resize.hh;if(fluidbook.top>0){visiblePixels-=fluidbook.top}if(fluidbook.bottom<this.fluidbook.resize.hh){visiblePixels-=this.fluidbook.resize.hh-fluidbook.bottom}var ratioVisible=visiblePixels/fluidbook.height;var topPosition=Math.max(0,h*(-fluidbook.top/fluidbook.height));var top={top:0,height:topPosition};var border={top:top.height,height:h*ratioVisible};var bottom={top:Math.ceil(border.top+border.height),height:Math.ceil(h-top.height-border.height)};this.element.find(".mask-top").css(top);this.element.find(".mask-bottom").css(bottom);this.element.find(".border").css(border)},resize:function(){this.element.css("transform","");var h=this.element.outerHeight();var fluidbook=$("#fluidbook").get(0).getBoundingClientRect();var ah=this.fluidbook.resize.hh-50;var aw=(this.fluidbook.resize.ww-fluidbook.width)/2;var ahm=ah-140;var awm=aw-120;var scale=Math.min(1,ahm/h,awm/this.width);this.element.css("transform","scale("+scale+")");var slider={};slider.top=50+(ah-h*scale)/2;slider.left=(aw-this.width*scale)/2;if(scale<.5){this.element.addClass("hiddenresp")}else{this.element.removeClass("hiddenresp")}this.element.css(slider);this.updateScroll()}};