Javascript 水平居中li内div溢出:自动

Javascript 水平居中li内div溢出:自动,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在创建类似于时间线的东西,目前为止我有以下代码: $(“#时间线选择器ul li a”)。单击(功能(事件){ event.preventDefault(); $(“#时间线选择器ul li a”).removeClass(“活动”); $(此).addClass(“活动”); var yearId=$(this.attr(“数据id选择器”); $(“#时间线容器ul”)。动画({ “左边距”:-((yearId-1)*timeLineContentWidth) }, 1000); })

我正在创建类似于时间线的东西,目前为止我有以下代码:

$(“#时间线选择器ul li a”)。单击(功能(事件){
event.preventDefault();
$(“#时间线选择器ul li a”).removeClass(“活动”);
$(此).addClass(“活动”);
var yearId=$(this.attr(“数据id选择器”);
$(“#时间线容器ul”)。动画({
“左边距”:-((yearId-1)*timeLineContentWidth)
}, 1000);
});
#时间线选择器{
宽度:100%;
利润率:30px0;
溢出:自动;
}
#时间线选择器{
保证金:0自动;
填充:0;
}
#时间线选择器ulli{
浮动:左;
保证金:0;
列表样式:无;
位置:相对位置;
}
#时间线选择器ulli a{
显示:块;
位置:相对位置;
背景:#ffffff;
利润率:8px0;
填充:16px 10px 8px 10px;
颜色:#aeaeae;
字号:17px;
文字装饰:无;
-webkit过渡:所有0.5s轻松;
过渡:所有0.5s缓解;
}
#时间线选择器ulli a:之前{
显示:块;
内容:“;
位置:绝对位置;
背景:#e1e1;
排名:0;
左:0;
保证金:0px 0 0px;
宽度:100%;
高度:1px;
边界半径:50%;
}
#时间线选择器ul li a:之后{
显示:块;
内容:“;
位置:绝对位置;
背景:#aeaeae;
排名:0;
左:50%;
保证金:-5px0-5px;
宽度:10px;
高度:10px;
边界半径:50%;
}
#时间线选择器ul li a:悬停,#时间线选择器ul li a.active{
背景#5959;
颜色:#ffffff;
}
#时间线选择器ul li a:悬停:之后,#时间线选择器ul li a.active:之后{
背景:#e62b28;
}


尝试在单击事件处理程序的末尾添加以下行:

$("#time-line-selector").scrollLeft($(this).attr("data-id-selector") * $(this).parent().width() - $("#time-line-selector").width()/2 - $(this).parent().width()/2);
所以它的结果是:

$("#time-line-selector ul li a").click(function (event) {

    event.preventDefault();

    $("#time-line-selector ul li a").removeClass("active");

    $(this).addClass("active");

    var yearId = $(this).attr("data-id-selector");

    $("#time-line-container ul").animate({
        "margin-left": -((yearId - 1) * timeLineContentWidth)
    }, 1000);
    $("#time-line-selector").scrollLeft($(this).attr("data-id-selector") * $(this).parent().width() - $("#time-line-selector").width()/2 - $(this).parent().width()/2);
});
或取消使用数据id选择器:

$("#time-line-selector").scrollLeft(($(this).parent().index(".time-line-selector") + 1 ) * $(this).parent().width() - $("#time-line-selector").width()/2 - $(this).parent().width()/2);

工作

您是否尝试使用
$(this).offset()。左
?这就是您的意思@莫卡多什什么的。。。然而,当我点击li时,这个li应该在家长的中心,明白了吗?@Morkadosh-太好了。。!尝试好友。@CaioKawasaki-您能在JSFIDLE链接中更新答案吗?不客气,做了一个快速更改,因此不需要设置数据id选择器set@Markai-你能把一个链接放到JSFIDLE上吗。will帮助了lotI刚才的意思是,我消除了这个场景中的用法,所以你不需要依赖它,但是这段代码依赖于你的数据结构,如果你改变了结构,你也需要改变code@markai-太棒了。。!!它确实是非常有用的块代码。@Prog-我很高兴它能帮助多人:)