swiper实现歌手明星介绍及专辑歌曲点播滚动鼠标切换效果代码

代码语言:html

所属分类:幻灯片

代码描述:swiper实现歌手明星介绍及专辑歌曲点播切换效果代码,滚动鼠标切换明星,右侧可查看点播其歌曲,还有明星文字介绍。

代码标签: div css 方形 图片 悬浮 边框 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/swiper-bundle.10.3.1.css">
 
<style>
@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;500;600;700;800&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Agbalumo&family=Kalam:wght@700&display=swap");

* {
 
box-sizing: border-box;
 
margin: 0;
 
padding: 0;
 
font-family: "Nunito", sans-serif;
}

img
{
 
width: 100%;
}

ul
{
 
list-style-type: none;
}

html
,
body
{
 
position: relative;
 
height: 100vh;
 
width: 100%;
 
background-color: #040a22;
}

section
{
 
display: flex;
 
justify-content: center;
 
width: 100%;
 
height: 100vh;
}

.swiper {
 
width: 100%;
 
height: 100%;
}

.swiper-slide {
 
position: relative;
 
text-align: center;
 
font-size: 1.25rem;
 
display: flex;
 
justify-content: center;
 
align-items: center;
 
background-color: #040a22;
}

.hero {
 
position: absolute;
 
bottom: 0;
 
z-index: 5;
 
width: 450px;
 
filter: contrast(90%);
 
pointer-events: none;
}

.title {
 
position: absolute;
 
top: 20%;
 
left: 5%;
 
/* font-family: "Agbalumo", cursive; */
 
font-family: "Kalam", cursive;
 
font-size: 5rem;
 
color: #fff;
 
transition-delay: 3s;
}

/* -------------------- */
/* BACKGROUND ANIMATION */

