Skip to content

音乐部件

组件使用https://aplayer.js.org/#/ 响应

文档:https://aplayer.js.org/#/home

新版本引入

样式和其它组件保持统一

1725533298024

HTML代码

直接显示(同步加载)

<!-- 音乐 -->
<div class="work">
    <h2 class="chtitle"><span>音乐</span>赏析</span></h2>
    <div id="music-player">
        <meting-js list-max-height="130px" server="netease" type="playlist" data-fixed="true" data-autoplay="false" id="128460001">
        </meting-js>
    </div>
</div>

<!-- 确保 APlayer 和 Meting 的样式和脚本文件加载 -->
<link rel="stylesheet" href="css/APlayer.min.css" media="all">
<noscript><link rel="stylesheet" href="css/APlayer.min.css"></noscript>

<script src="js/APlayer.min.js"></script>
<script src="js/Meting.min.js"></script>
<script>
    document.addEventListener('DOMContentLoaded', function() {
        if (typeof Meting !== 'undefined') {
            Meting.init();
        }
    });
</script>
<br>

异步加载

<!-- 音乐 -->
<div class="work">
    <h2 class="chtitle"><span>音乐</span>赏析</span></h2>
    <div class="loading-placeholder" style="height: 150px; background: #0d0d0da4; display: flex; align-items: center; justify-content: center;">
        <div class="spinner" style="border: 4px solid rgba(0, 0, 0, 0.1); border-top: 4px solid #fff; border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite;"></div>
    </div>
    <div id="music-player" style="display: none;">
        <meting-js list-max-height="130px" server="netease" type="playlist" data-fixed="true" data-autoplay="false" id="128460001">
        </meting-js>
    </div>
</div>

<!-- 确保 APlayer 和 Meting 的样式和脚本文件加载 -->
<link rel="stylesheet" href="css/APlayer.min.css" media="all">
<noscript><link rel="stylesheet" href="css/APlayer.min.css"></noscript>

<script src="js/APlayer.min.js" async></script>
<script src="js/Meting.min.js" async></script>
<script>
    document.addEventListener('DOMContentLoaded', function() {
        function showMusicPlayer() {
            const placeholder = document.querySelector('.loading-placeholder');
            const musicPlayer = document.querySelector('#music-player');
            placeholder.style.display = 'none';
            musicPlayer.style.display = 'block';
            if (typeof Meting !== 'undefined') {
                Meting.init();
            }
        }

        function checkResourcesLoaded() {
            if (typeof APlayer !== 'undefined' && typeof Meting !== 'undefined') {
                showMusicPlayer();
            } else {
                setTimeout(checkResourcesLoaded, 100);
            }
        }

        // 检查资源是否加载完毕
        checkResourcesLoaded();

        // 设置一个延时,如果在一定时间内资源没有加载完毕,强制显示内容
        setTimeout(function() {
            if (document.querySelector('.loading-placeholder').style.display !== 'none') {
                showMusicPlayer();
            }
        }, 3000); // 3秒后强制显示内容
    });
</script>
<br>

不同

  • 直接显示:适合对初始加载速度要求较高的场景。
  • 异步加载:适合对整体页面加载性能和用户体验有较高要求的场景。

APlayer.min.css定制化代码

.aplayer {
    font-family: Arial, Helvetica, sans-serif;
    margin: 5px;
    box-shadow: 0 2px 2px 0 rgba(36, 35, 35, 0.911), 0 1px 5px 0 rgb(32, 32, 32);
    background-color: #1f1f1ff9;
    border: 2px solid #343437;
    border-radius: 10px; /* 保持这个,用于边框 */
    overflow: hidden;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    line-height: normal;
    position: relative;
    
}


.aplayer * {
    box-sizing: content-box
}

.aplayer svg {
    width: 100%;
    height: 100%
}

.aplayer svg circle,
.aplayer svg path {
    fill: rgb(40, 38, 38)
}

.aplayer.aplayer-withlist .aplayer-info {
    border-bottom: 1px solid #f1eeee00
}

.aplayer.aplayer-withlist .aplayer-list {
    display: block
}

