
这个插件强力推荐,非常不错的一个插件。图片滚动的同时还有个放大特效,外加上标题和描述。可以说实用性非常的大。唯一的缺憾就是实际上作者的JS水平不算太高,代码可以说毫无封装。
使用方法:
建立如下html结构:
- <div id="slider">
- <img class="scrollButtons left" src="images/leftarrow.png">
- <div style="overflow: hidden;" class="scroll">
- <div class="scrollContainer">
- <div class="panel" id="panel_1">
- <div class="inside">
- <img src="images/1.jpg" alt="picture" />
- <h2>News Heading</h2>
- <p>A very shot exerpt goes here... <a href="http://flickr.com/photos/justbcuz/112479862/">more link</a></p>
- </div>
- </div>
- <div class="panel" id="panel_2">
- <div class="inside">
- <img src="images/2.jpg" alt="picture" />
- <h2>News Heading</h2>
- <p>A very shot exerpt goes here... <a href="http://flickr.com/photos/joshuacraig/2698975899/">more link</a></p>
- </div>
- </div>
- <div class="panel" id="panel_3">
- <div class="inside">
- <img src="images/3.jpg" alt="picture" />
- <h2>News Heading</h2>
- <p>A very shot exerpt goes here... <a href="http://flickr.com/photos/ruudvanleeuwen/468309897/">more link</a></p>
- </div>
- </div>
- <div class="panel" id="panel_4">
- <div class="inside">
- <img src="images/4.jpg" alt="picture" />
- <h2>News Heading</h2>
- <p>A very shot exerpt goes here... <a href="http://flickr.com/photos/emikohime/294092478/">more link</a></p>
- </div>
- </div>
- <div class="panel" id="panel_5">
- <div class="inside">
- <img src="images/5.jpg" alt="picture" />
- <h2>News Heading</h2>
- <p>A very shot exerpt goes here... <a href="http://flickr.com/photos/fensterbme/499006584/">more link</a></p>
- </div>
- </div>
- </div>
- <div id="left-shadow"></div>
- <div id="right-shadow"></div>
- </div>
- <img class="scrollButtons right" src="images/rightarrow.png">
- </div>
貌似代码很多,实际上结构很简单。
来看其js部分
- $(function() {
- var totalPanels = $(".scrollContainer").children().size();
- var regWidth = $(".panel").css("width");
- var regImgWidth = $(".panel img").css("width");
- var regTitleSize = $(".panel h2").css("font-size");
- var regParSize = $(".panel p").css("font-size");
- var movingDistance = 300;
- var curWidth = 350;
- var curImgWidth = 326;
- var curTitleSize = "20px";
- var curParSize = "15px";
- var $panels = $('#slider .scrollContainer > div');
- var $container = $('#slider .scrollContainer');
- $panels.css({'float' : 'left','position' : 'relative'});
- $("#slider").data("currentlyMoving", false);
- $container
- .css('width', ($panels[0].offsetWidth * $panels.length) + 100 )
- .css('left', "-350px");
- var scroll = $('#slider .scroll').css('overflow', 'hidden');
- function returnToNormal(element) {
- $(element)
- .animate({ width: regWidth })
- .find("img")
- .animate({ width: regImgWidth })
- .end()
- .find("h2")
- .animate({ fontSize: regTitleSize })
- .end()
- .find("p")
- .animate({ fontSize: regParSize });
- };
- function growBigger(element) {
- $(element)
- .animate({ width: curWidth })
- .find("img")
- .animate({ width: curImgWidth })
- .end()
- .find("h2")
- .animate({ fontSize: curTitleSize })
- .end()
- .find("p")
- .animate({ fontSize: curParSize });
- }
- //direction true = right, false = left
- function change(direction) {
- //if not at the first or last panel
- if((direction && !(curPanel < totalPanels)) || (!direction && (curPanel <= 1))) { return false; }
- //if not currently moving
- if (($("#slider").data("currentlyMoving") == false)) {
- $("#slider").data("currentlyMoving", true);
- var next = direction ? curPanel + 1 : curPanel - 1;
- var leftValue = $(".scrollContainer").css("left");
- var movement = direction ? parseFloat(leftValue, 10) - movingDistance : parseFloat(leftValue, 10) + movingDistance;
- $(".scrollContainer")
- .stop()
- .animate({
- "left": movement
- }, function() {
- $("#slider").data("currentlyMoving", false);
- });
- returnToNormal("#panel_"+curPanel);
- growBigger("#panel_"+next);
- curPanel = next;
- //remove all previous bound functions
- $("#panel_"+(curPanel+1)).unbind();
- //go forward
- $("#panel_"+(curPanel+1)).click(function(){ change(true); });
- //remove all previous bound functions
- $("#panel_"+(curPanel-1)).unbind();
- //go back
- $("#panel_"+(curPanel-1)).click(function(){ change(false); });
- //remove all previous bound functions
- $("#panel_"+curPanel).unbind();
- }
- }
- // Set up "Current" panel and next and prev
- growBigger("#panel_3");
- var curPanel = 3;
- $("#panel_"+(curPanel+1)).click(function(){ change(true); });
- $("#panel_"+(curPanel-1)).click(function(){ change(false); });
- //when the left/right arrows are clicked
- $(".right").click(function(){ change(true); });
- $(".left").click(function(){ change(false); });
- $(window).keydown(function(event){
- switch (event.keyCode) {
- case 13: //enter
- $(".right").click();
- break;
- case 32: //space
- $(".right").click();
- break;
- case 37: //left arrow
- $(".left").click();
- break;
- case 39: //right arrow
- $(".right").click();
- break;
- }
- });
- });
有兴趣的朋友可以对其进行改造下。

Pingback: 10+个jQuery图片滚动插件介绍 : 彼熊不及此熊
Pingback: 老扬州 » 10+个jQuery图片滚动插件介绍