<!--googleon: all-->
<div id="main">
<div id="background">
-
- <div id="shadow">
- <div class="shadow bottom left"></div>
- <div class="shadow bottom right"></div>
- <div class="shadow side left"></div>
- <div class="shadow side right"></div>
+ <div id="center-shadow">
+ <div id="shadow">
+ <div class="shadow bottom left"></div>
+ <div class="shadow bottom right"></div>
+ <div class="shadow side left"></div>
+ <div class="shadow side right"></div>
+ </div>
</div>
</div>
<header>
<div id="helpViewOverlay"></div>
<div id="z" class="nozoom">
- <div id="fluidbook">
- <div id="edges">
- <div class="edge left">
- <div class="top"></div>
- <div class="middle"></div>
- <div class="bottom"></div>
+ <div id="center-fluidbook">
+ <div id="fluidbook">
+ <div id="edges">
+ <div class="edge left">
+ <div class="top"></div>
+ <div class="middle"></div>
+ <div class="bottom"></div>
+ </div>
+ <div class="edge right">
+ <div class="top"></div>
+ <div class="middle"></div>
+ <div class="bottom"></div>
+ </div>
</div>
- <div class="edge right">
- <div class="top"></div>
- <div class="middle"></div>
- <div class="bottom"></div>
+ <div id="pagesnumbers">
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ <div id="pages" class="double">
+ <div id="currentDoublePage" class="doublePage"></div>
+ <div id="searchHighlights"></div>
+ <div id="links"></div>
</div>
- </div>
- <div id="pagesnumbers">
- <div class="left"></div>
- <div class="right"></div>
- </div>
- <div id="pages" class="double">
- <div id="currentDoublePage" class="doublePage"></div>
- <div id="searchHighlights"></div>
- <div id="links"></div>
</div>
</div>
</div>
return this.pageTransition3D(pageNr);
},
pageTransition3D: function (pageNr) {
-
var $this = this;
if ($("#pages").hasClass('_3dtransition')) {
return;
$("#pages").addClass('_3dtransition');
$this.loader.setContentsInDoublePage(currentDoublePage, turning.flat, true, function () {
$this.loader.setContentsInDoublePage(doublePage, turning.flip, true, function () {
- $this.beforeTransition(pageNr, 3, turning.flip);
+ $this.beforeTransition(pageNr, 3, turning);
$(doublePage).addClass(turning.nextFromClass + 'end').one($this.support.getTransitionEndEvent(), function () {
if ($this.transitionning == false) {
return;
});
});
},
+
+ centerBook: function (center, animationDuration) {
+ var animate = animationDuration != undefined && animationDuration > 0;
+ var move = $("#center-fluidbook,#center-shadow");
+ var currentLeft = $("#center-fluidbook").data('left');
+ var left = 0;
+ if (center != 0) {
+ left = this.resize.centerOffset * center;
+ }
+
+
+ if (currentLeft == left) {
+ return;
+ }
+
+ $("#center-fluidbook").data('left', left);
+
+ if (animate) {
+ $(move).addClass('animate');
+ } else {
+ $(move).removeClass('animate');
+ }
+ setTimeout(function () {
+ move.css('left', left);
+ }, 10);
+ },
+
getTurningPages: function (newPage) {
var res = {};
res.dir = 1;
res.flat = [newPage, res.currentRight];
res.flip = [res.currentLeft, newPage + 1];
}
+
res['end'] = [newPage, newPage + 1];
} else {
res.currentRight = this.currentPage - this.currentPage % 2;
res.end = [newPage + 1, newPage];
}
}
+
+ var center = !!this.datas.centerBook && !this.displayOnePage;
+ res.center = 0;
+ if (center) {
+ if (newPage <= 1) {
+ res.center = -1;
+ } else if (this.datas.pages % 2 == 0 && newPage == this.datas.pages) {
+ res.center = 1;
+ }
+ }
+
res.loading = [res.currentLeft, res.currentRight];
- return json_parse(JSON.stringify(res));
+ res = json_parse(JSON.stringify(res));
+ return res;
},
reloadCurrentPage: function () {
this.pageTransition(this.currentPage);
this.hidePage('right');
}
var turning = this.getTurningPages(pageNr);
- this.beforeTransition(pageNr,1, turning);
+ this.beforeTransition(pageNr, 1, turning);
this.loader.setContentsInDoublePage(doublePage, turning.end, true, function () {
$this.afterTransition(page);
});
if (d == undefined) {
d = 1;
}
- $(this).trigger('fluidbook.page.change.start', [page, {transition: d, page: page, turningPages: turning}]);
+ $(this).trigger('fluidbook.page.change.start', [page, {transition: d, page: page, turningPages: turning.flip}]);
this.tooltip.hideTooltip();
$(".axis_y").removeClass('axis_y');
$(".axis_x").removeClass('axis_x');
this.hideUnnecessaryButtons(page);
var animationDuration = d <= 1 ? 0 : parseFloat(this.datas.mobileTransitionDuration);
this.updateShadows(page, animationDuration);
+ this.centerBook(turning.center, animationDuration);
+
try {
this.search.clearHighlights();
} catch (err) {