2012-09-11 14:11:00 +00:00
|
|
|
<!-- tail.html by Hongliang Tian 2012.09.11 -->
|
2012-08-14 05:56:41 +00:00
|
|
|
</div>
|
2012-09-11 13:04:55 +00:00
|
|
|
<script type="text/javascript">
|
|
|
|
$(function() {
|
|
|
|
var $pages = $(".p"),
|
2012-09-11 14:11:00 +00:00
|
|
|
$pageWrappers = $(".b"),
|
2012-09-11 13:04:55 +00:00
|
|
|
$pageWrappers = $(".pw"),
|
2012-09-11 13:04:55 +00:00
|
|
|
$main = $("#pdf-main"),
|
|
|
|
l = $pages.length;
|
|
|
|
|
|
|
|
$pages.hide();
|
|
|
|
|
|
|
|
function isPageVisible(i, H) {
|
|
|
|
var $pw = $($pageWrappers[i]),
|
|
|
|
t = $pw.offset().top,
|
|
|
|
b = t + $pw.height() ;
|
|
|
|
return ( ! ( b < 0 || t >= H ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
function setVisibilities(from, to, visible) {
|
|
|
|
for(var i = from; i <= to; ++i) {
|
|
|
|
var $p = $($pages[i]);
|
|
|
|
if(visible) $p.show(); else $p.hide();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Selectively rendering of pages that are visible or will be visible
|
|
|
|
function selectiveRender() {
|
|
|
|
var first = 0, last = l - 1,
|
|
|
|
H = $main.height();
|
|
|
|
|
|
|
|
// Find the first visible page
|
|
|
|
while(first < l && !isPageVisible(first, H))
|
|
|
|
first++;
|
|
|
|
// Find the last visible page
|
|
|
|
while(last >= 0 && !isPageVisible(last, H))
|
|
|
|
last--;
|
|
|
|
// Set invisible
|
|
|
|
setVisibilities(first > 0 ? first-1 : first,
|
|
|
|
last < l -1 ? last + 1 : last, true);
|
|
|
|
setVisibilities(0, first - 2, false);
|
|
|
|
setVisibilities(last + 2, l-1, false);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Listen to scrolling events to render proper pages
|
|
|
|
var scrollTimer = null;
|
|
|
|
$("#pdf-main").scroll(function() {
|
|
|
|
// Now
|
|
|
|
lastScrollTime = Date.now();
|
|
|
|
// Make sure at most one timer runs
|
|
|
|
clearInterval(scrollTimer);
|
|
|
|
// Check when scrolling stops
|
|
|
|
scrollTimer = setInterval(function() {
|
2012-09-11 14:16:52 +00:00
|
|
|
// If scrolling pauses 200+ms
|
|
|
|
if (Date.now() - lastScrollTime > 200) {
|
2012-09-11 13:04:55 +00:00
|
|
|
clearInterval(scrollTimer);
|
|
|
|
// Only render pages that are or will be visible
|
|
|
|
selectiveRender();
|
|
|
|
}
|
|
|
|
}, 200);
|
|
|
|
});
|
|
|
|
|
|
|
|
// Trigger the event
|
|
|
|
$("#pdf-main").scroll();
|
|
|
|
});
|
|
|
|
</script>
|
2012-08-14 05:56:41 +00:00
|
|
|
</body>
|
|
|
|
</html>
|
2012-08-31 07:27:17 +00:00
|
|
|
<!-- tail.html END -->
|