如何无需额外插件实现WooCommerce商品相册缩略图单行滑动展示
WooCommerce单品页缩略图单行滑动导航实现方案
核心问题说明
WooCommerce单品详情页默认商品相册缩略图会在主图下方分行展示,默认每行展示4张,对于多图商品来说展示效率较低。需求是不安装额外插件,实现缩略图单行展示+滑动导航功能。
实现方式结论
仅靠纯CSS只能实现缩略图横向滚动效果,无法和flexslider原生的滑块逻辑联动,也没有适配的滑动导航交互,最优实现方案需要WordPress过滤器+CSS共同完成,符合WooCommerce官方定制规范,兼容性更好。
效果参考
实现步骤
1. 添加WordPress过滤器开启flexslider导航配置
将以下代码添加到当前使用主题的functions.php文件中,修改WooCommerce内置flexslider组件的默认参数,开启方向导航功能:
add_filter( 'woocommerce_single_product_carousel_options', 'cuswoo_update_woo_flexslider_options' ); /** * 过滤WooCommerce Flexslider配置项 - 开启导航箭头 */ function cuswoo_update_woo_flexslider_options( $options ) { $options['directionNav'] = true; return $options; }
2. 添加缩略图单行展示CSS样式
将以下CSS代码添加到主题自定义CSS面板或者主题的style.css文件中,实现缩略图单行不换行、可横向滚动的效果:
.flex-control-thumbs { width: 90%; position: absolute; bottom: 0px; text-align: center; display:flex; flex-wrap:nowrap; border: 1px solid red; overflow-x:auto; padding-bottom:10px; } .flex-control-thumbs li { margin: 0 6px; display: inline-block; zoom: 1; } .flex-control-thumbs li, .flex-control-thumbs li:first-child { width: 16%; vertical-align: top; margin: 5px 1% 0 0; min-width: 100px; } .flex-control-thumbs img { width: 100%; display: block; opacity: 0.8; cursor: pointer; } .flex-control-thumbs img:hover { opacity: 0.5; } .flex-control-thumbs .flex-active { opacity: 1; cursor: default; } .product_slider .flex-active-slide a:hover { cursor: -webkit-zoom-in; cursor: -moz-zoom-in; }
3. 添加滑动导航箭头CSS样式
将以下CSS代码添加到样式文件中,实现主图两侧的前后切换箭头效果(注意:当前样式依赖FontAwesome图标库,若站点未加载可自行替换为图片图标或者其他图标方案):
ul.flex-direction-nav { position: absolute; top: 30%; z-index: 99999; width: 100%; left: 0; margin: 0; padding: 0px; list-style: none; } li.flex-nav-prev {float: left;} li.flex-nav-next {float: right;} a.flex-next {visibility:hidden;} a.flex-prev {visibility:hidden;} a.flex-next::after { visibility:visible; content: '\f105'; font-family: FontAwesome; margin-right: 10px; font-size: 70px; } a.flex-prev::before { visibility:visible; content: '\f104'; font-family: FontAwesome; margin-left: 10px; font-size: 70px; }
配套WooCommerce默认输出缩略图HTML结构参考
<ol class="flex-control-nav flex-control-thumbs"> <li><img src="image.jpeg" class="flex-active" draggable="false" /></li> <li><img src="image.jpeg" draggable="false" /></li> <li><img src="image.jpeg" draggable="false" /></li> <li><img src="image.jpeg" draggable="false" /></li> <li><img src="image.jpeg" draggable="false" /></li> <li><img src="image.jpeg" draggable="false" /></li> </ol>
内容的提问来源于stack exchange,提问作者Ross
相关产品推荐
相关产品推荐


