Skip to content

Instantly share code, notes, and snippets.

View bdalziel's full-sized avatar

Ben Dalziel bdalziel

View GitHub Profile
@bdalziel
bdalziel / gist:4019705
Created November 5, 2012 19:16
Gallery Slides CSS
ul, li {
/* Simple list reset */
list-style: none;
list-style-image: none;
margin: 0;
padding: 0;
}
.gallerySlides {
position: absolute;
@bdalziel
bdalziel / gist:4019773
Created November 5, 2012 19:24
Gallery Slide CSS
.gallerySlide {
display: inline-block;
float: left;
position: relative;
vertical-align: top;
/* Calculated via LESS based on parent .gallerySlides max capacity width
* 5000% = 50 slides. 1 slide width = (100%/50) = 2%
*/
width: 2%;
@bdalziel
bdalziel / gist:4019684
Created November 5, 2012 19:12
Gallery Viewport CSS
.galleryViewport {
position: relative;
width: 100%;
height: 100%;
white-space: nowrap; /* This makes sure the slides stack horizontally */
overflow: hidden; /* We don't want scrollbars - we'll manage the overflow via gallery nav buttons moving the slides relative to this viewport */
}
@bdalziel
bdalziel / gist:4019663
Created November 5, 2012 19:10
Base gallery DOM
<div class="galleryViewport">
<ul class="gallerySlides">
<li class="gallerySlide">...</li>
<li class="gallerySlide">...</li>
</ul>
<a href="#" class="previous">Previous</a>
<a href="#" class="next">Next</a>
</div>
@bdalziel
bdalziel / gist:4020367
Created November 5, 2012 21:12
Slide Photo DOM
<div class="slideBody">
<div class="assetWrap">
<a href="#">
<img src="{src}" class="fullScreenUrl-{url} galleryUrl-{url} imgW-553 imgH-1000 bigImgW-1660 bigImgH-3000">
<span class="decorator"></span>
</a>
</div>
</div>
@bdalziel
bdalziel / gist:4020359
Created November 5, 2012 21:10
JS to scale img to browser
var sizeSlideAsset = function (slideNode) {
var img = slideNode.one('.assetWrap img');
var assetWrap = img.ancestor('.assetWrap');
var wrapWidth = assetWrap.get('offsetWidth');
var wrapHeight = assetWrap.get('offsetHeight');
var imgWidth = Y.Util.getClassValue(img, 'imgW');
var imgHeight = Y.Util.getClassValue(img, 'imgH');
@bdalziel
bdalziel / gist:4020397
Created November 5, 2012 21:20
Slide Body CSS
li.gallerySlide .slideBody {
height: 100%;
/* Total width = 100% with padding */
width: 80%;
padding-left: 5%; /* nudge selected slide in from left */
padding-right: 15%; /* PEEK */
overflow: auto; /* think vertical scroll bars with small browser height */
}
li.gallerySlide .assetWrap {
@bdalziel
bdalziel / gist:4021373
Created November 6, 2012 00:15
Scaling the zoom boundary
.zoom-100 { .zoomStep(100%); }
.zoom-125 { .zoomStep(125%); }
.zoom-150 { .zoomStep(150%); }
.zoom-175 { .zoomStep(175%); }
.zoom-200 { .zoomStep(200%); }
.zoom-225 { .zoomStep(225%); }
.zoom-250 { .zoomStep(250%); }
.zoom-275 { .zoomStep(275%); }
.zoom-300 { .zoomStep(300%); }
@bdalziel
bdalziel / gist:4021436
Created November 6, 2012 00:18
Extended mixin to scale zoomed image
@boundaryScale: 2;
.zoomStep(@zoomFactor) {
@boundarySize: (@boundaryScale * @zoomFactor);
.zoomBoundary {
width: @boundarySize;
height: @boundarySize;
top: (0 - (@boundarySize - 100%)/2);
left: (0 - (@boundarySize - 100%)/2);
}
@imgPrimaryDimensionSize: ((100% + ((@boundarySize - 100%)/2)) / (@boundarySize/100));
@bdalziel
bdalziel / gist:4021633
Created November 6, 2012 00:46
Zoom and position
var performZoomAndPositionImg = function (newZoomLevel) {
var zoomScaleContainer = Y.one('.fullScreenGallery .fullScreenExperience');
var zoomBoundary = zoomScaleContainer.one('.zoomBoundary');
var zoomImage = zoomBoundary.one('.zoomImg');
var oldLeftOffset = zoomImage.get('offsetLeft');
var oldTopOffset = zoomImage.get('offsetTop');
var oldImgHeight = zoomImage.get('offsetHeight');
var oldBoundaryHeight = zoomBoundary.get('offsetHeight');