.aplayer.aplayer-withlist .aplayer-icon-order,
.aplayer.aplayer-withlist .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu {
    display: inline
}

.aplayer.aplayer-withlrc .aplayer-pic {
    height: 90px;
    width: 90px
}

.aplayer.aplayer-withlrc .aplayer-info {
    margin-left: 90px;
    height: 90px;
    padding: 10px 7px 0
}

.aplayer.aplayer-withlrc .aplayer-lrc {
    display: block
}

.aplayer.aplayer-narrow {
    width: 66px
}

.aplayer.aplayer-narrow .aplayer-info,
.aplayer.aplayer-narrow .aplayer-list {
    display: none
}

.aplayer.aplayer-narrow .aplayer-body,
.aplayer.aplayer-narrow .aplayer-pic {
    height: 66px;
    width: 66px
}

.aplayer.aplayer-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    z-index: 99;
    overflow: visible;
    max-width: 400px;
    box-shadow: none
}

.aplayer.aplayer-fixed .aplayer-list {
    margin-bottom: 65px;
    border: 1px solid rgb(2, 2, 2);
    border-bottom: none
}

.aplayer.aplayer-fixed .aplayer-body {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    z-index: 99;
    background: rgb(12, 12, 12);
    padding-right: 18px;
    transition: all .3s ease;
    max-width: 400px
}

.aplayer.aplayer-fixed .aplayer-lrc {
    display: block;
    position: fixed;
    bottom: 10px;
    left: 0;
    right: 0;
    margin: 0;
    z-index: 98;
    pointer-events: none;
    text-shadow: -1px -1px 0 rgb(14, 13, 13)
}

.aplayer.aplayer-fixed .aplayer-lrc:after,
.aplayer.aplayer-fixed .aplayer-lrc:before {
    display: none
}

.aplayer.aplayer-fixed .aplayer-info {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    transition: all .3s ease;
    border-bottom: none;
    border-top: 1px solid #181717
}

.aplayer.aplayer-fixed .aplayer-info .aplayer-music {
    width: calc(100% - 105px)
}

