This repository has been archived on 2023-08-30. You can view files and clone it, but cannot push or open issues/pull-requests.
appcat
/
sonist
Archived
1
0
Fork 0
sonist/index.html

205 lines
6.0 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<link href="lib/css/reset-basic.css" rel="stylesheet">
<link href="lib/css/elem-ui.css" rel="stylesheet">
<link href="css/app.css" rel="stylesheet">
<link href="css/modules.css" rel="stylesheet">
<script>window.LIBS_BASE_URL = location.origin + '/lib';window.__ENV_LANG__ = 'zh'</script>
<script type="module" src="js/app.js"></script>
</head>
<body class="do-fn-noselect" anot="app" :css="{'background-image': coverBG}">
<div class="do-mod-app" :class="{blur: isPlaying && !ktvMode, ktv: ktvMode}">
<div class="title-bar do-fn-drag">
<nav class="btn-box do-fn-nodrag" :if="theme === 1" :class="{focus: winFocus}">
<i class="item quit" :click="quit(false)"></i>
<i class="item min" :click="minimize"></i>
<i class="item max" :click="maximize"></i>
</nav>
<!-- 背景点位标签 -->
<div class="holder"></div>
<div class="tools do-fn-drag">
<div class="search do-fn-nodrag">
<input class="do-ui-input" placeholder="搜索 音乐/歌手/专辑" value="">
<i class="icon do-icon-search"></i>
</div>
</div>
<nav class="btn-box-win do-fn-nodrag">
<div class="opt">
<i class="do-icon-menu-right" :click="toggleOptBox"></i>
<section class="opt-list" :visible="optBoxShow">
<span><i class="do-icon-maximized"></i> 迷你模式</span>
<span :click="toggleModule('profile')">
<i class="do-icon-setting"></i> 首选项
</span>
<span class="pipe"></span>
<span :click="quit(true)"><i class="do-icon-logout"></i> 退出</span>
</section>
</div>
<span :if="theme === 2">
<i class="item do-icon-minimize" :click="minimize"></i>
<i class="item do-icon-maximize" :click="maximize"></i>
<i class="item do-icon-close" :click="quit(false)"></i>
</span>
</nav>
</div>
<div class="main-body">
<aside class="sidebar do-fn-drag">
<div class="user-box">
<div class="avatar">
<img src="/images/avatar.jpg" alt="yutent">
</div>
<h2 class="uname">yutent</h2>
</div>
<dl class="music-box">
<dt class="title">酷狗在线</dt>
<dd class="item"
:click="toggleModule('rank')"
:class="{active: mod === 'rank'}">
<i class="s-icon-rank"></i> 排行榜
</dd>
<dd class="item"
:click="toggleModule('artist')"
:class="{active: mod === 'artist'}">
<i class="s-icon-singer"></i> 歌手
</dd>
<dd class="item disabled"
:click="toggleModule('mv')"
:class="{active: mod === 'mv'}">
<i class="s-icon-mv"></i> MV
</dd>
<dt class="title">我的音乐</dt>
<dd class="item"
:click="toggleModule('search')"
:class="{active: mod === 'search'}">
<i class="s-icon-heart"></i> 试听列表
</dd>
<dd class="item"
:click="toggleModule('local')"
:class="{active: mod === 'local'}">
<i class="s-icon-play-list"></i> 本地音乐
</dd>
</dl>
</aside>
<content class="module" :include="views" data-cache="true"></content>
</div>
<div
class="ktv-box"
:if="ktvMode"
:css="{'background-image': coverBG}">
<div class="inner-content">
<div class="info">
<img :attr-src="curr.cover" :click="toggleLrcView" />
<div class="summary" :visible="!allLrcView">
<h3 :text="curr.title"></h3>
<section>歌手: {{curr.artist}}</section>
<section>专辑: {{curr.album}}</section>
<section>时长: {{curr.duration | time}}</section>
</div>
<div class="summary" :visible="allLrcView">
<pre class="summary" :text="allLrc"></pre>
</div>
</div>
<div class="lrc-box">
<section class="left">
<span :text="lrc.l.txt" :css="{background: lrc.l.bg}"></span>
</section>
<section class="right">
<span :text="lrc.r.txt" :css="{background: lrc.r.bg}"></span>
</section>
</div>
<div class="tool-box">
<section class="item" :click="forwardLrc(-0.5)">
<i class="do-icon-trigon-up"></i>歌词 -0.5s
</section>
<section class="item">
<i class="do-icon-search"></i>歌词有误
</section>
<section class="item" :click="layer.alert('歌词编辑功能暂时未开放')">
<i class="do-icon-edit"></i>歌词编辑
</section>
<section class="item" :click="forwardLrc(0.5)">
<i class="do-icon-trigon-down"></i>歌词 +0.5s
</section>
</div>
</div>
</div>
<div class="contrl-bar">
<div class="play-box">
<span class="item prev s-icon-prev" :click="nextSong(-1)"></span>
<span
class="item play"
:class="{'s-icon-play': !isPlaying, 's-icon-pause': isPlaying}"
:click="play(null)">
</span>
<span class="item next s-icon-next" :click="nextSong(1)"></span>
</div>
<div class="stat-box">
<div class="song-stat">
<canvas ref="player"></canvas>
</div>
<span
class="ctrl"
:class="{
's-icon-all': playMode === 0,
's-icon-single': playMode === 1,
's-icon-random': playMode === 2
}"
:click="togglePlayMode">
</span>
<section class="ctrl volume">
<i
:class="{
'do-icon-unmute' : volume > 0,
'do-icon-mute' : volume === 0
}">
</i>
<span
class="volume-ctrl"
:click="changeValume">
<em :css="{flex: '0 ' + volume + '%'}"></em>
</span>
</section>
<span class="ctrl s-icon-eq"></span>
<span class="ctrl lrc"></span>
</div>
</div>
</div>
</body>
</html>
一个音乐播放器, 主打本地音乐播放。支持 自动歌词/自动封面/均衡器等常见功能。
JavaScript 60.1%
SCSS 19.2%
HTML 16.9%
CSS 3.8%