另一个 jQuery Quicksand 跳跃过渡

Posted

技术标签:

【中文标题】另一个 jQuery Quicksand 跳跃过渡【英文标题】:Another jQuery Quicksand jumpy transition 【发布时间】:2014-05-07 15:52:42 【问题描述】:

当我点击过滤器时,li 会在过渡到过滤器之前获得一个左侧重叠位置。我测试了以前的问题和答案,但没有解决问题。 ul 不使用绝对位置,li 类有左浮动。

这里是html

    <div class="filters">

        <ul id="filters" class="clearfix">
            <li><a title="all" href="#" class="active"> all </a></li>
            <li><a title="web" href="#"> web </a></li>
            <li><a title="app" href="#"> app </a></li>
            <li><a title="logo" href="#"> logo </a></li>
            <li><a title="card" href="#"> card </a></li>
            <li><a title="icon" href="#"> icon </a></li>
        </ul>

    </div>

    <div id="portfolio">

        <ul id="portfolio_list">

            <li class="portfolio" data-id="id-1" data-type="logo">
                <div class="portfolio-wrapper">             
                    <img src="images/portfolios/logo/5.jpg"  />
                    <div class="label">
                        <div class="label-text">
                            <a class="text-title">Bird Document</a>
                            <span class="text-category">Logo</span>
                        </div>
                        <div class="label-bg"></div>
                    </div>
                </div>
            </li>               

            <li class="portfolio" data-id="id-2" data-type="app">
                <div class="portfolio-wrapper">         
                    <img src="images/portfolios/app/1.jpg"  />
                    <div class="label">
                        <div class="label-text">
                            <a class="text-title">Visual Infography</a>
                            <span class="text-category">APP</span>
                        </div>
                        <div class="label-bg"></div>
                    </div>
                </div>
            </li>
         </ul></div>

这是 jQuery 调用

$(document).ready(function () 

    var $filter = $('#filters a');
    var $portfolio = $('#portfolio_list');
    var $data = $portfolio.clone();

    $filter.click(function(e) 

        if ($($(this)).attr("title") == 'all') 
            var $filteredData = $data.find('li');
         else 
            var $filteredData = $data.find('li[data-type=' + $($(this)).attr("title") + ']');
        

        $portfolio.quicksand($filteredData, 
            adjustHeight: 'dynamic',
            duration: 800,
            easing: 'easeInOutQuad'
        );

        $('#filters a').removeClass('active');
        $(this).addClass('active');

    );

); 

忘记发布css

#portfolio_list li 溢出:隐藏;向左飘浮; #portfolio_list .portfolio 宽度:19%;保证金:2% 1% 0% 1%;边框:1px 实心#c8c8a9;背景:#fff;填充:20px; #portfolio_list .portfolio-wrapper 溢出:隐藏;位置:相对!重要;光标:指针; #portfolio_list .portfolio img 最大宽度:100%;位置:相对; #portfolio_list .portfolio .label 位置:绝对;宽度:100%;高度:50 像素;底部:-50px; #portfolio_list .portfolio .label-bg 背景:#fff;宽度:100%;高度:100%;位置:绝对;顶部:0;左:0; #portfolio_list .portfolio .label-text 颜色:#000;位置:相对; z指数:500;填充:12px 8px 0; #portfolio_list .portfolio .text-category display:block;

感谢任何帮助。谢谢。

【问题讨论】:

你能放个小提琴给我们看看吗? 【参考方案1】:

问题是由用于设置 ul 和 li 样式的相同 ID 以及同时使用 jQuery 调用它引起的。需要使用没有 css 样式的 ID,以免在流沙中产生故障。

【讨论】:

以上是关于另一个 jQuery Quicksand 跳跃过渡的主要内容,如果未能解决你的问题,请参考以下文章

具有 scaleType centerCrop 过渡的共享元素跳跃

带有过渡和 translateY 的 Safari 错误:“跳跃”元素

两个元素之间的细长过渡“跳跃”

CSS 过渡在不透明度淡出时跳跃

我该如何解决这种跳跃过渡?

变换 + 过渡导致内容跳跃或模糊 CSS