<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.zjsnrwiki.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AJquery.coda-slider-2.0.js</id>
	<title>MediaWiki:Jquery.coda-slider-2.0.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.zjsnrwiki.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AJquery.coda-slider-2.0.js"/>
	<link rel="alternate" type="text/html" href="https://www.zjsnrwiki.com/index.php?title=MediaWiki:Jquery.coda-slider-2.0.js&amp;action=history"/>
	<updated>2026-05-22T23:04:24Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.zjsnrwiki.com/index.php?title=MediaWiki:Jquery.coda-slider-2.0.js&amp;diff=165&amp;oldid=prev</id>
		<title>Adpex：​创建页面，内容为“/* 	jQuery Coda-Slider v2.0 - http://www.ndoherty.biz/coda-slider 	Copyright (c) 2009 Niall Doherty 	This plugin available for use in all personal or commercial proj...”</title>
		<link rel="alternate" type="text/html" href="https://www.zjsnrwiki.com/index.php?title=MediaWiki:Jquery.coda-slider-2.0.js&amp;diff=165&amp;oldid=prev"/>
		<updated>2016-02-26T12:57:12Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“/* 	jQuery Coda-Slider v2.0 - http://www.ndoherty.biz/coda-slider 	Copyright (c) 2009 Niall Doherty 	This plugin available for use in all personal or commercial proj...”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*&lt;br /&gt;
	jQuery Coda-Slider v2.0 - http://www.ndoherty.biz/coda-slider&lt;br /&gt;
	Copyright (c) 2009 Niall Doherty&lt;br /&gt;
	This plugin available for use in all personal or commercial projects under both MIT and GPL licenses.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
$(function(){&lt;br /&gt;
	// Remove the coda-slider-no-js class from the body&lt;br /&gt;
	$(&amp;quot;body&amp;quot;).removeClass(&amp;quot;coda-slider-no-js&amp;quot;);&lt;br /&gt;
	// Preloader&lt;br /&gt;
	$(&amp;quot;.coda-slider&amp;quot;).children(&amp;#039;.panel&amp;#039;).hide().end().prepend(&amp;#039;&amp;lt;p class=&amp;quot;loading&amp;quot;&amp;gt;Loading...&amp;lt;br /&amp;gt;&amp;lt;img src=&amp;quot;images/ajax-loader.gif&amp;quot; alt=&amp;quot;loading...&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&amp;#039;);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
var sliderCount = 1;&lt;br /&gt;
&lt;br /&gt;
$.fn.codaSlider = function(settings) {&lt;br /&gt;
&lt;br /&gt;
	settings = $.extend({&lt;br /&gt;
		autoHeight: true,&lt;br /&gt;
		autoHeightEaseDuration: 1000,&lt;br /&gt;
		autoHeightEaseFunction: &amp;quot;easeInOutExpo&amp;quot;,&lt;br /&gt;
		autoSlide: false,&lt;br /&gt;
		autoSlideInterval: 7000,&lt;br /&gt;
		autoSlideStopWhenClicked: true,&lt;br /&gt;
		crossLinking: true,&lt;br /&gt;
		dynamicArrows: true,&lt;br /&gt;
		dynamicArrowLeftText: &amp;quot;&amp;amp;#171; left&amp;quot;,&lt;br /&gt;
		dynamicArrowRightText: &amp;quot;right &amp;amp;#187;&amp;quot;,&lt;br /&gt;
		dynamicTabs: true,&lt;br /&gt;
		dynamicTabsAlign: &amp;quot;center&amp;quot;,&lt;br /&gt;
		dynamicTabsPosition: &amp;quot;top&amp;quot;,&lt;br /&gt;
		externalTriggerSelector: &amp;quot;a.xtrig&amp;quot;,&lt;br /&gt;
		firstPanelToLoad: 1,&lt;br /&gt;
		panelTitleSelector: &amp;quot;h2.title&amp;quot;,&lt;br /&gt;
		slideEaseDuration: 1000,&lt;br /&gt;
		slideEaseFunction: &amp;quot;easeInOutExpo&amp;quot;&lt;br /&gt;
	}, settings);&lt;br /&gt;
	&lt;br /&gt;
	return this.each(function(){&lt;br /&gt;
		&lt;br /&gt;
		// Uncomment the line below to test your preloader&lt;br /&gt;
		// alert(&amp;quot;Testing preloader&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		var slider = $(this);&lt;br /&gt;
		&lt;br /&gt;
		// If we need arrows&lt;br /&gt;
		if (settings.dynamicArrows) {&lt;br /&gt;
			slider.parent().addClass(&amp;quot;arrows&amp;quot;);&lt;br /&gt;
			slider.before(&amp;#039;&amp;lt;div class=&amp;quot;coda-nav-left&amp;quot; id=&amp;quot;coda-nav-left-&amp;#039; + sliderCount + &amp;#039;&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;&amp;#039; + settings.dynamicArrowLeftText + &amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;);&lt;br /&gt;
			slider.after(&amp;#039;&amp;lt;div class=&amp;quot;coda-nav-right&amp;quot; id=&amp;quot;coda-nav-right-&amp;#039; + sliderCount + &amp;#039;&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;&amp;#039; + settings.dynamicArrowRightText + &amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;);&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var panelWidth = slider.find(&amp;quot;.panel&amp;quot;).width();&lt;br /&gt;
		var panelCount = slider.find(&amp;quot;.panel&amp;quot;).size();&lt;br /&gt;
		var panelContainerWidth = panelWidth*panelCount;&lt;br /&gt;
		var navClicks = 0; // Used if autoSlideStopWhenClicked = true&lt;br /&gt;
		&lt;br /&gt;
		// Surround the collection of panel divs with a container div (wide enough for all panels to be lined up end-to-end)&lt;br /&gt;
		$(&amp;#039;.panel&amp;#039;, slider).wrapAll(&amp;#039;&amp;lt;div class=&amp;quot;panel-container&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;);&lt;br /&gt;
		// Specify the width of the container div (wide enough for all panels to be lined up end-to-end)&lt;br /&gt;
		$(&amp;quot;.panel-container&amp;quot;, slider).css({ width: panelContainerWidth });&lt;br /&gt;
		&lt;br /&gt;
		// Specify the current panel.&lt;br /&gt;
		// If the loaded URL has a hash (cross-linking), we&amp;#039;re going to use that hash to give the slider a specific starting position...&lt;br /&gt;
		if (settings.crossLinking &amp;amp;&amp;amp; location.hash &amp;amp;&amp;amp; parseInt(location.hash.slice(1)) &amp;lt;= panelCount) {&lt;br /&gt;
			var currentPanel = parseInt(location.hash.slice(1));&lt;br /&gt;
			var offset = - (panelWidth*(currentPanel - 1));&lt;br /&gt;
			$(&amp;#039;.panel-container&amp;#039;, slider).css({ marginLeft: offset });&lt;br /&gt;
		// If that&amp;#039;s not the case, check to see if we&amp;#039;re supposed to load a panel other than Panel 1 initially...&lt;br /&gt;
		} else if (settings.firstPanelToLoad != 1 &amp;amp;&amp;amp; settings.firstPanelToLoad &amp;lt;= panelCount) { &lt;br /&gt;
			var currentPanel = settings.firstPanelToLoad;&lt;br /&gt;
			var offset = - (panelWidth*(currentPanel - 1));&lt;br /&gt;
			$(&amp;#039;.panel-container&amp;#039;, slider).css({ marginLeft: offset });&lt;br /&gt;
		// Otherwise, we&amp;#039;ll just set the current panel to 1...&lt;br /&gt;
		} else { &lt;br /&gt;
			var currentPanel = 1;&lt;br /&gt;
		};&lt;br /&gt;
			&lt;br /&gt;
		// Left arrow click&lt;br /&gt;
		$(&amp;quot;#coda-nav-left-&amp;quot; + sliderCount + &amp;quot; a&amp;quot;).click(function(){&lt;br /&gt;
			navClicks++;&lt;br /&gt;
			if (currentPanel == 1) {&lt;br /&gt;
				offset = - (panelWidth*(panelCount - 1));&lt;br /&gt;
				alterPanelHeight(panelCount - 1);&lt;br /&gt;
				currentPanel = panelCount;&lt;br /&gt;
				slider.siblings(&amp;#039;.coda-nav&amp;#039;).find(&amp;#039;a.current&amp;#039;).removeClass(&amp;#039;current&amp;#039;).parents(&amp;#039;ul&amp;#039;).find(&amp;#039;li:last a&amp;#039;).addClass(&amp;#039;current&amp;#039;);&lt;br /&gt;
			} else {&lt;br /&gt;
				currentPanel -= 1;&lt;br /&gt;
				alterPanelHeight(currentPanel - 1);&lt;br /&gt;
				offset = - (panelWidth*(currentPanel - 1));&lt;br /&gt;
				slider.siblings(&amp;#039;.coda-nav&amp;#039;).find(&amp;#039;a.current&amp;#039;).removeClass(&amp;#039;current&amp;#039;).parent().prev().find(&amp;#039;a&amp;#039;).addClass(&amp;#039;current&amp;#039;);&lt;br /&gt;
			};&lt;br /&gt;
			$(&amp;#039;.panel-container&amp;#039;, slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);&lt;br /&gt;
			if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking)&lt;br /&gt;
			return false;&lt;br /&gt;
		});&lt;br /&gt;
			&lt;br /&gt;
		// Right arrow click&lt;br /&gt;
		$(&amp;#039;#coda-nav-right-&amp;#039; + sliderCount + &amp;#039; a&amp;#039;).click(function(){&lt;br /&gt;
			navClicks++;&lt;br /&gt;
			if (currentPanel == panelCount) {&lt;br /&gt;
				offset = 0;&lt;br /&gt;
				currentPanel = 1;&lt;br /&gt;
				alterPanelHeight(0);&lt;br /&gt;
				slider.siblings(&amp;#039;.coda-nav&amp;#039;).find(&amp;#039;a.current&amp;#039;).removeClass(&amp;#039;current&amp;#039;).parents(&amp;#039;ul&amp;#039;).find(&amp;#039;a:eq(0)&amp;#039;).addClass(&amp;#039;current&amp;#039;);&lt;br /&gt;
			} else {&lt;br /&gt;
				offset = - (panelWidth*currentPanel);&lt;br /&gt;
				alterPanelHeight(currentPanel);&lt;br /&gt;
				currentPanel += 1;&lt;br /&gt;
				slider.siblings(&amp;#039;.coda-nav&amp;#039;).find(&amp;#039;a.current&amp;#039;).removeClass(&amp;#039;current&amp;#039;).parent().next().find(&amp;#039;a&amp;#039;).addClass(&amp;#039;current&amp;#039;);&lt;br /&gt;
			};&lt;br /&gt;
			$(&amp;#039;.panel-container&amp;#039;, slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);&lt;br /&gt;
			if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking)&lt;br /&gt;
			return false;&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// If we need a dynamic menu&lt;br /&gt;
		if (settings.dynamicTabs) {&lt;br /&gt;
			var dynamicTabs = &amp;#039;&amp;lt;div class=&amp;quot;coda-nav&amp;quot; id=&amp;quot;coda-nav-&amp;#039; + sliderCount + &amp;#039;&amp;quot;&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;;&lt;br /&gt;
			switch (settings.dynamicTabsPosition) {&lt;br /&gt;
				case &amp;quot;bottom&amp;quot;:&lt;br /&gt;
					slider.parent().append(dynamicTabs);&lt;br /&gt;
					break;&lt;br /&gt;
				default:&lt;br /&gt;
					slider.parent().prepend(dynamicTabs);&lt;br /&gt;
					break;&lt;br /&gt;
			};&lt;br /&gt;
			ul = $(&amp;#039;#coda-nav-&amp;#039; + sliderCount + &amp;#039; ul&amp;#039;);&lt;br /&gt;
			// Create the nav items&lt;br /&gt;
			$(&amp;#039;.panel&amp;#039;, slider).each(function(n) {&lt;br /&gt;
				ul.append(&amp;#039;&amp;lt;li class=&amp;quot;tab&amp;#039; + (n+1) + &amp;#039;&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;#039; + (n+1) + &amp;#039;&amp;quot;&amp;gt;&amp;#039; + $(this).find(settings.panelTitleSelector).text() + &amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;);												&lt;br /&gt;
			});&lt;br /&gt;
			navContainerWidth = slider.width() + slider.siblings(&amp;#039;.coda-nav-left&amp;#039;).width() + slider.siblings(&amp;#039;.coda-nav-right&amp;#039;).width();&lt;br /&gt;
			ul.parent().css({ width: navContainerWidth });&lt;br /&gt;
			switch (settings.dynamicTabsAlign) {&lt;br /&gt;
				case &amp;quot;center&amp;quot;:&lt;br /&gt;
					ul.css({ width: ($(&amp;quot;li&amp;quot;, ul).width() + 2) * panelCount });&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;quot;right&amp;quot;:&lt;br /&gt;
					ul.css({ float: &amp;#039;right&amp;#039; });&lt;br /&gt;
					break;&lt;br /&gt;
			};&lt;br /&gt;
		};&lt;br /&gt;
			&lt;br /&gt;
		// If we need a tabbed nav&lt;br /&gt;
		$(&amp;#039;#coda-nav-&amp;#039; + sliderCount + &amp;#039; a&amp;#039;).each(function(z) {&lt;br /&gt;
			// What happens when a nav link is clicked&lt;br /&gt;
			$(this).bind(&amp;quot;click&amp;quot;, function() {&lt;br /&gt;
				navClicks++;&lt;br /&gt;
				$(this).addClass(&amp;#039;current&amp;#039;).parents(&amp;#039;ul&amp;#039;).find(&amp;#039;a&amp;#039;).not($(this)).removeClass(&amp;#039;current&amp;#039;);&lt;br /&gt;
				offset = - (panelWidth*z);&lt;br /&gt;
				alterPanelHeight(z);&lt;br /&gt;
				currentPanel = z + 1;&lt;br /&gt;
				$(&amp;#039;.panel-container&amp;#039;, slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);&lt;br /&gt;
				if (!settings.crossLinking) { return false }; // Don&amp;#039;t change the URL hash unless cross-linking is specified&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// External triggers (anywhere on the page)&lt;br /&gt;
		$(settings.externalTriggerSelector).each(function() {&lt;br /&gt;
			// Make sure this only affects the targeted slider&lt;br /&gt;
			if (sliderCount == parseInt($(this).attr(&amp;quot;rel&amp;quot;).slice(12))) {&lt;br /&gt;
				$(this).bind(&amp;quot;click&amp;quot;, function() {&lt;br /&gt;
					navClicks++;&lt;br /&gt;
					targetPanel = parseInt($(this).attr(&amp;quot;href&amp;quot;).slice(1));&lt;br /&gt;
					offset = - (panelWidth*(targetPanel - 1));&lt;br /&gt;
					alterPanelHeight(targetPanel - 1);&lt;br /&gt;
					currentPanel = targetPanel;&lt;br /&gt;
					// Switch the current tab:&lt;br /&gt;
					slider.siblings(&amp;#039;.coda-nav&amp;#039;).find(&amp;#039;a&amp;#039;).removeClass(&amp;#039;current&amp;#039;).parents(&amp;#039;ul&amp;#039;).find(&amp;#039;li:eq(&amp;#039; + (targetPanel - 1) + &amp;#039;) a&amp;#039;).addClass(&amp;#039;current&amp;#039;);&lt;br /&gt;
					// Slide&lt;br /&gt;
					$(&amp;#039;.panel-container&amp;#039;, slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);&lt;br /&gt;
					if (!settings.crossLinking) { return false }; // Don&amp;#039;t change the URL hash unless cross-linking is specified&lt;br /&gt;
				});&lt;br /&gt;
			};&lt;br /&gt;
		});&lt;br /&gt;
			&lt;br /&gt;
		// Specify which tab is initially set to &amp;quot;current&amp;quot;. Depends on if the loaded URL had a hash or not (cross-linking).&lt;br /&gt;
		if (settings.crossLinking &amp;amp;&amp;amp; location.hash &amp;amp;&amp;amp; parseInt(location.hash.slice(1)) &amp;lt;= panelCount) {&lt;br /&gt;
			$(&amp;quot;#coda-nav-&amp;quot; + sliderCount + &amp;quot; a:eq(&amp;quot; + (location.hash.slice(1) - 1) + &amp;quot;)&amp;quot;).addClass(&amp;quot;current&amp;quot;);&lt;br /&gt;
		// If there&amp;#039;s no cross-linking, check to see if we&amp;#039;re supposed to load a panel other than Panel 1 initially...&lt;br /&gt;
		} else if (settings.firstPanelToLoad != 1 &amp;amp;&amp;amp; settings.firstPanelToLoad &amp;lt;= panelCount) {&lt;br /&gt;
			$(&amp;quot;#coda-nav-&amp;quot; + sliderCount + &amp;quot; a:eq(&amp;quot; + (settings.firstPanelToLoad - 1) + &amp;quot;)&amp;quot;).addClass(&amp;quot;current&amp;quot;);&lt;br /&gt;
		// Otherwise we must be loading Panel 1, so make the first tab the current one.&lt;br /&gt;
		} else {&lt;br /&gt;
			$(&amp;quot;#coda-nav-&amp;quot; + sliderCount + &amp;quot; a:eq(0)&amp;quot;).addClass(&amp;quot;current&amp;quot;);&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		// Set the height of the first panel&lt;br /&gt;
		if (settings.autoHeight) {&lt;br /&gt;
			panelHeight = $(&amp;#039;.panel:eq(&amp;#039; + (currentPanel - 1) + &amp;#039;)&amp;#039;, slider).height();&lt;br /&gt;
			slider.css({ height: panelHeight });&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		// Trigger autoSlide&lt;br /&gt;
		if (settings.autoSlide) {&lt;br /&gt;
			slider.ready(function() {&lt;br /&gt;
				setTimeout(autoSlide,settings.autoSlideInterval);&lt;br /&gt;
			});&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		function alterPanelHeight(x) {&lt;br /&gt;
			if (settings.autoHeight) {&lt;br /&gt;
				panelHeight = $(&amp;#039;.panel:eq(&amp;#039; + x + &amp;#039;)&amp;#039;, slider).height()&lt;br /&gt;
				slider.animate({ height: panelHeight }, settings.autoHeightEaseDuration, settings.autoHeightEaseFunction);&lt;br /&gt;
			};&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		function autoSlide() {&lt;br /&gt;
			if (navClicks == 0 || !settings.autoSlideStopWhenClicked) {&lt;br /&gt;
				if (currentPanel == panelCount) {&lt;br /&gt;
					var offset = 0;&lt;br /&gt;
					currentPanel = 1;&lt;br /&gt;
				} else {&lt;br /&gt;
					var offset = - (panelWidth*currentPanel);&lt;br /&gt;
					currentPanel += 1;&lt;br /&gt;
				};&lt;br /&gt;
				alterPanelHeight(currentPanel - 1);&lt;br /&gt;
				// Switch the current tab:&lt;br /&gt;
				slider.siblings(&amp;#039;.coda-nav&amp;#039;).find(&amp;#039;a&amp;#039;).removeClass(&amp;#039;current&amp;#039;).parents(&amp;#039;ul&amp;#039;).find(&amp;#039;li:eq(&amp;#039; + (currentPanel - 1) + &amp;#039;) a&amp;#039;).addClass(&amp;#039;current&amp;#039;);&lt;br /&gt;
				// Slide:&lt;br /&gt;
				$(&amp;#039;.panel-container&amp;#039;, slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);&lt;br /&gt;
				setTimeout(autoSlide,settings.autoSlideInterval);&lt;br /&gt;
			};&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		// Kill the preloader&lt;br /&gt;
		$(&amp;#039;.panel&amp;#039;, slider).show().end().find(&amp;quot;p.loading&amp;quot;).remove();&lt;br /&gt;
		slider.removeClass(&amp;quot;preload&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		sliderCount++;&lt;br /&gt;
		&lt;br /&gt;
	});&lt;br /&gt;
};&lt;/div&gt;</summary>
		<author><name>Adpex</name></author>
	</entry>
</feed>