繁体   English   中英

从ul中取3个随机项,并使用random fadeIn和fadeOut追加到另一个列表

[英]Take 3 random items from a ul and append to another list with random fadeIn and fadeOut

所以到目前为止,我对这个功能还不满意,但是现在我正为一个问题而苦苦挣扎。

我在这里做了一个小提琴: http : //jsfiddle.net/lharby/WhUJq/3/

我有一个被隐藏的ul,该函数从ul中提取了3 li个项目,并将其追加到可见的ul上。

我想做的是在这些项目上有一个很好的fadeIn和fadeOut函数。 我希望每个li的淡入度可以错开。

这是功能:

 function rndSlider() {

var $show = 3, // Number of items to show
    $elemLength = $('.slider li').length, // Total items
    $firstPart = '<li><img src="/img/slider/0',
    $lastPart = '.jpg" /></li>',
    array = [], // array with all available numbers
    rnd, value, i,
    $wrapper = $('.slider-clone');
    $('.slider-clone li').remove();

for (i = 0; i < $elemLength; i++) { 
  array[i] = i + 1;
}

for (i = 0; i < $show; i++) { // pick numbers
  rnd = Math.floor(Math.random() * array.length); 
  value = array.splice(rnd,1)[0]; // remove the selected number from the array and get it in another variable

  $wrapper.append($firstPart + value + $lastPart);
  }
}

我想知道我是否需要$('。slider-clone li')。remove();上的每个函数; 应用于每个li元素(我在小提琴上有一个fadeIn函数,但不对fadeOut起作用)。

然后淡入$ wrapper.append($ firstPart + value + $ lastPart);

但是我似乎什么也无法工作,当我应用其中之一时,似乎使主功能无法运行。

TIA

嗯..那真是尴尬..当我发布这个..它很好..我认为这个问题可能与fadeIn和fadeOut异步完成有关。这里的问题是当创建子图像时fadeOut效果回调将其删除。

$(this).children().remove();

我已经更新了您的小提琴:

http://jsfiddle.net/WhUJq/15/

因此,如果我正确理解您的意思,那么问题就出在淡出()效果上了吗?

更换:

$('.slider-clone li').each(function(){
    $(this).fadeOut(400);                           
});

使用以下代码来解决该问题:

$wrapper.fadeOut('slow', function(){ $(this).children().remove(); });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM