【问题标题】:CSS transition between circles圆圈之间的 CSS 过渡
【发布时间】:2014-02-17 20:54:01
【问题描述】:

我有一系列圈子,用户可以使用“下一步”和“后退”按钮来遍历这些圈子。该过程从第一步开始并进行到最后一步。当用户点击下一个按钮时,当前圆圈缩小到正常大小,下一个圆圈放大。我想添加一个动画,以便当前圆圈动画到它的正常大小,下一个圆圈动画到它的更大尺寸。我也想给当前选中的圆圈加上边框。

这是一张图片:

这是一个小提琴的开始: 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");
});

【问题讨论】:

  • 还添加了后退(上一个)按钮,DEMOjoshc

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


【解决方案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

【讨论】:

猜你喜欢
  • 2020-04-10
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-07
相关资源
最近更新 更多