.gradient {
 
width: 500px;
 
height: 500px;
 
filter: blur(50px);
 
background-image: linear-gradient(#4ddc9e, #5b37eb, #f1307e);
 
animation: rotate 10s cubic-bezier(0.8, 0.2, 0.2, 0.8) alternate infinite;
 
border-radius: 30% 70% 70% 30%/30% 30% 70% 70%;
}

@keyframes rotate {
 
0% {
   
transform: rotate(0deg);
 
}
 
100% {
   
transform: rotate(360deg);
 
}
}

/* ----------- */
/* BOX STYLES */

.box-container {
 
position: absolute;
 
top: 13%;
 
right: 6%;
 
display: grid;
 
grid-template-columns: 1fr;
 
grid-template-rows: repeat(2, 1fr);
 
gap: 40px;
}

.box {
 
position: relative;
 
display: flex;
 
flex-direction: column;
 
justify-content: flex-start;
 
width: 250px;
 
aspect-ratio: 3/2;
 
border-radius: 20px;
 
color: #cbd5e1;
 
background: rgba(255, 255, 255, 0.095);
 
box-shadow: inset 2.01px -2.01px 20px rgba(214, 214, 214, 0.17),
    inset
-3.01333px 3.01333px 3.01333px rgba(255, 255, 255, 0.39);
 
backdrop-filter: blur(70px);
 
padding: 20px 20px 30px;
 
z-index: 6;
}

.box-mobile {
 
display: none;
}

.box h1 {
 
position: relative;
 
text-align: center;
 
text-transform: uppercase;
 
font-size: 1.1rem;
 
margin-bottom: 10px;
}

.box h1::before {
 
content: "";
 
position: absolute;
 
top: 95%;
 
width: 100%;
 
left: 0;
 
height: 3px;
 
border-radius: 5px;
 
background: linear-gradient(
   
89.7deg,
   
#2b60bc 0%,
   
#45329d 15%,
   
#822f99 30%,
   
#97174a 50%,
   
#822f99 70%,
   
#45329d 85%,
   
#2b60bc 100%
 
);
 
background-size: 200% 100%;
 
animation: line-animation 13s infinite linear;
}

@keyframes line-animation {
  from
{
   
background-position: 100%;
 
}
  to
{
   
background-position: -100%;
 
}
}

.box p {
 
font-weight: 300;
 
font-size: 0.8rem;
}

.songs,
.overview {
 
display: flex;
 
flex-direction: column;
 
align-items: flex-start;
}

.songs img {
 
border-radius: 10px;
 
margin: 8px 0 5px;
 
aspect-ratio: 5/3;
 
object-fit: cover;
}

.songs h3 {
 
font-size: 1rem;
}

.overview p {
 
text-align: start;
}

.more-btn {
 
position: absolute;
 
top: 93%;
 
left: 42%;
 
transform: translate(-50%, -50%);
 
-ms-transform: translate(-50%, -50%);
 
display: flex;
 
align-items: center;
 
justify-content: center;
 
background: rgba(220, 220, 220, 0.7);
 
backdrop-filter: blur(70px);
 
-webkit-backdrop-filter: blur(70px);
 
border: 1px solid rgba(255, 255, 255, 0.35);
 
border-radius: 50%;
 
padding: 5px;
 
cursor: pointer;
 
transform: rotate(0deg);
 
transition: all 0.5s linear;
}

.more-btn:hover {
 
background: rgba(220, 220, 220, 1);
 
transform: rotate(360deg);
}

.more-btn-icon {
 
font-size: 20px;
 
color: #2e2e2f;
}

/* ---------------- */
/* SLIDE ANIMATION */

.swiper-slide.swiper-slide-active [data-animate] {
 
opacity: 1;
 
transform: none;
}

.swiper-slide.swiper-slide-active .title {
 
transition-delay: 0.6s;
}

.swiper-slide.swiper-slide-active .songs {
 
transition-delay: 1s;
}

.swiper-slide.swiper-slide-active .overview {
 
transition-delay: 1.4s;
}

[data-animate] {
 
opacity: 0;
 
transition: all 0.8s ease-out;
}

[data-animate="bottom"] {
 
transform: translate3d(0, 15px, 0);
}

/* -------------------- */
/* PLAY - PAUSE BUTTON */

.audio-icon {
 
font-size: 2rem;
 
color: #fff;
}

#play-pause-button {
 
position: fixed;
 
display: flex;
 
align-items: center;
 
justify-content: center;
 
left: 5%;
 
bottom: 5%;
 
background: #5b37eb;
 
padding: 12px;
 
border-radius: 50%;
 
box-shadow: rgba(120, 46, 240, 0.4) 5px 5px, rgba(120, 46, 240, 0.3) 10px 10px;
 
z-index: 10;
 
border: 0;
 
outline: 0;
 
cursor: pointer;
 
animation: fade-in 0.5s linear 1;
 
transition: all 0.5s ease-in;
}

#play-pause-button:hover {
 
background: #a143b9;
 
box-shadow: rgba(149, 30, 164, 0.4) 5px 5px, rgba(149, 30, 164, 0.3) 10px 10px;
}

@keyframes fade-in {
 
0% {
   
opacity: 0.4;
 
}
 
100% {
   
opacity: 1;
 
}
}

.hidden {
 
display: none;
}

/* ----- */
/* MODAL */

body
.prevent-background-scroll {
 
min-height: 100dvh;
 
overflow-y: hidden;
}

.sidebar {
 
display: none;
 
position: fixed;
 
top: 0;
 
left: 0;
 
right: 0;
 
bottom: 0;
 
background: rgba(0, 0, 0, 0.5);
 
z-index: 20;
 
animation: openSidebar 0.6s ease-in-out 1 normal;
}

@keyframes openSidebar {
  from
{
   
opacity: 0;
 
}

  to
{
   
opacity: 1;
 
}
}

.sidebar-container {
 
position: absolute;
 
top: 0;
 
right: 0;
 
height: 100%;
 
width: 40%;
 
background: rgba(133, 133, 133, 0.2);
 
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
 
backdrop-filter: blur(10px);
 
-webkit-backdrop-filter: blur(10px);
 
border: 1px solid rgba(255, 255, 255, 0.2);
 
color: #fff;
 
z-index: 30;
}

