Javascript 同位素转换&x27;闪光灯';臭虫(铬)
我用Metafizzy的同位素创建了一个可过滤网格 它几乎可以完美地工作,但在转换过程中存在内容“闪烁”的问题。如果禁用转换,则没有问题,因此我只能假设问题与转换本身有关 我已经附上了一个错误的图像。您可以看到显示的内容是页面上各种元素的小故障 任何建议,谢谢 编辑:这似乎是一个特定于Chrome的问题 JSJavascript 同位素转换&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:
$( 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代码>。