6

我在一个 div 中有很多跨度,overflow:hidden;因为 div 宽度是固定的,所以起初只有 5 个跨度是可见的。单击按钮时,如何滑动到某个跨度使其可见?

现场JSFIDDLE

查询

$("#gobtn").click(function (e)  {
    $("span.selected").removeClass('selected');
    var s = $('#nr').val();
    $("#c" + s).addClass('selected');
  //$("#c" + s).??? 
});

HTML

<div class='container'>
    <div class='circles'>
        <span id='c1'>1</span>  
        <span id='c2'>2</span>
        <span id='c3'>3</span>
        <span id='c4'>4</span> 
        <span id='c5'>5</span>  
        <span id='c6'>6</span>  
        <span id='c7'>7</span>
        <span id='c8'>8</span> 
        <span id='c9'>9</span>  
        <span id='c10'>10</span> 
    </div>
</div>
<br /><br/>
Go to circle nr. <input id='nr' type="text" /> 
<input type='button' id='gobtn'  value='go!'>

CSS

span {
    border: solid 1px Silver;
    height: 14px;
    width: 14px;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    float: left;
    background-color: #fff;
    cursor: pointer;
    font-size:10px;
    text-align:center;
    margin-right:50px;
}
.circles {
    width:9000px;
}
.container {
    width:300px;
    display:block;    
    overflow:hidden;
    border:solid 2px #eee;
    padding:10px;
}
.selected
{
    background-color:Yellow;
}
4

2 回答 2

5

position: relative在课堂上添加一个circles。并使用方法设置left属性animate

我做了一个。试试这个。您可以根据需要进行改进。

于 2013-03-26T09:34:17.093 回答
1

在函数中为circles类的左边距设置动画:click

$("#gobtn").click(function (e)  {
    $("span.selected").removeClass('selected');
    var s = $('#nr').val();
    $("#c" + s).addClass('selected');

    $(".circles").animate({
        marginLeft: '-' + (parseInt(s-1) * 40) + 'px'
    }, 500);
});

http://jsfiddle.net/LdzTH/15/

仍然需要微调以使数字精确到您想要的位置,即应该始终选择在中间。

于 2013-03-26T09:39:05.640 回答