.sidebar-header {
 
position: relative;
 
display: flex;
 
font-weight: 600;
 
padding: 15px 20px 10px;
 
font-size: 1.2rem;
}

.sidebar-header .close-btn {
 
position: sticky;
 
display: flex;
 
align-items: center;
 
gap: 5px;
 
top: 20px;
 
left: 20px;
 
background: transparent;
 
color: #fff;
 
font-weight: 600;
 
text-transform: uppercase;
 
border: 0;
 
outline: 0;
 
cursor: pointer;
}

.close-icon {
 
font-size: 1.8rem;
 
color: #efefef;
}

/* ------------------------ */
/* SIDEBAR - BIO CONTAINER */

.sidebar-body {
 
display: flex;
 
flex-direction: column;
 
justify-content: flex-start;
 
align-items: center;
 
padding: 20px 50px 60px;
 
height: 100vh;
 
overflow-y: auto;
}

.sidebar-body > img {
 
max-width: 100%;
 
width: 250px;
 
aspect-ratio: 4/3;
 
object-fit: cover;
 
border-radius: 8px;
 
margin-bottom: 20px;
}

.sidebar-body > p {
 
margin-bottom: 20px;
 
color: #94a3b8;
}

/* ------------------------------ */
/* SIDEBAR - SONG LIST CONTAINER */

.song-list-container {
 
width: 40%;
}

.song-list-body {
 
display: flex;
 
flex-direction: column;
 
justify-content: flex-start;
 
padding: 40px 40px 60px;
 
height: 100vh;
 
overflow-y: auto;
}

.song-list-body h1 {
 
margin-bottom: 20px;
 
font-weight: 500;
 
font-size: 1.5rem;
}

.song-item {
 
display: grid;
 
grid-template-columns: 35% 55% 10%;
 
align-items: center;
 
margin-bottom: 20px;
 
/* background-color: #4ddc9e; */
}

.song-item img {
 
width: 100px;
 
aspect-ratio: 3/2;
 
border-radius: 10px;
 
object-fit: cover;
}

.song-title {
 
display: flex;
 
flex-direction: column;
}

.song-title p {
 
font-size: 0.8rem;
 
font-weight: 300;
}

.play-icon {
 
font-size: 1.8rem;
 
color: #efefef;
 
transition: all 0.5s ease;
}

.play-icon:hover {
 
font-size: 1.85rem;
 
color: #5834c4;
}

/* ---------- */
/* SCROLLBAR */

.sidebar-body::-webkit-scrollbar,
.song-list-body::-webkit-scrollbar {
 
width: 0.7rem;
}

.sidebar-body::-webkit-scrollbar-track,
.song-list-body::-webkit-scrollbar-track {
 
box-shadow: inset 0 0 0.375rem rgb(79, 78, 78);
 
border-radius: 0.8rem;
}

.sidebar-body::-webkit-scrollbar-thumb,
.song-list-body::-webkit-scrollbar-thumb {
 
box-shadow: inset 0 0 0.375rem rgba(238, 238, 238, 0.9);
 
outline: none;
 
border-radius: 0.8rem;
}

@media (max-width: 1200px) {
 
.title {
   
top: 10%;
 
}
 
 
.hero {
   
width: 420px;
 
}
}

@media (max-width: 880px) {
 
.hero {
   
left: 15%;
   
width: 400px;
 
}

 
.title {
   
top: 5%;
   
font-size: 5rem;
 
}
 
   
.sidebar-container {
   
width: 50%;
 
}

 
.song-list-container {
   
width: 70%;
 
}
}

@media (max-width: 700px) {
 
.box-container {
   
position: absolute;
   
top: 10%;
   
right: 6%;
   
gap: 0;
 
}

 
.box {
   
width: 150px;
 
}

 
.title {
   
top: 5%;
   
font-size: 5rem;
 
}

 
.song-list-container {
   
width: 70%;
 
}
}

@media (max-width: 580px) {
 
.hero {
   
left: 10%;
 
}
 
 
.sidebar-container {
   
width: 70%;
 
}
 
 
.song-list-container {
   
width: 80%;
 
}
}

