1

所以我发现了这个很棒的 jQuery 幻灯片,叫做 Skitter。这很棒!所以我在我最新的项目中实现了它。我明白了@ http://thiagosf.net/projects/jquery/skitter/#documentation

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

我的头部有“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>

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

4

1 回答 1

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>

如果你想再次最小化这个,有几个 Internet 服务,例如http://www.minifyjavascript.comhttp://refresh-sf.com/yuihttp://jscompress.com

于 2012-08-19T20:39:19.487 回答