圈子之间的CSS过渡

时间:2014-01-27 05:39:12

标签: jquery css-transitions css-animations css-transforms

我有一系列用户可以使用“下一步”和“后退”按钮进行遍历的圈子。该过程从第一步开始,然后进入最后一步。当用户单击下一个按钮时,当前圆减小到其正常大小,下一个圆放大。我想添加一个动画,以便当前的圆圈动画为正常大小,下一个圆圈的动画大小更大。我还希望当前选定的圆圈周围有边框。

这是一张图片: enter image description here

这是一个小提琴的开始: http://jsfiddle.net/psivadasan/4Q4Z2/

HTML

<div id="circle-container">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle-selected"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
</div>
<div>
    <div class="back">Back</div>
    <div class="next">Next</div>
</div>

CSS

.circle {
width: 50px;
height: 50px;
-moz-border-radius: 50%; 
-webkit-border-radius: 50%; 
border-radius: 50%;
background: #4679BD;
display: inline-block;
margin: 0 10px 20px 0;
}
.circle-selected {
    width: 70px;
    height: 70px;
    -moz-border-radius: 50%; 
    -webkit-border-radius: 50%; 
    border-radius: 50%;
    background: #4679BD;
    display: inline-block;
    margin: 0 10px 10px 0;
}
.back {float: left; margin: 0 20px 0 0;}
.next {float: left;}

的JavaScript

$(".next").live('click', function() {
    $("#circle-container").find('.circle-selected').next().addClass("circle-selected");
});

1 个答案:

答案 0 :(得分:1)

对于圆形边框,只需使用box-shadow

.circle-selected {
    width: 70px;
    height: 70px;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    background: #4679BD;
    display: inline-block;
    margin: 0 10px 10px 0;
    box-shadow: 0 0 0 3px #000;        /* Added this */
}

关于转换,只需将其添加到circle类:

.circle {
    width: 50px;
    height: 50px;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    background: #4679BD;
    display: inline-block;
    margin: 0 10px 20px 0;
    transition: all 2s;                /* Added these */
    -webkit-transition: all 2s;
    -moz-transition: all 2s;
}

要在选择下一个圆圈时从元素中删除该类,您将使用以下内容:

$(".next").live('click', function() {
    $("#circle-container").find('.circle-selected').removeClass('circle-selected').next().addClass("circle-selected");
});

如果您想添加back功能,只需使用.prev()而不是.next()

$(".next").live('click', function() {
    $("#circle-container").find('.circle-selected').removeClass('circle-selected').next().addClass("circle-selected");
});
$(".back").live('click', function() {
    $("#circle-container").find('.circle-selected').removeClass('circle-selected').prev().addClass("circle-selected");
});

UPDATED EXAMPLE HERE