【发布时间】:2013-02-20 04:42:48
【问题描述】:
假设我的总宽度为 585 像素。我想将空间分成相等的部分,并在位置内为每个部分分配一个索引值。如果我有 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>
如何根据.handle 元素的当前左值划分 585px 的总数并在位置上对索引进行分类?我可以通过使用ui.position.left 知道拖动句柄在哪里,我想要的是能够为每个元素设置一个索引,并能够根据句柄在索引元素中的位置为句柄设置动画。由于每个元素都有索引,我稍后调用一个转换方法并传入当前索引 # 以显示。我上面显示的代码有效,但效率不高。我还需要考虑手柄的宽度以适应截面宽度。 http://jsfiddle.net/yfqhV/1/
【问题讨论】:
-
你如何到达 0/81/199/... 的位置来检查左边的位置?
-
@Raad 第一个是让手柄对齐,199 是 81 + 117 + 1px 边框;其他的都是117加到前面左边。
标签: javascript jquery jquery-ui jquery-animate