纯css3列表切换动画
发布于
结一
本实例的思路和之前说的用radio来控制手风琴效果有异曲同工之效。主要应用radio单选按钮来确认状态,然后对这个状态下的兄弟元素进行css控制。当然这里不比手风琴有几个radio就有几个内容,这里是一个内容,所以所有的radio应该和这个内容是兄弟元素,以便使用兄弟元素选择器~。
html主要代码:
<input name="view-control" class="view-control-1" checked="checked" type="radio"> <span class="control first"><img src="images/blockinline.png"></span> <input name="view-control" class="view-control-2" type="radio"> <span class="control"><img src="images/plainlist.png"></span> <!-- to n controller --> <ul id="item-list"> <li> <img src="images/angrybird.png"> <p><span class="title">Angry Birds Space Premium</span><span class="developer">Rovio Mobile Ltd.</span></p> </li> <li> <img src="images/omgpop.png"> <p><span class="title">Draw Something</span><span class="developer">OMGPOP</span></p> </li> <li> <img src="images/cuttherope.png"> <p><span class="title">Cut the Rope</span><span class="developer">ZeptoLab</span></p> </li> <!-- to n list --> </ul>
css主要代码:
input[type=radio] {
position: absolute;
z-index: 100;
opacity: 0;
cursor: pointer;
height: 110px;
width: 40px;
margin-top: -7em;
}
.control {
display: inline-block;
margin: 0 -.13em;
width: 40px;
background: #eddfc7;
padding: 5px 3px 1px 2px;
border-right: 1px solid #e0cba0;
cursor: pointer;
vertical-align: bottom;
}
.control:hover,
input[type=radio]:hover + .control,
input[type=radio]:checked + .control {
box-shadow: inset 0px 0px 20px #d3b67a;
}
#item-list {
margin-top: 2em;
padding: 0;
list-style-type: none;
text-align: left;
}
#item-list li {
display: inline-block;
width: 300px;
vertical-align: top;
margin: 0 0.5em 1em 0;
padding: 10px;
background: #f3eada;
border-radius: 5px;
box-shadow: inset 0px 0px 20px #e0cba0;
overflow: hidden;
}
/*list 1*/
.view-control-1:checked ~ #item-list li img {
opacity: 1;
width: 100px;
visibility: visible;
transition: .4s .4s ease-out;
}
.view-control-1:checked ~ #item-list li p {
opacity: 1;
visibility: visible;
transition: .4s ease-out;
}
.view-control-1:checked ~ #item-list li {
width: 300px;
transition: .4s ease-out;
}
/*list 2*/
.view-control-2:checked ~ #item-list li img {
opacity: 0;
width: 0;
visibility: hidden;
transition: .4s ease-out;
}
.view-control-2:checked ~ #item-list li p {
opacity: 1;
visibility: visible;
transition: .4s ease-out;
}
.view-control-2:checked ~ #item-list li {
width: 900px;
transition: .4s .4s ease-out;
}
/*list 3*/
.view-control-3:checked ~ #item-list li img {
opacity: 1;
width: 100;
visibility: visible;
transition: .4s ease-out;
}
.view-control-3:checked ~ #item-list li p {
opacity: 1;
visibility: visible;
transition: .4s ease-out;
}
.view-control-3:checked ~ #item-list li {
width: 900px;
transition: .4s ease-out;
}
/*list 4*/
.view-control-4:checked ~ #item-list li img {
opacity: 1;
width: 100;
visibility: visible;
transition: .4s ease-out;
}
.view-control-4:checked ~ #item-list li p {
opacity: 0;
position: absolute;
visibility: hidden;
transition: .4s ease-out;
}
.view-control-4:checked ~ #item-list li {
width: 100px;
transition: .4s ease-out;
}
查看更多:http://www.webstuffshare.com/2012/04/how-to-create-animated-list-view-using-css3-only/
Nike Air Force 1 '07 LV8 Crocodile Leather Black Dark Grey 718152-018