我需要使用 flexslider 创建一个响应式轮播。问题是,当我将浏览器窗口缩小到容器大小以下时,元素位置会困惑。

这是>1200 屏幕上的滑块截图(很好)

这是 >800 屏幕上的滑块截图 (!!)

我的 JS 初始化:

$('.flexslider').flexslider({
    animation: "slide",
    animationLoop: true,
    touch: true,
    mousewheel: true,
    itemWidth: 400,
    prevText: "",
    nextText: ""
    });

正如您在图像 (2) 中看到的,第三张图像被切掉了。当分辨率达到阈值时,我想将可见元素的数量减少到两个,并使图像适应可用空间,因此没有任何东西被切断。想法?

最佳答案

这是因为您的 flexslider 上的 itemWidth。您应该编写 mediaquery 以使宽度在各自的设备上灵活。在此之前添加这个额外的脚本并尝试。

// tiny helper function to add breakpoints
var getGridSize = function() {
  return (window.innerWidth < 600) ? 1 :
         (window.innerWidth < 900) ? 2 : 3;
}

$('.flexslider').flexslider({
    animation: "slide",
    animationLoop: false,
    itemWidth: 200,
    itemMargin: 40,
    minItems: getGridSize(), // use function to pull in initial value
    maxItems: getGridSize(), // use function to pull in initial value
    directionNav: true,
    controlNav: false,
    slideshow: false,
});

关于javascript - flexslider 响应式轮播问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21483428/

10-12 13:20