Add selection ring around thumbnails.

This commit is contained in:
Brendan Dahl 2012-04-13 14:14:05 -07:00
parent e954a6236f
commit cc43117039
3 changed files with 28 additions and 26 deletions

View File

@ -350,27 +350,25 @@ body {
} }
.thumbnail { .thumbnail {
width: 134px;
height: 134px;
margin-top: 15px;
margin-bottom: 15px; margin-bottom: 15px;
margin-left:auto; float: left;
margin-right:auto; }
line-height: 134px;
text-align: center; .thumbnailImage {
overflow: hidden; -moz-transition-duration: 150ms;
border: 1px solid transparent;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);
opacity: 0.8;
z-index: 99;
} }
.thumbnailSelectionRing { .thumbnailSelectionRing {
position: absolute;
width: 112px;
height: 142px;
margin: 4px;
border-radius: 2px; border-radius: 2px;
padding: 7px;
-moz-transition-duration: 150ms; -moz-transition-duration: 150ms;
} }
.thumbnail:hover > .thumbnailImage { .thumbnail:hover > .thumbnailSelectionRing > .thumbnailImage {
opacity: .9; opacity: .9;
} }
@ -384,7 +382,7 @@ body {
color: hsla(0,0%,100%,.9); color: hsla(0,0%,100%,.9);
} }
.thumbnail.selected > .thumbnailImage { .thumbnail.selected > .thumbnailSelectionRing > .thumbnailImage {
box-shadow: 0 0 0 1px hsla(0,0%,0%,.5); box-shadow: 0 0 0 1px hsla(0,0%,0%,.5);
opacity: 1; opacity: 1;
} }

View File

@ -49,7 +49,7 @@
</div> </div>
</div> </div>
<div id="toolbarViewer"> <div id="toolbarViewer">
<div id="sidebarToggle" class="toolbarButton toggled" title="Toggle Sidebar"></div> <div id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar"></div>
<div class="toolbarButtonSpacer"></div> <div class="toolbarButtonSpacer"></div>
<div class="splitToolbarButton"> <div class="splitToolbarButton">
<div class="toolbarButton pageUp" title="Previous Page" onclick="PDFView.page--"></div> <div class="toolbarButton pageUp" title="Previous Page" onclick="PDFView.page--"></div>

View File

@ -990,11 +990,8 @@ var ThumbnailView = function thumbnailView(container, page, id, pageRatio) {
this.height = view.height; this.height = view.height;
this.id = id; this.id = id;
var maxThumbSize = 134; var canvasWidth = 98;
var canvasWidth = pageRatio >= 1 ? maxThumbSize : var canvasHeight = canvasWidth / this.width * this.height;
maxThumbSize * pageRatio;
var canvasHeight = pageRatio <= 1 ? maxThumbSize :
maxThumbSize / pageRatio;
var scaleX = this.scaleX = (canvasWidth / this.width); var scaleX = this.scaleX = (canvasWidth / this.width);
var scaleY = this.scaleY = (canvasHeight / this.height); var scaleY = this.scaleY = (canvasHeight / this.height);
@ -1014,9 +1011,14 @@ var ThumbnailView = function thumbnailView(container, page, id, pageRatio) {
canvas.width = canvasWidth; canvas.width = canvasWidth;
canvas.height = canvasHeight; canvas.height = canvasHeight;
canvas.className = 'thumbnailImage';
div.setAttribute('data-loaded', true); div.setAttribute('data-loaded', true);
div.appendChild(canvas);
var ring = document.createElement('div');
ring.className = 'thumbnailSelectionRing';
ring.appendChild(canvas);
div.appendChild(ring);
var ctx = canvas.getContext('2d'); var ctx = canvas.getContext('2d');
ctx.save(); ctx.save();
@ -1026,10 +1028,6 @@ var ThumbnailView = function thumbnailView(container, page, id, pageRatio) {
var view = page.view; var view = page.view;
ctx.translate(-view.x * scaleX, -view.y * scaleY); ctx.translate(-view.x * scaleX, -view.y * scaleY);
div.style.width = (view.width * scaleX) + 'px';
div.style.height = (view.height * scaleY) + 'px';
div.style.lineHeight = (view.height * scaleY) + 'px';
return ctx; return ctx;
} }
@ -1272,6 +1270,7 @@ window.addEventListener('load', function webViewerLoad(evt) {
document.getElementById('sidebarToggle').addEventListener('click', document.getElementById('sidebarToggle').addEventListener('click',
function() { function() {
this.classList.toggle('toggled');
document.getElementById('toolbarSidebar').classList.toggle('hidden'); document.getElementById('toolbarSidebar').classList.toggle('hidden');
document.getElementById('sidebarContainer').classList.toggle('hidden'); document.getElementById('sidebarContainer').classList.toggle('hidden');
updateThumbViewArea(); updateThumbViewArea();
@ -1452,8 +1451,13 @@ window.addEventListener('scalechange', function scalechange(evt) {
window.addEventListener('pagechange', function pagechange(evt) { window.addEventListener('pagechange', function pagechange(evt) {
var page = evt.pageNumber; var page = evt.pageNumber;
if (document.getElementById('pageNumber').value != page) if (document.getElementById('pageNumber').value != page) {
document.getElementById('pageNumber').value = page; document.getElementById('pageNumber').value = page;
var selected = document.querySelector('.thumbnail.selected');
if (selected)
selected.classList.remove('selected');
document.getElementById('thumbnailContainer' + page).classList.add('selected');
}
document.getElementById('previous').disabled = (page <= 1); document.getElementById('previous').disabled = (page <= 1);
document.getElementById('next').disabled = (page >= PDFView.pages.length); document.getElementById('next').disabled = (page >= PDFView.pages.length);
}, true); }, true);