Template:Team:UW/CSS
From 2014.igem.org
(Difference between revisions)
Line 575: | Line 575: | ||
<!--welcome box --> | <!--welcome box --> | ||
- | |||
- | |||
<script> | <script> | ||
- | $(function() { | + | $(document).ready(function() { |
- | + | function filterPath(string) { | |
- | + | return string | |
- | var target = $(this.hash); | + | .replace(/^\//,'') |
- | target = target. | + | .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 []; | ||
+ | } | ||
+ | |||
}); | }); | ||
</script> | </script> |
Revision as of 22:28, 13 October 2014
|