2012-08-14 64 views
1

所以我发现这个惊人的jQuery幻灯片称为Skitter。这很棒!所以我在我的最新项目中实现了它。 我明白了@http://thiagosf.net/projects/jquery/skitter/#documentationjQuery幻灯片 - 想随机,但需要从相同的图像开始

是否有可能(如果是这样,我该如何)随机显示图像但总是从一个特定的开始? 例如,假设我想让用户加载页面时显示的第一个图像是一个特定的图像,并带有欢迎消息。但对于每个“之后”的图像,它都是随机的。

我头上有“show_randomly:true”部分,我目前的幻灯片是成功的随机化。我只是希望有一个'开始'的形象。

从它的主页

所以,我做了“自定义功能”和复制/粘贴它给了我进入我的页面头部的代码...

<!-- CSS --> 
<link type="text/css" href="scripts/SkitterSlideshow/css/skitter.styles.css" 
     media="all" rel="stylesheet" /> 

<!-- JS --> 
<script type="text/javascript" 
     src="scripts/SkitterSlideshow/js/jquery-1.6.3.min.js"></script> 
<script type="text/javascript" 
     src="scripts/SkitterSlideshow/js/jquery.easing.1.3.js"></script> 
<script type="text/javascript" 
     src="scripts/SkitterSlideshow/js/jquery.animate-colors-min.js"></script> 
<script type="text/javascript" 
     src="scripts/SkitterSlideshow/js/jquery.skitter.min.js"></script> 

<!-- Init Plugin --> 
<script> 
     $(document).ready(function() { 
      $(".box_skitter_large").skitter({ 
       animation: "randomSmart", 
       dots: true, 
       preview: true, 
       controls_position: "center", 
       numbers_align: "right", 
       hideTools: true, 
       show_randomly: true, 
       controls: true, 
       interval: 5000, 
       velocity: 0.5, 
      }); 
     }); 
</script> 

所以就像我说的,我有一个成功的幻灯片放映正在运行,它随机化图像。只需要一种方法,让它始终从列表中的一个特定图像开始。 谢谢!

回答

2

据我所知,这不是Skitter脚本的功能。但是,您可以轻松地添加它。首先打开jquery.skitter.js文件(很难对现在使用的.min.js文件进行更改,并且以后可以随时将其最小化)。

查找以下行:

if (this.settings.show_randomly) this.settings.images_links.sort(function(a,b) { 
    return Math.random() - 0.5; 
}); 

后,立即补充一点:

/* START INITIAL FIXED IMAGE MOD */ 
if (this.settings.show_randomly) { /* Only use a fixed initial image if show_randomly is enabled */ 

    /* The following function is used to move an item in an array from fromIndex to toIndex */ 
    Array.prototype.move = function(fromIndex, toIndex) { 
     this.splice(toIndex, 0, this.splice(fromIndex, 1)[0]); 
    }; 

    initialIndex = 0; 

    /* The following function finds the desired initial image and stores it's location */ 
    $.each(this.settings.images_links, function(index, item) { 
     if (item[1].slice(0,9) == "[initial]") initialIndex = index; 
    }); 

    this.settings.images_links[initialIndex][1].replace("[initial]", ""); /* Removes the [initial] tag so the link works properly */ 
    this.settings.images_links.move(initialIndex, 0); /* Move it to the front of the array so it's displayed first */ 
} 
/* END INITIAL FIXED IMAGE MOD */ 

然后,宣布初始(开始)的图像,只需添加[initial]到HREF的开始所需图像的属性。假设您在脚本选项中启用了show_randomly,以下示例总是以images/003.jpg开头。

<div class="box_skitter box_skitter_large"> 
    <ul> 
     <li><a href="#cube"><img src="images/001.jpg" class="cube" /></a><div class="label_text"><p>cube</p></div></li> 
     <li><a href="#cubeRandom"><img src="images/002.jpg" class="cubeRandom" /></a><div class="label_text"><p>cubeRandom</p></div></li> 
     <li><a href="[initial]#block"><img src="images/003.jpg" class="block" /></a><div class="label_text"><p>block</p></div></li> 
     <li><a href="#cubeStop"><img src="images/004.jpg" class="cubeStop" /></a><div class="label_text"><p>cubeStop</p></div></li> 
     <li><a href="#cubeHide"><img src="images/005.jpg" class="cubeHide" /></a><div class="label_text"><p>cubeHide</p></div></li> 
     <li><a href="#cubeSize"><img src="images/006.jpg" class="cubeSize" /></a><div class="label_text"><p>cubeSize</p></div></li> 
    </ul> 
</div> 

如果你想再次最小化这一点,有几个互联网服务,如http://www.minifyjavascript.comhttp://refresh-sf.com/yui,或http://jscompress.com

+0

HOLY AWESOME BATMAN !!!伙计,你摇滚。谢谢谢谢谢谢谢谢谢谢谢谢!!!我对这个网站上的人们的善意感到惊讶和惊讶。我迫不及待想要尝试这个(今晚)。我对你的好意无言以对。 – SyberKnight 2012-08-20 20:28:12

+0

是的!实施...完美:-) 再次感谢! – SyberKnight 2012-08-21 04:42:28