Я настроил следующий тумблер плюс / минус: https://codepen.io/Inlesco/pen/XXRRmY
Он состоит из 2 элементов vertical
и horizontal
. Когда два элемента видны, они представляют +
, а при нажатии vertical
исчезает и они представляют -
.
Я хотел, чтобы он был меньше, поэтому я изменил ширину и высоту примерно на половину, и я использовал transform: translate(-50%)
, чтобы центрировать вертикальные и горизонтальные элементы.
Вот живая скрипка: http://jsfiddle.net/kLc728ad/2/
$('.plusminussign').on('click', function(){
$(this).toggleClass('opened');
});
.plusminussign{
position: relative;
display:inline-block;
height: 24px;
width: 24px;
opacity: .7;
background: green;
border-radius: 50%;
color: #fff;
cursor: pointer;
}
.circle .horizontal {
position: absolute;
background-color: #fff;
width: 15px;
height: 2.5px;
left: 50%;
top: 50%;
}
.circle .vertical {
position: absolute;
background-color: #fff;
width: 2.5px;
height: 15px;
left: 50%;
top: 50%;
}
.closed .horizontal {
transition: all 0.5s ease-in-out;
transform: translate(-50%,-50%) rotate(-90deg);
opacity: 1;
}
.closed .vertical {
transition: all 0.5s ease-in-out;
transform: translate(-50%,-50%) rotate(-90deg);
}
.opened {
opacity: 1;
}
.opened .horizontal {
transition: all 0.5s ease-in-out;
transform: translate(-50%,-50%) rotate(-90deg);
opacity: 0;
}
.opened .vertical {
transition: all 0.5s ease-in-out;
transform: translate(-50%,-50%) rotate(-90deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="plusminussign closed">
<div class="circle">
<div class="horizontal"></div>
<div class="vertical"></div>
</div> <!-- .circle -->
</span> <!-- .plusminussign -->
Я думаю, это из-за translate()
части в transform: translate(-50%,-50%) rotate(-90deg);
.
Как заставить это работать?