Javascript 同位素转换&x27;闪光灯';臭虫(铬)

Javascript 同位素转换&x27;闪光灯';臭虫(铬),javascript,jquery,css,google-chrome,jquery-isotope,Javascript,Jquery,Css,Google Chrome,Jquery Isotope,我用Metafizzy的同位素创建了一个可过滤网格 它几乎可以完美地工作,但在转换过程中存在内容“闪烁”的问题。如果禁用转换,则没有问题,因此我只能假设问题与转换本身有关 我已经附上了一个错误的图像。您可以看到显示的内容是页面上各种元素的小故障 任何建议,谢谢 编辑:这似乎是一个特定于Chrome的问题 JS $( function() { // Init Isotope var $grid = $('.grid').isotope({ itemSelector:

我用Metafizzy的同位素创建了一个可过滤网格

它几乎可以完美地工作,但在转换过程中存在内容“闪烁”的问题。如果禁用转换,则没有问题,因此我只能假设问题与转换本身有关

我已经附上了一个错误的图像。您可以看到显示的内容是页面上各种元素的小故障

任何建议,谢谢

编辑:这似乎是一个特定于Chrome的问题

JS

$( function() {
    // Init Isotope
    var $grid = $('.grid').isotope({
        itemSelector: '.grid-item',
        percentPosition: true,
        transitionDuration: 0.2,
        masonry: {
            columnWidth: '.grid-sizer',
            gutter: '.gutter-sizer'
        },
        hiddenStyle: { opacity: 0 },
        visibleStyle: { opacity: 1 }
    });

    // Layout Isotope after each image loads
    $grid.imagesLoaded().progress( function() {
        $grid.isotope('layout');
    }); 

    // Bind filter li click
    $('.grid-filter').on( 'click', 'li', function() {
        var filterValue = $( this ).attr('data-filter');
        $grid.isotope({ filter: filterValue });
    });

    // Add/remove 'current' class on lis
    $('.grid-filter').each( function( i, filters ) {
        var $filters = $( filters );
        $filters.on( 'click', 'li', function() {
            $filters.find('.current').removeClass('current');
            $( this ).addClass('current');
        });
    });
});
.grid { position: relative; }

.grid-sizer,
.grid-item { width: calc(50% - 20px); } // 50% - gutter width

.gutter-sizer { width: 20px; }

.grid-item {
    float: left;
    margin: 0 0 20px 0;
    display: flex;
    transition: background 0.4s; /* Prevent double transition jump bug */
}

figure {
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
    margin: 0;
    word-wrap: break-word;
    overflow: hidden;
}
CSS

$( function() {
    // Init Isotope
    var $grid = $('.grid').isotope({
        itemSelector: '.grid-item',
        percentPosition: true,
        transitionDuration: 0.2,
        masonry: {
            columnWidth: '.grid-sizer',
            gutter: '.gutter-sizer'
        },
        hiddenStyle: { opacity: 0 },
        visibleStyle: { opacity: 1 }
    });

    // Layout Isotope after each image loads
    $grid.imagesLoaded().progress( function() {
        $grid.isotope('layout');
    }); 

    // Bind filter li click
    $('.grid-filter').on( 'click', 'li', function() {
        var filterValue = $( this ).attr('data-filter');
        $grid.isotope({ filter: filterValue });
    });

    // Add/remove 'current' class on lis
    $('.grid-filter').each( function( i, filters ) {
        var $filters = $( filters );
        $filters.on( 'click', 'li', function() {
            $filters.find('.current').removeClass('current');
            $( this ).addClass('current');
        });
    });
});
.grid { position: relative; }

.grid-sizer,
.grid-item { width: calc(50% - 20px); } // 50% - gutter width

.gutter-sizer { width: 20px; }

.grid-item {
    float: left;
    margin: 0 0 20px 0;
    display: flex;
    transition: background 0.4s; /* Prevent double transition jump bug */
}

figure {
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
    margin: 0;
    word-wrap: break-word;
    overflow: hidden;
}
HTML



我无法复制您的问题,但考虑到它仅存在于Chrome中,我想知道这是否只是Chrome闪烁问题?有时在使用转换时,WebKit驱动的桌面和移动浏览器会出现奇怪的故障或闪烁。您通常可以通过强制硬件加速来解决这个问题,方法是向元素或元素容器添加特定的css规则,并进行转换

e、 g.(您不需要这两个选项,只需要一个,但通常这两个选项中的任何一个都会起作用,并且不会对您的项目产生视觉上的影响)


对我来说,这其实只是简单的造型

.isotope-wrapper.isotope-loading:before {
  background-color: #ffffff00;
}

尝试将转换添加到全部,而不仅仅是特定属性(
background
top
left
),并将项目浮动到左侧,然后将其设置为
display:flex毫无意义。浮动它,或者使用
display:flex