我有一个轮播,我需要根据浏览器的当前宽度重新定位轮播幻灯片。我需要遵循的规则是:
browserWidth > 1200: do not reposition slide
browserWidth > 960 && browserWidth < 1200: move slide background X position based
on the formula (25/48*browserWidth)-625
browserWidth < 960: reposition background X position to -125px
我写了一些 JavaScript 来做到这一点,但是每当我调整浏览器的大小时,图像就会开始闪烁很多。我认为计算机在尝试重新渲染背景图像时遇到了麻烦,因为它们的分辨率如此之高。有没有办法解决这个闪烁的问题?
$(window).resize(function() {
var winW = $(window).width();
if (winW > 960 && winW < 1200) {
$('#' + carouselID).css('left', '600px' );
var leftValue = ((25/48) * winW - 625) + 'px';
var backgroundAtr = 'url(http://www.placehold.it/1200x800) ' + leftValue + ' top no-repeat';
$('#' + carouselID + ' .slides .slide').css('background', backgroundAtr );
} else if (winW <= 960) {
$('#' + carouselID).css('left', '600px' );
var leftValue = '-125px';
var backgroundAtr = 'url(http://www.placehold.it/1200x800) ' + leftValue + ' top no-repeat';
$('#' + carouselID + ' .slides .slide').css('background', backgroundAtr );
} else if (winW >= 1200) {
$('#' + carouselID).css('left', '50%' );
var leftValue = 'left';
var backgroundAtr = 'url(http://www.placehold.it/1200x800) ' + leftValue + ' top no-repeat';
$('#' + carouselID + ' .slides .slide').css('background', backgroundAtr );
}
});