diff options
author | Thomas Park <thomas@thomaspark.me> | 2013-02-20 00:12:38 -0500 |
---|---|---|
committer | Thomas Park <thomas@thomaspark.me> | 2013-02-20 00:12:38 -0500 |
commit | 71617ebaececa563256796fe73924cbf21df8a0a (patch) | |
tree | 20463a0c2e7f52c76e3ff7fd704f047d8b8b1641 /swatchmaker/test/bootswatch.js | |
parent | cc16c83d29a5053e272f8170a275c591612bc8f0 (diff) |
swatchmaker: update styles, fix modal and popover, add smoothscroll, fix path to icos
Diffstat (limited to 'swatchmaker/test/bootswatch.js')
-rw-r--r-- | swatchmaker/test/bootswatch.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/swatchmaker/test/bootswatch.js b/swatchmaker/test/bootswatch.js new file mode 100644 index 00000000..71eba460 --- /dev/null +++ b/swatchmaker/test/bootswatch.js @@ -0,0 +1,94 @@ +// tooltips + +$('a[rel=tooltip]').tooltip({ + 'placement': 'bottom' +}); + +// smooth scroll + +$(document).ready(function() { + function filterPath(string) { + return string + .replace(/^\//,'') + .replace(/(index|default).[a-zA-Z]{3,4}$/,'') + .replace(/\/$/,''); + } + var locationPath = filterPath(location.pathname); + var scrollElem = scrollableElement('html', 'body'); + + $('a[href^=#]').each(function() { + var thisPath = filterPath(this.pathname) || locationPath; + if ( locationPath == thisPath + && (location.hostname == this.hostname || !this.hostname) + && this.hash.replace(/#/,'') ) { + var $target = $(this.hash), target = this.hash; + if (target) { + var targetOffset = $target.offset().top; + $(this).click(function(event) { + event.preventDefault(); + $(scrollElem).animate({scrollTop: targetOffset}, 400, function() { + location.hash = target; + }); + }); + } + } + }); + + // use the first element that is "scrollable" + function scrollableElement(els) { + for (var i = 0, argLength = arguments.length; i <argLength; i++) { + var el = arguments[i], + $scrollElement = $(el); + if ($scrollElement.scrollTop()> 0) { + return el; + } else { + $scrollElement.scrollTop(1); + var isScrollable = $scrollElement.scrollTop()> 0; + $scrollElement.scrollTop(0); + if (isScrollable) { + return el; + } + } + } + return []; + } + +}); + +// subnav + +(function ($) { + + $(function(){ + + // fix sub nav on scroll + var $win = $(window), + $body = $('body'), + $nav = $('.subnav'), + navHeight = $('.navbar').first().height(), + subnavHeight = $('.subnav').first().height(), + subnavTop = $('.subnav').length && $('.subnav').offset().top - navHeight, + marginTop = parseInt($body.css('margin-top'), 10); + isFixed = 0; + + processScroll(); + + $win.on('scroll', processScroll); + + function processScroll() { + var i, scrollTop = $win.scrollTop(); + + if (scrollTop >= subnavTop && !isFixed) { + isFixed = 1; + $nav.addClass('subnav-fixed'); + $body.css('margin-top', marginTop + subnavHeight + 'px'); + } else if (scrollTop <= subnavTop && isFixed) { + isFixed = 0; + $nav.removeClass('subnav-fixed'); + $body.css('margin-top', marginTop + 'px'); + } + } + + }); + +})(window.jQuery);
\ No newline at end of file |