如果需要将某个元素 在可以滚动元素(scroll)中设置为居中计算方法为: 需要的scrollleft + 普通居中时候的offsetLeft = 当前的scrollleft+当前元素的offsetLeft = 固定的当前元素在整个滚动条中距离左边的位置
DEMO
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="./base/jquery.js"></script>
<style>
ul, li {
padding: 0px;
margin: 0px;
list-style: none;
}
ul {
width: 1000000px;
}
li {
height: 100px;
float: left;
border: 1px solid red;
}
li.selected {
background-color: yellow;;
}
</style>
</head>
<body>
<div class="container" id="J_container" style="width: 200px;height: 100px;border:1px solid gray; overflow-x: scroll;
overflow-y: hidden;">
<ul>
<li>测试1</li>
<li>测试1</li>
<li>测试1</li>
<li>测试1</li>
<li>测试1</li>
<li>测试1</li>
<li>测试1</li>
<li class="selected">请将我居中</li>
<li>测试1</li>
<li>测试1</li>
</ul>
</div>
<script>
$(function () {
var item = $(".selected");
var container = $("#J_container");
var itemOffset = item.offset();
var itemOffsetLeft = itemOffset.left + container.scrollLeft();
var centerLeft = ( container.width() - item.width()) / 2;
container.scrollLeft(itemOffsetLeft - centerLeft);
})
</script>
</body>
</html>