天天看點

【每日一練】50—純CSS實作咖啡杯挪動開關動畫效果

【每日一練】50—純CSS實作咖啡杯挪動開關動畫效果

寫在前面

開關按鈕,我們在很多地方都會見到它,它的應用範圍也比較廣泛,是以,我們今天來練習這樣一個開關按鈕的效果,這個按鈕跟我們平時見到的不太一樣。

這是一個杯子,當我們點選杯子從off到on時,杯子由空杯變滿杯,是不是很有趣?現在,我們一起來看一下今天練習案例的最終效果:

【每日一練】50—純CSS實作咖啡杯挪動開關動畫效果

下面是這個案例的代碼實作過程。

HTML代碼:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>【每日一練】50—咖啡杯挪動開關動畫效果</title>
</head>
<body>
  <label>
    <input type="checkbox">
    <span></span>
    <text>OFF</text>
    <text>ON</text>
  </label>
</body>
</html>      

CSS代碼:

*
{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: consolas;
}
body 
{
  display: flex;
  justify-content: center;
  align-items: center;
  background: radial-gradient(#555555, #292929);
  min-height: 100vh;
}
label 
{
  position: relative;
  width: 300px;
  height: 150px;
  background: #3e3e3e;
  box-shadow: 0 0 0 4px #303030;
  border-radius: 75px;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
}
label input
{
  appearance: none;
}
label span 
{
  position: absolute;
  left: 0px;
  width: 175px;
  height: 150px;
  display: inline-block;
  background: url(Coffee_01.png);
  background-size:  auto 150px;
  background-repeat: no-repeat;
  transition: 1.5s;
  transform: rotate(-180deg);
  transform-origin: 75px;
}
label input:checked ~ span 
{
  left: 150px;
  background: url(Coffee_02.png);
  background-size:  auto 150px;
  background-repeat: no-repeat;
  transform: rotate(360deg);
}
label text 
{
  position: absolute;
  left: -120px;
  color: #fff;
  font-size: 3em;
  filter: drop-shadow(0 0 15px #fff) drop-shadow(0 0 35px #fff);
  transition: 1.5s;
}
label input:checked ~ text
{
  color: #8f8f8f;
  filter: none;
}
label text:last-child
{
  position: absolute;
  left: initial;
  right: -100px;
  color: #8f8f8f;
  filter: none;
}
label input:checked ~ text:last-child
{
  color: #fff;
  filter: drop-shadow(0 0 15px #fff) drop-shadow(0 0 35px #fff);
}      

寫在最後

以上就是我們今天【每日一練】案例的全部内容,希望今天的小練習對你有用,如果你覺得有幫助的話,請點贊我,并将它分享給你身邊做開發的朋友,也許能夠幫助到他。

我是楊小愛,我們明天見。

【每日一練】50—純CSS實作咖啡杯挪動開關動畫效果