@media (max-width: 500px) {
 
.gradient {
   
width: 300px;
   
height: 300px;
 
}

 
.hero {
   
width: 400px;
 
}

 
.title {
   
top: 7%;
   
font-size: 4rem;
 
}

 
.box-container {
   
top: 60%;
   
right: 7%;
   
gap: 20px;
 
}

 
.box {
   
display: none;
 
}

 
.box-mobile {
   
position: relative;
   
display: flex;
   
flex-direction: column;
   
justify-content: center;
   
align-items: center;
   
width: 150px;
   
aspect-ratio: 3/2;
   
border-radius: 20px;
   
color: #cbd5e1;
   
background: rgba(255, 255, 255, 0.095);
   
box-shadow: inset 2.01px -2.01px 20px rgba(214, 214, 214, 0.17),
      inset
-3.01333px 3.01333px 3.01333px rgba(255, 255, 255, 0.39);
   
backdrop-filter: blur(70px);
   
padding: 20px 20px 30px;
   
z-index: 6;
 
}

 
.sidebar-container {
   
width: 100%;
 
}

 
.song-list-container {
   
width: 100%;
 
}

 
.song-item {
   
grid-template-columns: 40% 50% 10%;
 
}
}
</style>

 
 
 
</head>


 
<body>
   
<audio id="background-music" loop>
     
<source
       
src="//repo.bfw.wiki/bfwrepo/sound/6549e40610865.mp3"
       
type="audio/mpeg" />
      Your browser does not support the audio element.
   
</audio>
   
<button id="play-pause-button">
     
<ion-icon
       
class="audio-icon"
       
id="play-music"
       
name="play-circle-outline"></ion-icon>
     
<ion-icon
       
class="audio-icon hidden"
       
id="pause-music"
       
name="pause-circle-outline"></ion-icon>
   
</button>

   
<section>
     
<div class="swiper">
       
<div class="swiper-wrapper">
         
<div class="swiper-slide">
           
<div class="gradient"></div>
           
<h1 data-animate="bottom" class="title">Dua Lipa</h1>
           
<img class="hero" src="//repo.bfw.wiki/bfwrepo/icon/6188d5f051b8e.png" alt="dua lipa" />
           
<div class="box-container">
             
<div data-animate="bottom" class="box songs">
               
<h1 style="align-self: center">Songs</h1>
               
<img src="//repo.bfw.wiki/bfwrepo/image/600d6cfee7691.png" alt="" />
               
<h3>Dua Lipa</h3>
               
<p>Levitating</p>
               
<button class="more-btn" data-modal="dua-songs">
                 
<ion-icon
                   
class="more-btn-icon"
                   
name="add-circle-outline"></ion-icon>
               
</button>
             
</div>
             
<div class="box-mobile" data-modal="dua-songs">
               
<h1 style="align-self: center">Songs</h1>
             
</div>
             
<div data-animate="bottom" class="box overview">
               
<h1 style="align-self: center">Overview</h1>
               
<p>
                  Dua Lipa is a famous singer from the United Kingdom. She was
                  born on August 22, 1995, in London, England. Dua's love for
                  music started when she was a kid...
               
</p>
               
<button class="more-btn" data-modal="dua-bio">
                 
<ion-icon
                   
class="more-btn-icon"
                   
name="add-circle-outline"></ion-icon>
               
</button>
             
</div>
             
<div class="box-mobile" data-modal="dua-bio">
               
<h1 style="align-self: center">Overview</h1>
             
</div>
           
</div>
         
</div>

         
<div class="swiper-slide">
           
<div class="gradient"></div>
           
<h1 data-animate="bottom" class="title">Taylor Swift</h1>
           
<img
             
class="hero"
             
src="//repo.bfw.wiki/bfwrepo/icon/654cbde39faa9.png"
             
alt="taylor swift" loading="lazy" />
           
<div class="box-container">
              <div data-anima.........完整代码请登录后点击上方下载按钮下载查看

网友评论0