我们的产品中实现了通用滑块功能。我们需要从URL读取项索引值并滚动滑块以显示活动项。
以下代码逻辑用于显示活动缩略图,为此我需要将DIV设置为负向左侧。
首先,我们从URL哈希值中获取总缩略图项目,然后获取活动项目的索引(即#slide = 7)。一套至少包含5个项目。需要将滑块宽度乘以ActiveItemIndex所在的页面设置值。
Javascript代码 -
showActiveThumbnailOnPageLoad : function() {
var _this = this,
totalThumbnails = $('.slidetabs a').length,
activeItem = window.location.href.split('=')[1],
scrollAmount;
if(activeItem > 5 && activeItem <= 10) {
scrollAmount = '-=' + 772
} else if(activeItem > 10 && activeItem <= 15) {
scrollAmount = '-=' + 772 * 2
} else if(activeItem > 15 && activeItem <= 20) {
scrollAmount = '-=' + 772 * 3
}
$('.slidetabs').stop().animate({
left : scrollAmount
});
}
截至目前,使用的硬编码条件最多可支持20个项目。任何有助于使此代码支持n个项目的帮助。我的意思是说没有硬代码值的通用代码。
提前致谢。
答案 0 :(得分:2)
您可以尝试:
scrollAmount = '-=' + 772 * ~~((activeItem - 1) / 5);
答案 1 :(得分:1)
使用此:
scrollAmount = '-=' + 772 * Math.floor((((activeItem > 0) ? activeItem : 1) - 1) / 5);
答案 2 :(得分:0)
试试这个:
scrollAmount = '-=' + 772 * ((activeItem - 1) / 5);
编辑(基于this comment和this answer)
绕过师:
scrollAmount = '-=' + 772 * (((activeItem - 1) / 5) >> 0);
或者:
scrollAmount = '-=' + 772 * (~~((activeItem - 1) / 5));