JavaScript代码段可强制重绘/重绘DOM元素。 有点笨拙,但作为最后的手段很有用。
var element = document.getElementById('id');
var n = document.createTextNode(' ');
var disp = element.style.display; // don't worry about previous display style
element.appendChild(n);
element.style.display = 'none';
setTimeout(function(){
element.style.display = disp;
n.parentNode.removeChild(n);
},20); // you can play with this timeout to make it as short as possible
使用Transit.js
如果您使用的过渡插件(例如transit.js)也可以使用:
$('#element')
.transition({ x: '-500px', easing: 'snap', duration:'0' })
.transition({ x: '0', easing: 'snap', duration:'0' })
.css('z-index','10');
CSS:
#element {
position: absolute;
right: '-500px';
z-index: -1;
}
From: https://www.sitepoint.com/javascript-snippet-force-dom-element-redrawrepaint/