假设我的总宽度为 585px。我想将空间分成相等的部分,并在位置内为每个部分分配一个索引值。如果我说 6 个部分,我可以做这样的事情:(按总宽度/部分数分配)
//Set up elements with variables
this.sliderContent = config.sliderContent;
this.sectionsWrap = config.sectionsWrap;
//Selects <a>
this.sectionsLinks = this.sectionsWrap.children().children();
//Create drag handle
this.sectionsWrap.parent().append($(document.createElement("div")).addClass("handle-containment")
.append($(document.createElement("a")).addClass("handle ui-corner-all").text("DRAG")));
//Select handle
this.sliderHandle = $(".handle");
var left = ui.position.left,
position = [];
var position = ((left >= 0 && left <= 80) ? [0, 1] :
((left >= 81 && left <= 198) ? [117, 2] :
((left >= 199 && left <= 315) ? [234, 3] :
((left >= 316 && left <= 430) ? [351, 4] :
((left >= 431 && left <= 548) ? [468, 5] :
((left >= 549) ? [585, 6] : [] ) ) ) ) ) );
if (position.length) {
$(".handle").animate({
left : position[0]
}, 400);
Slider.contentTransitions(position);
}
但是,如果我有 x 个部分怎么办。这些部分只是像
<li><a></a></li>
<li><a></a></li>
<li><a></a></li>
或者
<div><a></a></div>
<div><a></a></div>
<div><a></a></div>
<div><a></a></div>
我将如何划分 585px 的总数并根据.handle
元素的当前左值对位置的索引进行分类?我可以通过使用知道拖动手柄的位置ui.position.left
,我想要的是能够为每个元素设置一个索引,并能够根据手柄在索引元素中的位置为手柄设置动画。由于每个元素都有索引,我稍后调用一个转换方法并传入当前索引 # 以显示。我上面显示的代码有效,但效率不高。我还需要考虑手柄的宽度以适应截面宽度。http://jsfiddle.net/yfqhV/1/