.aplayer.aplayer-fixed .aplayer-miniswitcher {
    display: block
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-info {
    display: block;
    -webkit-transform: scaleX(0);
    transform: scaleX(0)
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
    width: 66px !important
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-miniswitcher .aplayer-icon {
    -webkit-transform: rotateY(0);
    transform: rotateY(0)
}

.aplayer.aplayer-fixed .aplayer-icon-back,
.aplayer.aplayer-fixed .aplayer-icon-forward,
.aplayer.aplayer-fixed .aplayer-icon-lrc,
.aplayer.aplayer-fixed .aplayer-icon-play {
    display: inline-block
}

.aplayer.aplayer-fixed .aplayer-icon-back,
.aplayer.aplayer-fixed .aplayer-icon-forward,
.aplayer.aplayer-fixed .aplayer-icon-menu,
.aplayer.aplayer-fixed .aplayer-icon-play {
    position: absolute;
    bottom: 27px;
    width: 20px;
    height: 20px
}

.aplayer.aplayer-fixed .aplayer-icon-back {
    right: 75px
}

.aplayer.aplayer-fixed .aplayer-icon-play {
    right: 50px
}

.aplayer.aplayer-fixed .aplayer-icon-forward {
    right: 25px
}

.aplayer.aplayer-fixed .aplayer-icon-menu {
    right: 0
}

.aplayer.aplayer-arrow .aplayer-icon-loop,
.aplayer.aplayer-arrow .aplayer-icon-order,
.aplayer.aplayer-mobile .aplayer-icon-volume-down {
    display: none
}

.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-loading-icon {
    display: block
}

.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb {
    -webkit-transform: scale(1);
    transform: scale(1)
}

.aplayer .aplayer-body {
    position: relative
}

.aplayer .aplayer-icon {
    width: 15px;
    height: 15px;
    border: none;
    background-color: transparent;
    outline: none;
    cursor: pointer;
    opacity: .8;
    vertical-align: middle;
    padding: 0;
    font-size: 12px;
    margin: 0;
    display: inline-block
}

.aplayer .aplayer-icon path {
    transition: all .2s ease-in-out
}

.aplayer .aplayer-icon-back,
.aplayer .aplayer-icon-forward,
.aplayer .aplayer-icon-lrc,
.aplayer .aplayer-icon-order,
.aplayer .aplayer-icon-play {
    display: none
}

.aplayer .aplayer-icon-lrc-inactivity svg {
    opacity: .4
}

.aplayer .aplayer-icon-forward {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg)
}

.aplayer .aplayer-lrc-content {
    display: none
}

.aplayer .aplayer-pic {
    position: relative;
    float: left;
    height: 66px;
    width: 66px;
    background-size: cover;
    background-position: 50%;
    transition: all .3s ease;
    cursor: pointer
}

.aplayer .aplayer-pic:hover .aplayer-button {
    opacity: 1
}

.aplayer .aplayer-pic .aplayer-button {
    position: absolute;
    border-radius: 50%;
    opacity: .8;
    text-shadow: 0 1px 1px rgba(255, 252, 252, 0.952);
    box-shadow: 0 1px 1px rgb(23, 23, 23);
    background: rgba(17, 17, 17, 0.918);
    transition: all .1s ease
}

.aplayer .aplayer-pic .aplayer-button path {
    fill: rgb(243, 229, 229)
}

.aplayer .aplayer-pic .aplayer-hide {
    display: none
}

.aplayer .aplayer-pic .aplayer-play {
    width: 26px;
    height: 26px;
    border: 2px solid rgb(241, 235, 235);
    bottom: 50%;
    right: 50%;
    margin: 0 -15px -15px 0
}

.aplayer .aplayer-pic .aplayer-play svg {
    position: absolute;
    top: 3px;
    left: 4px;
    height: 20px;
    width: 20px
}

.aplayer .aplayer-pic .aplayer-pause {
    width: 16px;
    height: 16px;
    border: 2px solid #fff;
    bottom: 4px;
    right: 4px
}

.aplayer .aplayer-pic .aplayer-pause svg {
    position: absolute;
    top: 2px;
    left: 2px;
    height: 12px;
    width: 12px
}

.aplayer .aplayer-info {
    margin-left: 66px;
    padding: 14px 7px 0 10px;
    height: 66px;
    box-sizing: border-box
}

.aplayer .aplayer-info .aplayer-music {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    margin: 0 0 13px 5px;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
    cursor: default;
    padding-bottom: 2px;
    height: 20px
}

.aplayer .aplayer-info .aplayer-music .aplayer-title {
    font-size: 14px
}

.aplayer .aplayer-info .aplayer-music .aplayer-author {
    font-size: 12px;
    color: rgb(240, 230, 230)
}

.aplayer .aplayer-info .aplayer-controller {
    position: relative;
    display: flex
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap {
    margin: 0 0 0 5px;
    padding: 4px 0;
    cursor: pointer !important;
    flex: 1
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap:hover .aplayer-bar .aplayer-played .aplayer-thumb {
    -webkit-transform: scale(1);
    transform: scale(1)
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar {
    position: relative;
    height: 2px;
    width: 100%;
    background: #e4e1e1
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    background: rgb(255, 253, 253);
    height: 2px;
    transition: all .5s ease
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    height: 2px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb {
    position: absolute;
    top: 0;
    right: 5px;
    margin-top: -4px;
    margin-right: -10px;
    height: 10px;
    width: 10px;
    border-radius: 50%;
    cursor: pointer;
    transition: all .3s ease-in-out;
    -webkit-transform: scale(0);
    transform: scale(0)
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time {
    position: relative;
    right: 0;
    bottom: 4px;
    height: 17px;
    color: rgb(240, 231, 231);
    font-size: 11px;
    padding-left: 7px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-time-inner {
    vertical-align: middle
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon {
    cursor: pointer;
    transition: all .2s ease
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path {
    fill: rgb(241, 237, 237)
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-loop {
    margin-right: 2px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path {
    fill: rgba(235, 229, 229, 0.647)
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu,
.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-menu,
.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-mode {
    display: none
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap {
    position: relative;
    display: inline-block;
    margin-left: 3px;
    cursor: pointer !important
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap:hover .aplayer-volume-bar-wrap {
    height: 40px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap {
    position: absolute;
    bottom: 15px;
    right: -3px;
    width: 25px;
    height: 0;
    z-index: 99;
    overflow: hidden;
    transition: all .2s ease-in-out
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap.aplayer-volume-bar-wrap-active {
    height: 40px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar {
    position: absolute;
    bottom: 0;
    
    right: 10px;
    width: 5px;
    height: 35px;
    background: rgb(252, 246, 246);
    border-radius: 2.5px;
    overflow: hidden
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 5px;
    transition: all .1s ease
}

.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon {
    display: none
}

.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon svg {
    position: absolute;
    -webkit-animation: rotate 1s linear infinite;
    animation: rotate 1s linear infinite
}

.aplayer .aplayer-lrc {
    display: none;
    position: relative;
    height: 33px;
    text-align: center;
    overflow: hidden;
    margin: -5px 0 7px
}

.aplayer .aplayer-lrc:before {
    top: 0;
    height: 10%;
    background: linear-gradient(180deg, #1e1e1e16 0, hsla(0, 12%, 95%, 0));
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff", endColorstr="#00ffffff", GradientType=0)
}

.aplayer .aplayer-lrc:after,
.aplayer .aplayer-lrc:before {
    position: absolute;
    z-index: 1;
    display: block;
    overflow: hidden;
    width: 100%;
    content: " "
}

.aplayer .aplayer-lrc:after {
    bottom: 0;
    height: 33%;
    background: linear-gradient(180deg, hsla(0, 1%, 15%, 0) 0, rgba(255, 255, 255, 0));
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff", endColorstr="#ccffffff", GradientType=0)
    
}

.aplayer .aplayer-lrc p {
    font-size: 12px;
    color: rgb(241, 228, 228);
    line-height: 16px !important;
    height: 16px !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: all .5s ease-out;
    opacity: .4;
    overflow: hidden
}

.aplayer .aplayer-lrc p.aplayer-lrc-current {
    opacity: 1;
    overflow: visible;
    height: auto !important;
    min-height: 16px
}

.aplayer .aplayer-lrc.aplayer-lrc-hide {
    display: none
}

.aplayer .aplayer-lrc .aplayer-lrc-contents {
    width: 100%;
    transition: all .5s ease-out;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
    cursor: default
}

.aplayer .aplayer-list {
    overflow: auto;
    transition: all .5s ease;
    will-change: height;
    display: none;
    overflow: hidden
}

.aplayer .aplayer-list.aplayer-list-hide {
    max-height: 0 !important
}

.aplayer .aplayer-list ol {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow-y: auto
}

.aplayer .aplayer-list ol::-webkit-scrollbar {
    width: 5px
}

.aplayer .aplayer-list ol::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background-color: rgb(143, 61, 61)
}

.aplayer .aplayer-list ol::-webkit-scrollbar-thumb:hover {
    background-color: rgb(231, 225, 225)
}

.aplayer .aplayer-list ol li {
    position: relative;
    height: 32px;
    line-height: 32px;
    padding: 0 15px;
    font-size: 12px;
    border-top: 1px solid #222121;
    cursor: pointer;
    transition: all .2s ease;
    overflow: hidden;
    margin: 0
}

.aplayer .aplayer-list ol li:first-child {
    border-top: none
}

.aplayer .aplayer-list ol li:hover {
    background: #04040467
}

.aplayer .aplayer-list ol li.aplayer-list-light {
    background: #04040436
}

.aplayer .aplayer-list ol li.aplayer-list-light .aplayer-list-cur {
    display: inline-block
}

.aplayer .aplayer-list ol li .aplayer-list-cur {
    display: none;
    width: 3px;
    height: 22px;
    position: absolute;
    left: 0;
    top: 5px;
    cursor: pointer
}

.aplayer .aplayer-list ol li .aplayer-list-index {
    color: rgb(196, 193, 193);
    margin-right: 12px;
    cursor: pointer
}

.aplayer .aplayer-list ol li .aplayer-list-author {
    color: rgb(221, 218, 218);
    float: right;
    cursor: pointer
}

.aplayer .aplayer-notice {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    font-size: 12px;
    border-radius: 4px;
    padding: 5px 10px;
    transition: all .3s ease-in-out;
    overflow: hidden;
    color: #fff;
    pointer-events: none;
    background-color: #f0e5e5;
    color: #909399
}

.aplayer .aplayer-miniswitcher {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    height: 100%;
    background: #242222;
    width: 18px;
    border-radius: 0 2px 2px 0
}

.aplayer .aplayer-miniswitcher .aplayer-icon {
    height: 100%;
    width: 100%;
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg);
    transition: all .3s ease
}

.aplayer .aplayer-miniswitcher .aplayer-icon path {
    fill: rgb(241, 235, 235)
}

.aplayer .aplayer-miniswitcher .aplayer-icon:hover path {
    fill: rgb(248, 240, 240)
}

@-webkit-keyframes aplayer-roll {
    0% {
        left: 0
    }

    to {
        left: -100%
    }
}

@keyframes aplayer-roll {
    0% {
        left: 0
    }

    to {
        left: -100%
    }
}

@-webkit-keyframes rotate {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    to {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn)
    }
}

@keyframes rotate {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    to {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn)
    }
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
    left: -66px !important
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body:hover {
    left: 0 !important
}

/*# sourceMappingURL=APlayer.min.css.map*/

旧版本引入

首页采用的是经典的左下角音乐弹窗引入

music

HTML代码为

    <link rel="stylesheet" href="css/APlayer.min.css">  
    <div id="aplayer" class="aplayer" data-order="random" data-id="2141128031" data-server="netease" data-type="playlist" data-fixed="true" data-autoplay="false" data-volume="0.8"></div>
    <script src="js/APlayer.min.js"></script>
    <script src="js/Meting.min.js"></script>

其中,APlayer.min.css定制化了窗口颜色

.aplayer {
    background: rgb(26, 25, 25);
    font-family: Arial, Helvetica, sans-serif;
    margin: 5px;
    box-shadow: 0 2px 2px 0 rgba(247, 240, 240, 0.911), 0 1px 5px 0 rgb(236, 230, 230);
    border-radius: 2px;
    overflow: hidden;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    line-height: normal;
    position: relative
}

.aplayer * {
    box-sizing: content-box
}

.aplayer svg {
    width: 100%;
    height: 100%
}

.aplayer svg circle,
.aplayer svg path {
    fill: rgb(248, 245, 245)
}

.aplayer.aplayer-withlist .aplayer-info {
    border-bottom: 1px solid #f1eeee
}

.aplayer.aplayer-withlist .aplayer-list {
    display: block
}

.aplayer.aplayer-withlist .aplayer-icon-order,
.aplayer.aplayer-withlist .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu {
    display: inline
}

.aplayer.aplayer-withlrc .aplayer-pic {
    height: 90px;
    width: 90px
}

.aplayer.aplayer-withlrc .aplayer-info {
    margin-left: 90px;
    height: 90px;
    padding: 10px 7px 0
}

.aplayer.aplayer-withlrc .aplayer-lrc {
    display: block
}

.aplayer.aplayer-narrow {
    width: 66px
}

.aplayer.aplayer-narrow .aplayer-info,
.aplayer.aplayer-narrow .aplayer-list {
    display: none
}

.aplayer.aplayer-narrow .aplayer-body,
.aplayer.aplayer-narrow .aplayer-pic {
    height: 66px;
    width: 66px
}

.aplayer.aplayer-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    z-index: 99;
    overflow: visible;
    max-width: 400px;
    box-shadow: none
}

.aplayer.aplayer-fixed .aplayer-list {
    margin-bottom: 65px;
    border: 1px solid rgb(2, 2, 2);
    border-bottom: none
}

.aplayer.aplayer-fixed .aplayer-body {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    z-index: 99;
    background: rgb(12, 12, 12);
    padding-right: 18px;
    transition: all .3s ease;
    max-width: 400px
}

.aplayer.aplayer-fixed .aplayer-lrc {
    display: block;
    position: fixed;
    bottom: 10px;
    left: 0;
    right: 0;
    margin: 0;
    z-index: 98;
    pointer-events: none;
    text-shadow: -1px -1px 0 rgb(14, 13, 13)
}

.aplayer.aplayer-fixed .aplayer-lrc:after,
.aplayer.aplayer-fixed .aplayer-lrc:before {
    display: none
}

.aplayer.aplayer-fixed .aplayer-info {
    -webkit-transform: scaleX(1);
    transform: scaleX(1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    transition: all .3s ease;
    border-bottom: none;
    border-top: 1px solid #181717
}

.aplayer.aplayer-fixed .aplayer-info .aplayer-music {
    width: calc(100% - 105px)
}

.aplayer.aplayer-fixed .aplayer-miniswitcher {
    display: block
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-info {
    display: block;
    -webkit-transform: scaleX(0);
    transform: scaleX(0)
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
    width: 66px !important
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-miniswitcher .aplayer-icon {
    -webkit-transform: rotateY(0);
    transform: rotateY(0)
}

.aplayer.aplayer-fixed .aplayer-icon-back,
.aplayer.aplayer-fixed .aplayer-icon-forward,
.aplayer.aplayer-fixed .aplayer-icon-lrc,
.aplayer.aplayer-fixed .aplayer-icon-play {
    display: inline-block
}

.aplayer.aplayer-fixed .aplayer-icon-back,
.aplayer.aplayer-fixed .aplayer-icon-forward,
.aplayer.aplayer-fixed .aplayer-icon-menu,
.aplayer.aplayer-fixed .aplayer-icon-play {
    position: absolute;
    bottom: 27px;
    width: 20px;
    height: 20px
}

.aplayer.aplayer-fixed .aplayer-icon-back {
    right: 75px
}

.aplayer.aplayer-fixed .aplayer-icon-play {
    right: 50px
}

.aplayer.aplayer-fixed .aplayer-icon-forward {
    right: 25px
}

.aplayer.aplayer-fixed .aplayer-icon-menu {
    right: 0
}

.aplayer.aplayer-arrow .aplayer-icon-loop,
.aplayer.aplayer-arrow .aplayer-icon-order,
.aplayer.aplayer-mobile .aplayer-icon-volume-down {
    display: none
}

.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-loading-icon {
    display: block
}

.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb {
    -webkit-transform: scale(1);
    transform: scale(1)
}

.aplayer .aplayer-body {
    position: relative
}

.aplayer .aplayer-icon {
    width: 15px;
    height: 15px;
    border: none;
    background-color: transparent;
    outline: none;
    cursor: pointer;
    opacity: .8;
    vertical-align: middle;
    padding: 0;
    font-size: 12px;
    margin: 0;
    display: inline-block
}

.aplayer .aplayer-icon path {
    transition: all .2s ease-in-out
}

.aplayer .aplayer-icon-back,
.aplayer .aplayer-icon-forward,
.aplayer .aplayer-icon-lrc,
.aplayer .aplayer-icon-order,
.aplayer .aplayer-icon-play {
    display: none
}

.aplayer .aplayer-icon-lrc-inactivity svg {
    opacity: .4
}

.aplayer .aplayer-icon-forward {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg)
}

.aplayer .aplayer-lrc-content {
    display: none
}

.aplayer .aplayer-pic {
    position: relative;
    float: left;
    height: 66px;
    width: 66px;
    background-size: cover;
    background-position: 50%;
    transition: all .3s ease;
    cursor: pointer
}

.aplayer .aplayer-pic:hover .aplayer-button {
    opacity: 1
}

.aplayer .aplayer-pic .aplayer-button {
    position: absolute;
    border-radius: 50%;
    opacity: .8;
    text-shadow: 0 1px 1px rgba(255, 252, 252, 0.952);
    box-shadow: 0 1px 1px rgb(247, 241, 241);
    background: rgba(17, 17, 17, 0.918);
    transition: all .1s ease
}

.aplayer .aplayer-pic .aplayer-button path {
    fill: rgb(243, 229, 229)
}

.aplayer .aplayer-pic .aplayer-hide {
    display: none
}

.aplayer .aplayer-pic .aplayer-play {
    width: 26px;
    height: 26px;
    border: 2px solid rgb(241, 235, 235);
    bottom: 50%;
    right: 50%;
    margin: 0 -15px -15px 0
}

.aplayer .aplayer-pic .aplayer-play svg {
    position: absolute;
    top: 3px;
    left: 4px;
    height: 20px;
    width: 20px
}

.aplayer .aplayer-pic .aplayer-pause {
    width: 16px;
    height: 16px;
    border: 2px solid #fff;
    bottom: 4px;
    right: 4px
}

.aplayer .aplayer-pic .aplayer-pause svg {
    position: absolute;
    top: 2px;
    left: 2px;
    height: 12px;
    width: 12px
}

.aplayer .aplayer-info {
    margin-left: 66px;
    padding: 14px 7px 0 10px;
    height: 66px;
    box-sizing: border-box
}

.aplayer .aplayer-info .aplayer-music {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    margin: 0 0 13px 5px;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
    cursor: default;
    padding-bottom: 2px;
    height: 20px
}

.aplayer .aplayer-info .aplayer-music .aplayer-title {
    font-size: 14px
}

.aplayer .aplayer-info .aplayer-music .aplayer-author {
    font-size: 12px;
    color: rgb(240, 230, 230)
}

.aplayer .aplayer-info .aplayer-controller {
    position: relative;
    display: flex
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap {
    margin: 0 0 0 5px;
    padding: 4px 0;
    cursor: pointer !important;
    flex: 1
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap:hover .aplayer-bar .aplayer-played .aplayer-thumb {
    -webkit-transform: scale(1);
    transform: scale(1)
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar {
    position: relative;
    height: 2px;
    width: 100%;
    background: #e4e1e1
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    background: rgb(255, 253, 253);
    height: 2px;
    transition: all .5s ease
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    height: 2px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb {
    position: absolute;
    top: 0;
    right: 5px;
    margin-top: -4px;
    margin-right: -10px;
    height: 10px;
    width: 10px;
    border-radius: 50%;
    cursor: pointer;
    transition: all .3s ease-in-out;
    -webkit-transform: scale(0);
    transform: scale(0)
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time {
    position: relative;
    right: 0;
    bottom: 4px;
    height: 17px;
    color: rgb(240, 231, 231);
    font-size: 11px;
    padding-left: 7px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-time-inner {
    vertical-align: middle
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon {
    cursor: pointer;
    transition: all .2s ease
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path {
    fill: rgb(241, 237, 237)
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-loop {
    margin-right: 2px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path {
    fill: rgb(240, 8, 8)
}

.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu,
.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-menu,
.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-mode {
    display: none
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap {
    position: relative;
    display: inline-block;
    margin-left: 3px;
    cursor: pointer !important
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap:hover .aplayer-volume-bar-wrap {
    height: 40px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap {
    position: absolute;
    bottom: 15px;
    right: -3px;
    width: 25px;
    height: 0;
    z-index: 99;
    overflow: hidden;
    transition: all .2s ease-in-out
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap.aplayer-volume-bar-wrap-active {
    height: 40px
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar {
    position: absolute;
    bottom: 0;
    right: 10px;
    width: 5px;
    height: 35px;
    background: rgb(252, 246, 246);
    border-radius: 2.5px;
    overflow: hidden
}

.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 5px;
    transition: all .1s ease
}

.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon {
    display: none
}

.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon svg {
    position: absolute;
    -webkit-animation: rotate 1s linear infinite;
    animation: rotate 1s linear infinite
}

.aplayer .aplayer-lrc {
    display: none;
    position: relative;
    height: 30px;
    text-align: center;
    overflow: hidden;
    margin: -10px 0 7px
}

.aplayer .aplayer-lrc:before {
    top: 0;
    height: 10%;
    background: linear-gradient(180deg, #fff 0, hsla(0, 95%, 49%, 0.938));
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff", endColorstr="#00ffffff", GradientType=0)
}

.aplayer .aplayer-lrc:after,
.aplayer .aplayer-lrc:before {
    position: absolute;
    z-index: 1;
    display: block;
    overflow: hidden;
    width: 100%;
    content: " "
}

.aplayer .aplayer-lrc:after {
    bottom: 0;
    height: 33%;
    background: linear-gradient(180deg, hsla(0, 96%, 48%, 0.897) 0, rgb(255, 255, 255));
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff", endColorstr="#ccffffff", GradientType=0)
}

.aplayer .aplayer-lrc p {
    font-size: 12px;
    color: rgb(241, 228, 228);
    line-height: 16px !important;
    height: 16px !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: all .5s ease-out;
    opacity: .4;
    overflow: hidden
}

.aplayer .aplayer-lrc p.aplayer-lrc-current {
    opacity: 1;
    overflow: visible;
    height: auto !important;
    min-height: 16px
}

.aplayer .aplayer-lrc.aplayer-lrc-hide {
    display: none
}

.aplayer .aplayer-lrc .aplayer-lrc-contents {
    width: 100%;
    transition: all .5s ease-out;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
    cursor: default
}

.aplayer .aplayer-list {
    overflow: auto;
    transition: all .5s ease;
    will-change: height;
    display: none;
    overflow: hidden
}

.aplayer .aplayer-list.aplayer-list-hide {
    max-height: 0 !important
}

.aplayer .aplayer-list ol {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow-y: auto
}

.aplayer .aplayer-list ol::-webkit-scrollbar {
    width: 5px
}

.aplayer .aplayer-list ol::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background-color: rgb(143, 61, 61)
}

.aplayer .aplayer-list ol::-webkit-scrollbar-thumb:hover {
    background-color: rgb(231, 225, 225)
}

.aplayer .aplayer-list ol li {
    position: relative;
    height: 32px;
    line-height: 32px;
    padding: 0 15px;
    font-size: 12px;
    border-top: 1px solid #222121;
    cursor: pointer;
    transition: all .2s ease;
    overflow: hidden;
    margin: 0
}

.aplayer .aplayer-list ol li:first-child {
    border-top: none
}

.aplayer .aplayer-list ol li:hover {
    background: #4c6f72
}

.aplayer .aplayer-list ol li.aplayer-list-light {
    background: #5e6479
}

.aplayer .aplayer-list ol li.aplayer-list-light .aplayer-list-cur {
    display: inline-block
}

.aplayer .aplayer-list ol li .aplayer-list-cur {
    display: none;
    width: 3px;
    height: 22px;
    position: absolute;
    left: 0;
    top: 5px;
    cursor: pointer
}

.aplayer .aplayer-list ol li .aplayer-list-index {
    color: rgb(196, 193, 193);
    margin-right: 12px;
    cursor: pointer
}

.aplayer .aplayer-list ol li .aplayer-list-author {
    color: rgb(221, 218, 218);
    float: right;
    cursor: pointer
}

.aplayer .aplayer-notice {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    font-size: 12px;
    border-radius: 4px;
    padding: 5px 10px;
    transition: all .3s ease-in-out;
    overflow: hidden;
    color: #fff;
    pointer-events: none;
    background-color: #f0e5e5;
    color: #909399
}

.aplayer .aplayer-miniswitcher {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    height: 100%;
    background: #242222;
    width: 18px;
    border-radius: 0 2px 2px 0
}

.aplayer .aplayer-miniswitcher .aplayer-icon {
    height: 100%;
    width: 100%;
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg);
    transition: all .3s ease
}

.aplayer .aplayer-miniswitcher .aplayer-icon path {
    fill: rgb(241, 235, 235)
}

.aplayer .aplayer-miniswitcher .aplayer-icon:hover path {
    fill: rgb(248, 240, 240)
}

@-webkit-keyframes aplayer-roll {
    0% {
        left: 0
    }

    to {
        left: -100%
    }
}

@keyframes aplayer-roll {
    0% {
        left: 0
    }

    to {
        left: -100%
    }
}

@-webkit-keyframes rotate {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    to {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn)
    }
}

@keyframes rotate {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    to {
        -webkit-transform: rotate(1turn);
        transform: rotate(1turn)
    }
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
    left: -66px !important
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body:hover {
    left: 0 !important
}

/*# sourceMappingURL=APlayer.min.css.map*/

data-id为网易云音乐歌单id

autoplay默认关闭自动播放