Team:SUSTC-Shenzhen-A DengLuo index
From 2012.igem.org
(Difference between revisions)
Line 545: | Line 545: | ||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> | <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> | ||
<script type="text/javascript" src="http://www.templatemo.com/templates/templatemo_195_scene/js/jquery.easing.1.3.js"></script> | <script type="text/javascript" src="http://www.templatemo.com/templates/templatemo_195_scene/js/jquery.easing.1.3.js"></script> | ||
- | <script type="text/javascript" | + | |
+ | |||
+ | <script type="text/javascript" > | ||
+ | |||
+ | (function($) { | ||
+ | $.fn.ContentSlider = function(options) | ||
+ | { | ||
+ | var defaults = { | ||
+ | leftBtn : 'images/templatemo_left_nav.png', | ||
+ | rightBtn : 'images/templatemo_right_nav.png', | ||
+ | width : '535px', | ||
+ | height : '233px', | ||
+ | speed : 400, | ||
+ | easing : 'easeOutExpo', | ||
+ | textResize : false, | ||
+ | IE_h2 : '26px', | ||
+ | IE_p : '11px' | ||
+ | } | ||
+ | var defaultWidth = defaults.width; | ||
+ | var o = $.extend(defaults, options); | ||
+ | var w = parseInt(o.width); | ||
+ | var n = this.children('.cs_wrapper').children('.cs_slider').children('.cs_article').length; | ||
+ | var x = -1*w*n+w; // Minimum left value | ||
+ | var p = parseInt(o.width)/parseInt(defaultWidth); | ||
+ | var thisInstance = this.attr('id'); | ||
+ | var inuse = false; // Prevents colliding animations | ||
+ | |||
+ | function moveSlider(d, b) | ||
+ | { | ||
+ | var l = parseInt(b.siblings('.cs_wrapper').children('.cs_slider').css('left')); | ||
+ | if(isNaN(l)) { | ||
+ | var l = 0; | ||
+ | } | ||
+ | var m = (d=='left') ? l-w : l+w; | ||
+ | if(m<=0&&m>=x) { | ||
+ | b | ||
+ | .siblings('.cs_wrapper') | ||
+ | .children('.cs_slider') | ||
+ | .animate({ 'left':m+'px' }, o.speed, o.easing, function() { | ||
+ | inuse=false; | ||
+ | }); | ||
+ | |||
+ | if(b.attr('class')=='cs_leftBtn') { | ||
+ | var thisBtn = $('#'+thisInstance+' .cs_leftBtn'); | ||
+ | var otherBtn = $('#'+thisInstance+' .cs_rightBtn'); | ||
+ | } else { | ||
+ | var thisBtn = $('#'+thisInstance+' .cs_rightBtn'); | ||
+ | var otherBtn = $('#'+thisInstance+' .cs_leftBtn'); | ||
+ | } | ||
+ | if(m==0||m==x) { | ||
+ | thisBtn.animate({ 'opacity':'0' }, o.speed, o.easing, function() { thisBtn.hide(); }); | ||
+ | } | ||
+ | if(otherBtn.css('opacity')=='0') { | ||
+ | otherBtn.show().animate({ 'opacity':'1' }, { duration:o.speed, easing:o.easing }); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function vCenterBtns(b) | ||
+ | { | ||
+ | // Safari and IE don't seem to like the CSS used to vertically center | ||
+ | // the buttons, so we'll force it with this function | ||
+ | var mid = parseInt(o.height)/0 ; | ||
+ | b | ||
+ | .find('.cs_leftBtn img').css({ 'top':mid+'px', 'padding':0 }).end() | ||
+ | .find('.cs_rightBtn img').css({ 'top':mid+'px', 'padding':0 }); | ||
+ | } | ||
+ | |||
+ | return this.each(function() { | ||
+ | $(this) | ||
+ | // Set the width and height of the div to the defined size | ||
+ | .css({ | ||
+ | width:o.width, | ||
+ | height:o.height | ||
+ | }) | ||
+ | // Add the buttons to move left and right | ||
+ | .prepend('<a href="#" class="cs_leftBtn"><img src="'+o.leftBtn+'" /></a>') | ||
+ | .append('<a href="#" class="cs_rightBtn"><img src="'+o.rightBtn+'" /></a>') | ||
+ | // Dig down to the article div elements | ||
+ | .find('.cs_article') | ||
+ | // Set the width and height of the div to the defined size | ||
+ | .css({ | ||
+ | width:o.width, | ||
+ | height:o.height | ||
+ | }) | ||
+ | .end() | ||
+ | // Animate the entrance of the buttons | ||
+ | .find('.cs_leftBtn') | ||
+ | .css('opacity','0') | ||
+ | .hide() | ||
+ | .end() | ||
+ | .find('.cs_rightBtn') | ||
+ | .hide() | ||
+ | .animate({ 'width':'show' }); | ||
+ | |||
+ | // Resize the font to match the bounding box | ||
+ | if(o.textResize===true) { | ||
+ | var h2FontSize = $(this).find('h2').css('font-size'); | ||
+ | var pFontSize = $(this).find('p').css('font-size'); | ||
+ | $.each(jQuery.browser, function(i) { | ||
+ | if($.browser.msie) { | ||
+ | h2FontSize = o.IE_h2; | ||
+ | pFontSize = o.IE_p; | ||
+ | } | ||
+ | }); | ||
+ | $(this).find('h2').css({ 'font-size' : parseFloat(h2FontSize)*p+'px', 'margin-left' : '66%' }); | ||
+ | $(this).find('p').css({ 'font-size' : parseFloat(pFontSize)*p+'px', 'margin-left' : '66%' }); | ||
+ | $(this).find('.readmore').css({ 'font-size' : parseFloat(pFontSize)*p+'px', 'margin-left' : '66%' }); | ||
+ | } | ||
+ | |||
+ | // Store a copy of the button in a variable to pass to moveSlider() | ||
+ | var leftBtn = $(this).children('.cs_leftBtn'); | ||
+ | leftBtn.bind('click', function() { | ||
+ | if(inuse===false) { | ||
+ | inuse = true; | ||
+ | moveSlider('right', leftBtn); | ||
+ | } | ||
+ | return false; // Keep the link from firing | ||
+ | }); | ||
+ | |||
+ | // Store a copy of the button in a variable to pass to moveSlider() | ||
+ | var rightBtn = $(this).children('.cs_rightBtn'); | ||
+ | rightBtn.bind('click', function() { | ||
+ | if(inuse===false) { | ||
+ | inuse=true; | ||
+ | moveSlider('left', rightBtn); | ||
+ | } | ||
+ | return false; // Keep the link from firing | ||
+ | }); | ||
+ | |||
+ | vCenterBtns($(this)); // This is a CSS fix function. | ||
+ | }); | ||
+ | } | ||
+ | })(jQuery) | ||
+ | |||
+ | |||
+ | |||
+ | </script> | ||
+ | |||
+ | |||
+ | |||
<script type="text/javascript"> | <script type="text/javascript"> | ||
$(function() { | $(function() { |
Revision as of 14:10, 8 September 2012