bootstrap实现天气小时卡片动画效果代码
代码语言:html
所属分类:动画
代码描述:bootstrap实现天气小时卡片动画效果代码,不同的时辰不同的天气,不同的天气动画。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/bootstrap.4.3.1.min.css">
<link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,300,0,0'>
<style>
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap");
body {
background: #f5f5f5;
font-family: "Plus Jakarta Sans", sans-serif;
font-weight: 300;
}
header {
padding: 16px;
text-align: center;
}
h1,
h2,
h3,
h4,
h5 {
font-weight: 700;
}
.card {
position: relative;
overflow: hidden; /* Ensure vertical scrolling */
height: 566px;
width: 350px;
margin: auto;
border: none;
border-radius: 32px;
}
.sun,
.moon {
position: absolute;
left: 50%;
width: 80px;
height: 80px;
border-radius: 50%;
transform-origin: 0px 220px;
transition: all 1s;
transform: rotate(-90deg); /* Initial rotation of -90 degrees */
}
.sun {
bottom: 300px;
background: #fceabb;
box-shadow: 0px 0px 40px 15px #fceabb;
opacity: 1;
}
.moon {
bottom: 250px;
background: url("//repo.bfw.wiki/bfwrepo/icon/6685c9f75d2c8.jpg");
background-size: contain;
box-shadow: 0px 0px 20px 5px #ffffff;
opacity: 0;
}
@keyframes rise-set {
0% {
transform: rotate(-90deg);
}
100% {
transform: rotate(90deg);
}
}
.hours-container {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
overflow-x: scroll;
white-space: nowrap;
backdrop-filter: blur(20px);
}
.hours {
display: flex;
padding: 8px;
}
.hours-container {
scroll-behavior: smooth;
}
.hour {
padding: 5px 10px;
cursor: pointer;
margin: 2px;
transition: background-color 0.3s ease;
border-radius: 16px;
height: 107px;
min-width: 80px;
text-align: center;
}
.hour:hover {
background-color: rgba(255, 255, 255, 0.3);
}
.active {
background-color: rgba(255, 255, 255, 0.7);
}
.last {
min-width: 150px;
}
.background {
position: absolute;
width: 100%;
height: 100%;
background-image: linear-gradient(0deg, #fefefe 0%, #00a4e4 74%);
z-index: 0;
transition: all 2s linear;
}
.backgroundNight {
position: absolute;
width: 100%;
height: 100%;
background-image: linear-gradient(0deg, #4c5177 0%, #051428 74%);
z-index: -1;
transition: all 2s linear;
}
.card,
.card-body {
background: transparent !important;
padding: 0;
}
.rain {
width: 100%;
height: 100%;
opacity: 0;
}
.drop {
background: -webkit-gradient(
linear,
0% 0%,
0% 100%,
to(rgba(255, 255, 255, 0.6)),
from(rgba(255, 255, 255, 0))
);
background: -moz-linear-gradient(
top,
rgba(255, 255, 255, 0.6) 0%,
rgba(255, 255, 255, 0) 100%
);
width: 1px;
height: 30px;
position: absolute;
bottom: 0px;
-webkit-animation: fall 0.3s linear infinite;
-moz-animation: fall 0.3s linear infinite;
}
/* animate the drops*/
@-webkit-keyframes fall {
to {
margin-top: 500px;
}
}
@-moz-keyframes fall {
to {
margin-top: 500px;
}
}
.temperature {
position: absolute;
z-index: 2;
right: 24px;
top: 24px;
text-align: right;
font-size: 40px;
font-weight: 600;
}
.weatherType {
position: absolute;
z-index: 2;
right: 24px;
top: 72px;
text-align: right;
font-size: 16px;
line-height: 34px;
text-transform: capitalize;
}
.currentDay {
position: absolute;
z-index: 2;
left: 8px;
bottom: 144px;
text-align: left;
font-size: 16px;
line-height: 34px;
}
.hour span {
position: relative;
display: flex;
text-align: center;
color: black;
}
.hour .timeSpan {
font-size: 14px;
font-weight: 300;
}
.hour .tempSpan {
font-size: 14px;
font-weight: 700;
}
.hour:last-child::after {
width: 300px;
height: 1px;
content: "";
}
.hour .material-symbols-rounded {
font-size: 32px;
line-height: 40px;
}
.hour[data-weather="sunny"] .material-symbols-rounded::after {
content: "sunny";
}
.hour[data-weather="clear-night"] .material-symbols-rounded::after {
content: "clear_night";
}
.hour[data-weather="partly-cloudy"] .material.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0