CSS3实现div从下往上滑入滑出效果示例
(编辑:jimmy 日期: 2024/12/28 浏览:3 次 )
1,首先需要用的是 CSS3的 target 选择器,配合a标签指定id选择器切换目标元素,用于选取当前活动的目标元素。
2,CSS3 的 transition 动画,这里不做详细介绍
看一下效果图:
点击滑出按钮,元素从底部匀速滑入到页面一定高度;再点击滑入,元素从当前位置匀速滑入期初位置。
直接上代码:
<h1>CSS3滑入/滑出效果</h1> <div id="volet_clos"> <div id="volet"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima quisquam tempora quaerat dolores molestias reiciendis .</p> <p>vero labore voluptates necessitatibus ut? Et</p> <p>vero labore voluptates necessitatibus ut? Et</p> <p>vero labore voluptates necessitatibus ut? Et</p> <p>vero labore voluptates necessitatibus ut? Et</p> <a href="#volet" aria-hidden="true" class="ouvrir">滑出</a> <a href="#volet_clos" aria-hidden="true" class="fermer">滑入</a> </div> </div>
<style> #volet_clos {position: fixed;top: 0px; left: 0;width: 100%;} #volet {width: 250px;padding: 10px;background: #6B9A49; color: #fff;width: 100%;} /* 初始定位 */ #volet {position: absolute;left: 0px;top: 375px;transition: all .5s ease-in;} #volet a.ouvrir,#volet a.fermer {position: absolute;right: -88px;top: 150px;} /* 点击过后改变 target */ #volet a.fermer {display: none;} #volet:target {left: 0px;top: 150px;} #volet:target a.fermer {display: block;} #volet:target a.ouvrir {display: none;} #volet_clos:target #volet {left: 0px;top: 375px;} #volet a.ouvrir,#volet a.fermer{position: absolute;right: calc(40%);top: -40px;padding: 10px 25px; background: #555; color: #fff; text-decoration: none;text-align: center; width: 120px;} </style>
案例二,tab标签页切换效果
<h1>tab标签页切换效果</h1> <div class="swiper-box"> <div class="swiper-cont"> <div class="swiper1" id="swiper1"></div> <div class="swiper2" id="swiper2"></div> <div class="swiper3" id="swiper3"></div> </div> <div class="swiper-num"> <a href="#swiper1">1</a> <a href="#swiper2">2</a> <a href="#swiper3">3</a> </div> </div>
/* tab标签页切换效果 css */ .swiper-box{position: relative;width: 500px; height: 300px; margin: 20px auto; background: #f1f1f1;} .swiper-cont div,.swiper1,.swiper2,.swiper3{ width: 0%; height: 300px;position: absolute;top: 0; left: 0;transition: width .5s linear;} .swiper1{background: linear-gradient(to top, #fba555, #ffed6c 75%);} .swiper2{background: linear-gradient(to left, #55d5fb, #fd74a7 75%);} .swiper3{background: linear-gradient(to top left, #55fb69, #6cfff1 75%);} .swiper-num{position: absolute; bottom: 0;right: 0;display: inline-block;z-index: 9;} .swiper-num a{display: inline-block;margin-left: 10px;padding: 10px 20px; color: #333;font-size: 14px; text-decoration: none;font-weight: bold;background: rgba(255,255,255,.45);} .swiper-num a:hover,.swiper-num a:active{ color: red;cursor: pointer;background: rgba(255,255,255,.95);} .swiper-box :target{width: 100%;transition: width .5s linear;}
下一篇:深入浅析CSS3中的Flex布局整理