如何修复Bootstrap轮播图从页面末端滑动的异常问题
问题原因
- 外层
.carousel.vertical轮播容器未设置overflow: hidden,待滑入的轮播项没有被容器裁剪,直接暴露在屏幕区域显示 carousel-inner采用固定left:121px的方式偏移居中,和轮播项的位移计算逻辑不匹配,同时轮播项宽度设置为80%、位移用100%自身宽度计算,导致滑入起始位置错位- 两份CSS文件里重复定义了轮播相关样式,优先级冲突导致部分规则失效
修复代码
1. 替换轮播容器相关样式
删除两份样式中重复的.carousel.vertical和.carousel.vertical .carousel-inner规则,替换为以下代码:
.carousel.vertical { position: relative !important; overflow: hidden !important; width: 911px !important; margin: 0 auto !important; } .carousel.vertical .carousel-inner { height: 100% !important; width: 100% !important; left: 0 !important; overflow: hidden !important; }
2. 修正轮播项位移匹配规则
.carousel.vertical .carousel-inner > .item { transition: 0.6s ease-in-out !important; transform: translate3d(100%, 0, 0) !important; top: 0 !important; background: #ccc !important; width: 100% !important; height: 260px !important; border: 1px solid #e6e6e6 !important; }
3. 修正指示器定位逻辑(可选,解决指示器错位问题)
.carousel-indicators { right: 20px !important; left: auto !important; width: auto !important; } .carousel-indicators li { display: inline-block !important; text-indent: -999px !important; cursor: pointer !important; background-color: rgba(0, 0, 0, 0) !important; border: 1px solid #fff !important; border-radius: 4px !important; position: relative !important; left: auto !important; top: -5px !important; }
内容的提问来源于stack exchange,提问作者Souvik
相关产品推荐
相关产品推荐

