diff options
Diffstat (limited to 'deck.js/extensions/navigation')
| -rw-r--r-- | deck.js/extensions/navigation/deck.navigation.css | 43 | ||||
| -rw-r--r-- | deck.js/extensions/navigation/deck.navigation.html | 3 | ||||
| -rw-r--r-- | deck.js/extensions/navigation/deck.navigation.js | 92 | ||||
| -rwxr-xr-x | deck.js/extensions/navigation/deck.navigation.scss | 56 | 
4 files changed, 194 insertions, 0 deletions
diff --git a/deck.js/extensions/navigation/deck.navigation.css b/deck.js/extensions/navigation/deck.navigation.css new file mode 100644 index 0000000..e1ebad8 --- /dev/null +++ b/deck.js/extensions/navigation/deck.navigation.css @@ -0,0 +1,43 @@ +.deck-container .deck-prev-link, .deck-container .deck-next-link { +  display: none; +  position: absolute; +  z-index: 3; +  top: 50%; +  width: 32px; +  height: 32px; +  margin-top: -16px; +  font-size: 20px; +  font-weight: bold; +  line-height: 32px; +  vertical-align: middle; +  text-align: center; +  text-decoration: none; +  color: #fff; +  background: #888; +} +.borderradius .deck-container .deck-prev-link, .borderradius .deck-container .deck-next-link { +  -webkit-border-radius: 16px; +  -moz-border-radius: 16px; +  border-radius: 16px; +} +.deck-container .deck-prev-link:hover, .deck-container .deck-prev-link:focus, .deck-container .deck-prev-link:active, .deck-container .deck-prev-link:visited, .deck-container .deck-next-link:hover, .deck-container .deck-next-link:focus, .deck-container .deck-next-link:active, .deck-container .deck-next-link:visited { +  color: #fff; +} +.deck-container .deck-prev-link { +  left: 8px; +} +.deck-container .deck-next-link { +  right: 8px; +} +.deck-container:hover .deck-prev-link, .deck-container:hover .deck-next-link { +  display: block; +} +.deck-container:hover .deck-prev-link.deck-nav-disabled, .touch .deck-container:hover .deck-prev-link, .deck-container:hover .deck-next-link.deck-nav-disabled, .touch .deck-container:hover .deck-next-link { +  display: none; +} + +@media print { +  .deck-prev-link, .deck-next-link { +    display: none !important; +  } +} diff --git a/deck.js/extensions/navigation/deck.navigation.html b/deck.js/extensions/navigation/deck.navigation.html new file mode 100644 index 0000000..c756624 --- /dev/null +++ b/deck.js/extensions/navigation/deck.navigation.html @@ -0,0 +1,3 @@ +<!-- Place the following snippet at the bottom of the deck container. --> +<a href="#" class="deck-prev-link" title="Previous">←</a> +<a href="#" class="deck-next-link" title="Next">→</a>
\ No newline at end of file diff --git a/deck.js/extensions/navigation/deck.navigation.js b/deck.js/extensions/navigation/deck.navigation.js new file mode 100644 index 0000000..a07f7ea --- /dev/null +++ b/deck.js/extensions/navigation/deck.navigation.js @@ -0,0 +1,92 @@ +/*! +Deck JS - deck.navigation +Copyright (c) 2011 Caleb Troughton +Dual licensed under the MIT license and GPL license. +https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt +https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt +*/ + +/* +This module adds clickable previous and next links to the deck. +*/ +(function($, deck, undefined) { +	var $d = $(document), +	 +	/* Updates link hrefs, and disabled states if last/first slide */ +	updateButtons = function(e, from, to) { +		var opts = $[deck]('getOptions'), +		last = $[deck]('getSlides').length - 1, +		prevSlide = $[deck]('getSlide', to - 1), +		nextSlide = $[deck]('getSlide', to + 1), +		hrefBase = window.location.href.replace(/#.*/, ''), +		prevId = prevSlide ? prevSlide.attr('id') : undefined, +		nextId = nextSlide ? nextSlide.attr('id') : undefined; +		 +		$(opts.selectors.previousLink) +			.toggleClass(opts.classes.navDisabled, !to) +			.attr('href', hrefBase + '#' + (prevId ? prevId : '')); +		$(opts.selectors.nextLink) +			.toggleClass(opts.classes.navDisabled, to === last) +			.attr('href', hrefBase + '#' + (nextId ? nextId : '')); +	}; +	 +	/* +	Extends defaults/options. +	 +	options.classes.navDisabled +		This class is added to a navigation link when that action is disabled. +		It is added to the previous link when on the first slide, and to the +		next link when on the last slide. +		 +	options.selectors.nextLink +		The elements that match this selector will move the deck to the next +		slide when clicked. +		 +	options.selectors.previousLink +		The elements that match this selector will move to deck to the previous +		slide when clicked. +	*/ +	$.extend(true, $[deck].defaults, { +		classes: { +			navDisabled: 'deck-nav-disabled' +		}, +		 +		selectors: { +			nextLink: '.deck-next-link', +			previousLink: '.deck-prev-link' +		} +	}); + +	$d.bind('deck.init', function() { +		var opts = $[deck]('getOptions'), +		slides = $[deck]('getSlides'), +		$current = $[deck]('getSlide'), +		ndx; +		 +		// Setup prev/next link events +		$(opts.selectors.previousLink) +		.unbind('click.decknavigation') +		.bind('click.decknavigation', function(e) { +			$[deck]('prev'); +			e.preventDefault(); +		}); +		 +		$(opts.selectors.nextLink) +		.unbind('click.decknavigation') +		.bind('click.decknavigation', function(e) { +			$[deck]('next'); +			e.preventDefault(); +		}); +		 +		// Find where we started in the deck and set initial states +		$.each(slides, function(i, $slide) { +			if ($slide === $current) { +				ndx = i; +				return false; +			} +		}); +		updateButtons(null, ndx, ndx); +	}) +	.bind('deck.change', updateButtons); +})(jQuery, 'deck'); + diff --git a/deck.js/extensions/navigation/deck.navigation.scss b/deck.js/extensions/navigation/deck.navigation.scss new file mode 100755 index 0000000..815602f --- /dev/null +++ b/deck.js/extensions/navigation/deck.navigation.scss @@ -0,0 +1,56 @@ +@mixin border-radius($r) { +	-webkit-border-radius:$r; +	-moz-border-radius:$r; +	border-radius:$r; +} + +.deck-container { +	.deck-prev-link, .deck-next-link { +		display:none; +		position:absolute; +		z-index:3; +		top:50%; +		width:32px; +		height:32px; +		margin-top:-16px; +		font-size:20px; +		font-weight:bold; +		line-height:32px; +		vertical-align:middle; +		text-align:center; +		text-decoration:none; +		color:#fff; +		background:#888; + +		.borderradius & { +			@include border-radius(16px); +		} + +		&:hover, &:focus, &:active, &:visited { +			color:#fff; +		} +	} + +	.deck-prev-link { +		left:8px; +	} + +	.deck-next-link { +		right:8px; +	} +	 +	&:hover .deck-prev-link, &:hover .deck-next-link { +		display:block; + +		&.deck-nav-disabled, .touch & { +			display:none; +		} +	} +} + + +@media print { +	.deck-prev-link, .deck-next-link { +		display:none !important; +	} +}  | 
