我的网站上有这个轮播来显示产品图片。单击 LI 元素时,该 LI 滚动到 UL 的中心。它在水平方向上工作得很好,但如何使其在垂直方向上工作呢?
我尝试将 Widht 和 width 更改为 Height 和 height,将 Left 和 left 更改为 Top 和 top,将 ScrollLeft 更改为 ScrollTop,但当然它无法正常工作。
演示:https://jsfiddle.net/of2wxjy3/
<div class="product-preview_mobile-thumbnails-list-inner">
<ul>
<li class="product-preview_mobile-thumbnails-list_item">
<img class="current-mobile-thumbnail" src="https://1.bp.blogspot.com/-pdOOEtG_uYE/XZOHBvNx0QI/AAAAAAAAAI4/K-ShSavM3sUJMLR-vpZd8yftpm3v3eYPwCLcBGAsYHQ/s320/1.jpg">
</li>
<li class="product-preview_mobile-thumbnails-list_item">
<img src="https://1.bp.blogspot.com/-SVSc51GKlfk/XZOHBrU-r8I/AAAAAAAAAI8/87c17psUxsgQImo9DNwpLH_lqEN5ycoXQCLcBGAsYHQ/s320/2.jpg">
</li>
<li class="product-preview_mobile-thumbnails-list_item">
<img src="https://1.bp.blogspot.com/-WzhHuteXzpU/XZOHBinqdxI/AAAAAAAAAI0/r4eCe3ECseogebJUueeQ3W_3nDIHSwdsQCLcBGAsYHQ/s320/3.jpg">
</li>
<li class="product-preview_mobile-thumbnails-list_item">
<img src="https://1.bp.blogspot.com/-J0ky_WiapH4/XZOHCQ-LdgI/AAAAAAAAAJA/STOcX4imVZ05o62p9ovVvM-jsUtJ4tKWwCLcBGAsYHQ/s320/4.jpg">
</li>
<li class="product-preview_mobile-thumbnails-list_item">
<img src="https://1.bp.blogspot.com/-LgovTz7CQNk/XZOHDMKOPUI/AAAAAAAAAJE/3r3zCOO9JGIMMHbsP6RSOlyVWnZ1EQn9wCLcBGAsYHQ/s320/5.jpg">
</li>
</ul>
</div>
.product-preview_mobile-thumbnails-list-inner {
margin: 0 auto;
width: 200px;
overflow-x: scroll;
float: left;
white-space: nowrap;
}
.product-preview_mobile-thumbnails-list-inner ul {
margin: 0 auto;
height: 100%;
list-style: none;
width: max-content;
padding: 0 20px;
}
.product-preview_mobile-thumbnails-list_item {
display: inline-block;
margin: 0 13.49px 0 0;
}
.product-preview_mobile-thumbnails-list_item:last-child {
margin: 0;
}
.product-preview_mobile-thumbnails-list_item img {
border: 0;
border-top: 2px solid gainsboro;
box-shadow: none;
background: #FFF;
padding: 12.5px 0 0;
border-radius: 0;
width: 60px;
height: 60px;
}
.current-mobile-thumbnail {
border-top-color: #231f20!important;
}
$('.product-preview_mobile-thumbnails-list-inner ul li').on('click', function(e) {
var container = $(this).parent().parent();
var slideWidth = $(this).width();
var frameWidth = container.width() / 2;
var slidePosition = $(this).position().left;
var offset = container.scrollLeft() + slidePosition - frameWidth + slideWidth / 2;
container.animate({
scrollLeft: offset
}, 250);
e.preventDefault();
});
$('.product-preview_mobile-thumbnails-list-inner ul li img').on('click', function(){
$('img.current-mobile-thumbnail').removeClass('current-mobile-thumbnail');
$(this).addClass('current-mobile-thumbnail');
});
最佳答案
我已经更新了 fiddle 并进行了一些编辑。希望这可以帮助!您应该能够从这里获取它。
fiddle https://jsfiddle.net/q246gsku/4/
JS
$(".product-preview_mobile-thumbnails-list-inner ul li").on("click", function(e) {
var container = $(this).parent().parent();
var slideWidth = $(this).height();
var frameWidth = container.height() / 2;
var slidePosition = $(this).position().top;
var offset = container.scrollTop() + slidePosition - frameWidth + slideWidth / 2;
container.animate(
{
scrollTop: offset
},
250
);
e.preventDefault();
});
$(".product-preview_mobile-thumbnails-list-inner ul li img").on(
"click",
function() {
$("img.current-mobile-thumbnail").removeClass("current-mobile-thumbnail");
$(this).addClass("current-mobile-thumbnail");
}
);
CSS
.product-preview_mobile-thumbnails-list-inner {
margin: 0 auto;
width: 100px;
overflow-y: scroll;
overflow-x: hidden;
float: left;
white-space: nowrap;
}
.product-preview_mobile-thumbnails-list-inner ul {
margin: 0 auto;
height: 200px;
list-style: none;
width: max-content;
padding: 0 20px;
}
.product-preview_mobile-thumbnails-list_item {
display: block;
margin: 0 13.49px 0 0;
}
.product-preview_mobile-thumbnails-list_item:last-child {
margin: 0;
}
.product-preview_mobile-thumbnails-list_item img {
border: 0;
border-top: 2px solid gainsboro;
box-shadow: none;
background: #FFF;
padding: 12.5px 0 0;
border-radius: 0;
width: 60px;
height: 60px;
}
.current-mobile-thumbnail {
border-top-color: #231f20!important;
}
关于javascript - 我的轮播在水平方向上工作得很好,但如何让它在垂直方向上工作呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58258409/