QuickSand,动画stuttery

时间:2011-06-19 20:08:58

标签: javascript jquery jquery-plugins quicksand

我花了很多时间来弄清楚如何让quicksand使用选择和选项形式而不是href链接。现在我遇到了问题,因为动画很糟糕。我不能顺利。它开始好然后快速向左移动。您可以看到一个在线示例:

http://freecss.info/ScreencastTutorials/archive.html

有什么想法吗?我想过很多事情并尝试过,但没有运气。其他脚本是兼容的,尝试更改为固定宽度并尝试添加一个持有者div与overflow:hidden。

相关的jquery:

var $holder = $('ul#archive-full');
var $data = $holder.clone();
var mySelect = $('#mySelect');
mySelect.change(function() {
    var index = mySelect[0].selectedIndex;
    var element = mySelect[0].options[index];
    var $filterType = $(element).attr('value')
    if ($filterType == 'all') {
        var $filteredData = $data.find('li:not(li ul li)');
    }
    else {
        var $filteredData = $data.find('li[data-type~="' + $filterType + '"]');
    }
    $holder.quicksand($filteredData, {
        duration: 800,
        easing: 'easeInOutQuad'
    });
    return false;
});

相关HTML

<select name="mySelect" id="mySelect" selected value="all">
 <option name="all" value="all">Free & Premium</option>
 <option name="free" value="free">Free Only</option>
 <option name="premium" value="premium">Premium Only</option>
</select>
<ul id="archive-full">
 <li data-id="id-1" data-type="all premium">/li>
</ul>

1 个答案:

答案 0 :(得分:4)

迈克尔:

问题是使用相同的ID来设置无序列表的样式,并使用jQuery为无序列表设置动画。

要解决此问题,只需将类添加到无序列表中,然后使用它来使用CSS对其进行样式设置。然后使用原始ID执行jQuery动画,例如:

<ul id="archive-full" class="archive-style">