├── static
├── .gitkeep
├── js
│ ├── manifest.d7747395207f3e34b811.js
│ ├── manifest.d7747395207f3e34b811.js.map
│ └── app.0e8afee9829afd26b61d.js
└── css
│ └── app.4f0d91c3db84edcc65ee711f11c45cc2.css
├── .eslintignore
├── src
├── store
│ ├── getters.js
│ ├── actions.js
│ ├── state.js
│ ├── mutations_types.js
│ ├── mutations.js
│ └── index.js
├── assets
│ ├── logo.png
│ └── img
│ │ ├── jzxer.pdf
│ │ └── favicon.ico
├── components
│ ├── search
│ │ └── search.vue
│ ├── mv.vue
│ ├── myMusic-c
│ │ ├── unlogin.vue
│ │ └── style
│ │ │ └── unlogin.scss
│ ├── myMusic.vue
│ ├── cd.vue
│ ├── musicDis_c
│ │ ├── style
│ │ │ ├── event.scss
│ │ │ ├── toplist.scss
│ │ │ └── newCD.scss
│ │ ├── event.vue
│ │ ├── newCD.vue
│ │ ├── taogeList.vue
│ │ └── topList.vue
│ ├── musicDis.vue
│ ├── public
│ │ ├── style
│ │ │ ├── public.scss
│ │ │ ├── footer.scss
│ │ │ └── header.css
│ │ ├── exp.html
│ │ ├── footer.vue
│ │ └── header.vue
│ ├── singer.vue
│ └── artList.vue
├── main.js
├── App.vue
├── router
│ └── index.js
└── pages
│ ├── resume.vue
│ └── player.vue
├── config
├── prod.env.js
├── test.env.js
├── dev.env.js
└── index.js
├── 我的简历.pdf
├── test
├── unit
│ ├── .eslintrc
│ ├── specs
│ │ └── Hello.spec.js
│ ├── index.js
│ └── karma.conf.js
└── e2e
│ ├── specs
│ └── test.js
│ ├── custom-assertions
│ └── elementCount.js
│ ├── runner.js
│ └── nightwatch.conf.js
├── .gitignore
├── .editorconfig
├── .postcssrc.js
├── .babelrc
├── .eslintrc.js
├── index.html
├── package.json
└── README.md
/static/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/src/store/getters.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | }
3 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/我的简历.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/j710328466/vue-qqmusic/HEAD/我的简历.pdf
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/j710328466/vue-qqmusic/HEAD/src/assets/logo.png
--------------------------------------------------------------------------------
/src/store/actions.js:
--------------------------------------------------------------------------------
1 | import * as types from './mutations_types'
2 | export default {
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/src/assets/img/jzxer.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/j710328466/vue-qqmusic/HEAD/src/assets/img/jzxer.pdf
--------------------------------------------------------------------------------
/src/assets/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/j710328466/vue-qqmusic/HEAD/src/assets/img/favicon.ico
--------------------------------------------------------------------------------
/test/unit/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "mocha": true
4 | },
5 | "globals": {
6 | "expect": true,
7 | "sinon": true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/config/test.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var devEnv = require('./dev.env')
3 |
4 | module.exports = merge(devEnv, {
5 | NODE_ENV: '"testing"'
6 | })
7 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 |
4 | module.exports = merge(prodEnv, {
5 | NODE_ENV: '"development"'
6 | })
7 |
--------------------------------------------------------------------------------
/src/store/state.js:
--------------------------------------------------------------------------------
1 | const state = {
2 | songList: [],
3 | linkIndex: 1,
4 | tagLink: 1,
5 | isLogin: false,
6 | singer: []
7 | }
8 |
9 | export default state
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | test/unit/coverage
8 | test/e2e/reports
9 | selenium-debug.log
10 |
--------------------------------------------------------------------------------
/src/components/search/search.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/src/store/mutations_types.js:
--------------------------------------------------------------------------------
1 | // export const SAVE_SONGLIST = 'SAVE_SONGLIST'
2 | //
3 | // export const CHANGE_INDEX = 'CHANGE_INDEX'
4 | //
5 | // export const SAVE_SINGER = 'SAVE_SINGER'
6 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserlist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", { "modules": false }],
4 | "stage-2"
5 | ],
6 | "plugins": ["transform-runtime"],
7 | "comments": false,
8 | "env": {
9 | "test": {
10 | "presets": ["env", "stage-2"],
11 | "plugins": [ "istanbul" ]
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/components/mv.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
23 |
24 |
27 |
--------------------------------------------------------------------------------
/src/store/mutations.js:
--------------------------------------------------------------------------------
1 | import types from './mutations_types'
2 | export default{
3 | save_songList(state, songList) {
4 | state.songList = songList
5 | },
6 | changeLinkIndex(state, index) {
7 | state.linkIndex = index
8 | },
9 | changeTagIndex(state, index) {
10 | state.tagLink = index
11 | },
12 | save_singer(state, singer) {
13 | state.singer = singer
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/test/unit/specs/Hello.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Hello from '@/components/Hello'
3 |
4 | describe('Hello.vue', () => {
5 | it('should render correct contents', () => {
6 | const Constructor = Vue.extend(Hello)
7 | const vm = new Constructor().$mount()
8 | expect(vm.$el.querySelector('.hello h1').textContent)
9 | .to.equal('Welcome to Your Vue.js App')
10 | })
11 | })
12 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import state from './state'
4 | import * as getters from './getters'
5 | import actions from './actions'
6 | import mutations from './mutations'
7 | import * as mutations_types from './mutations_types'
8 |
9 | Vue.use(Vuex)
10 |
11 | const store = new Vuex.Store({
12 | state,
13 | actions,
14 | // getters,
15 | // actions,
16 | mutations
17 | })
18 | export default store
19 |
--------------------------------------------------------------------------------
/test/unit/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 |
3 | Vue.config.productionTip = false
4 |
5 | // require all test files (files that ends with .spec.js)
6 | const testsContext = require.context('./specs', true, /\.spec$/)
7 | testsContext.keys().forEach(testsContext)
8 |
9 | // require all src files except main.js for coverage.
10 | // you can also change this to match only the subset of files that
11 | // you want coverage for.
12 | const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/)
13 | srcContext.keys().forEach(srcContext)
14 |
--------------------------------------------------------------------------------
/src/components/myMusic-c/unlogin.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
听我喜欢听的歌
6 |
7 |
8 |
立即登录
9 |
10 |
11 |
12 |
13 |
18 |
19 |
22 |
--------------------------------------------------------------------------------
/src/components/myMusic.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
27 |
28 |
30 |
--------------------------------------------------------------------------------
/test/e2e/specs/test.js:
--------------------------------------------------------------------------------
1 | // For authoring Nightwatch tests, see
2 | // http://nightwatchjs.org/guide#usage
3 |
4 | module.exports = {
5 | 'default e2e tests': function (browser) {
6 | // automatically uses dev Server port from /config.index.js
7 | // default: http://localhost:8080
8 | // see nightwatch.conf.js
9 | const devServer = browser.globals.devServerURL
10 |
11 | browser
12 | .url(devServer)
13 | .waitForElementVisible('#app', 5000)
14 | .assert.elementPresent('.hello')
15 | .assert.containsText('h1', 'Welcome to Your Vue.js App')
16 | .assert.elementCount('img', 1)
17 | .end()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // The Vue build version to load with the `import` command
2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3 | import Vue from 'vue'
4 | import router from './router'
5 | import axios from 'axios'
6 | import VueAxios from 'vue-axios'
7 | import ElementUI from 'element-ui'
8 | import 'element-ui/lib/theme-default/index.css'
9 | import App from './App'
10 | import store from './store'
11 |
12 | Vue.use(VueAxios, axios)
13 | Vue.use(ElementUI)
14 |
15 | Vue.config.productionTip = false
16 |
17 |
18 | /* eslint-disable no-new */
19 | new Vue({
20 | el: '#app',
21 | router,
22 | store,
23 | template: '',
24 | components: { App }
25 | })
26 |
--------------------------------------------------------------------------------
/src/components/cd.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
29 |
30 |
33 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // http://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | env: {
10 | browser: true,
11 | },
12 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
13 | extends: 'standard',
14 | // required to lint *.vue files
15 | plugins: [
16 | 'html'
17 | ],
18 | // add your custom rules here
19 | 'rules': {
20 | // allow paren-less arrow functions
21 | 'arrow-parens': 0,
22 | // allow async-await
23 | 'generator-star-spacing': 0,
24 | // allow debugger during development
25 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/components/musicDis_c/style/event.scss:
--------------------------------------------------------------------------------
1 | .mod_index--event .section_inner {
2 | height: 610px;
3 | }
4 | .index__tit_sprite {
5 | background-position: 0 -240px;
6 | }
7 | .index__line {
8 | background-color: #000;
9 | }
10 | .mod_slide {
11 | overflow: hidden;
12 | margin-bottom: 25px;
13 | .event_list {
14 | width: 100%;
15 | height: 325px;
16 | }
17 | .slide__list {
18 | position: relative;
19 | font-size: 0;
20 | .event_list__item {
21 | position: absolute;
22 | top: 0;
23 | left: 0;
24 | width: 751px;
25 | height: 300px;
26 | opacity: .8;
27 | z-index: 1;
28 | transition: all 300ms ease-out;
29 | }
30 | .slide__item {
31 | display: inline-block;
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/components/musicDis.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
33 |
34 |
37 |
--------------------------------------------------------------------------------
/test/e2e/custom-assertions/elementCount.js:
--------------------------------------------------------------------------------
1 | // A custom Nightwatch assertion.
2 | // the name of the method is the filename.
3 | // can be used in tests like this:
4 | //
5 | // browser.assert.elementCount(selector, count)
6 | //
7 | // for how to write custom assertions see
8 | // http://nightwatchjs.org/guide#writing-custom-assertions
9 | exports.assertion = function (selector, count) {
10 | this.message = 'Testing if element <' + selector + '> has count: ' + count
11 | this.expected = count
12 | this.pass = function (val) {
13 | return val === this.expected
14 | }
15 | this.value = function (res) {
16 | return res.value
17 | }
18 | this.command = function (cb) {
19 | var self = this
20 | return this.api.execute(function (selector) {
21 | return document.querySelectorAll(selector).length
22 | }, [selector], function (res) {
23 | cb.call(self, res)
24 | })
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
vue-qqmusic
2 |
3 |
4 |
5 |
6 |
7 | vue-qqmusic
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
27 |
28 |
54 |
--------------------------------------------------------------------------------
/test/unit/karma.conf.js:
--------------------------------------------------------------------------------
1 | // This is a karma config file. For more details see
2 | // http://karma-runner.github.io/0.13/config/configuration-file.html
3 | // we are also using it with karma-webpack
4 | // https://github.com/webpack/karma-webpack
5 |
6 | var webpackConfig = require('../../build/webpack.test.conf')
7 |
8 | module.exports = function (config) {
9 | config.set({
10 | // to run in additional browsers:
11 | // 1. install corresponding karma launcher
12 | // http://karma-runner.github.io/0.13/config/browsers.html
13 | // 2. add it to the `browsers` array below.
14 | browsers: ['PhantomJS'],
15 | frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'],
16 | reporters: ['spec', 'coverage'],
17 | files: ['./index.js'],
18 | preprocessors: {
19 | './index.js': ['webpack', 'sourcemap']
20 | },
21 | webpack: webpackConfig,
22 | webpackMiddleware: {
23 | noInfo: true
24 | },
25 | coverageReporter: {
26 | dir: './coverage',
27 | reporters: [
28 | { type: 'lcov', subdir: '.' },
29 | { type: 'text-summary' }
30 | ]
31 | }
32 | })
33 | }
34 |
--------------------------------------------------------------------------------
/test/e2e/runner.js:
--------------------------------------------------------------------------------
1 | // 1. start the dev server using production config
2 | process.env.NODE_ENV = 'testing'
3 | var server = require('../../build/dev-server.js')
4 |
5 | server.ready.then(() => {
6 | // 2. run the nightwatch test suite against it
7 | // to run in additional browsers:
8 | // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings"
9 | // 2. add it to the --env flag below
10 | // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`
11 | // For more information on Nightwatch's config file, see
12 | // http://nightwatchjs.org/guide#settings-file
13 | var opts = process.argv.slice(2)
14 | if (opts.indexOf('--config') === -1) {
15 | opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])
16 | }
17 | if (opts.indexOf('--env') === -1) {
18 | opts = opts.concat(['--env', 'chrome'])
19 | }
20 |
21 | var spawn = require('cross-spawn')
22 | var runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })
23 |
24 | runner.on('exit', function (code) {
25 | server.close()
26 | process.exit(code)
27 | })
28 |
29 | runner.on('error', function (err) {
30 | server.close()
31 | throw err
32 | })
33 | })
34 |
--------------------------------------------------------------------------------
/test/e2e/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | require('babel-register')
2 | var config = require('../../config')
3 |
4 | // http://nightwatchjs.org/gettingstarted#settings-file
5 | module.exports = {
6 | src_folders: ['test/e2e/specs'],
7 | output_folder: 'test/e2e/reports',
8 | custom_assertions_path: ['test/e2e/custom-assertions'],
9 |
10 | selenium: {
11 | start_process: true,
12 | server_path: require('selenium-server').path,
13 | host: '127.0.0.1',
14 | port: 4444,
15 | cli_args: {
16 | 'webdriver.chrome.driver': require('chromedriver').path
17 | }
18 | },
19 |
20 | test_settings: {
21 | default: {
22 | selenium_port: 4444,
23 | selenium_host: 'localhost',
24 | silent: true,
25 | globals: {
26 | devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
27 | }
28 | },
29 |
30 | chrome: {
31 | desiredCapabilities: {
32 | browserName: 'chrome',
33 | javascriptEnabled: true,
34 | acceptSslCerts: true
35 | }
36 | },
37 |
38 | firefox: {
39 | desiredCapabilities: {
40 | browserName: 'firefox',
41 | javascriptEnabled: true,
42 | acceptSslCerts: true
43 | }
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | import musicDis from '@/components/musicDis'
4 | import myMusic from '@/components/myMusic'
5 | import artList from '@/components/artList'
6 | import resume from '../pages/resume'
7 | import player from '../pages/player'
8 | import singer from '../components/singer'
9 | import cd from '../components/cd'
10 | import mv from '../components/mv'
11 |
12 |
13 | Vue.use(Router)
14 |
15 | export default new Router({
16 | routes: [
17 | {
18 | path: '/',
19 | name: 'musicDis',
20 | component: musicDis
21 | },
22 | {
23 | path: '/myMusic',
24 | name: 'myMusic',
25 | component: myMusic
26 | },
27 | {
28 | path: '/artList',
29 | name: 'artList',
30 | component: artList
31 | },
32 | {
33 | path: '/resume',
34 | name: 'resume',
35 | component: resume
36 | },
37 | {
38 | path: '/player:id',
39 | name: 'player',
40 | component: player
41 | },
42 | {
43 | path: '/singer',
44 | name: 'singer',
45 | component: singer
46 | },
47 | {
48 | path: '/cd',
49 | name: 'cd',
50 | component: cd
51 | },
52 | {
53 | path: '/mv',
54 | name: 'mv',
55 | component: mv
56 | },
57 | ]
58 | })
59 |
--------------------------------------------------------------------------------
/src/components/musicDis_c/event.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 精彩推荐
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
43 |
44 |
48 |
--------------------------------------------------------------------------------
/static/js/manifest.d7747395207f3e34b811.js:
--------------------------------------------------------------------------------
1 | !function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,i){for(var u,a,f,s=0,l=[];s
2 |
3 |
4 |
5 |
6 |
7 |

8 |
9 |
10 |
江志雄
11 |
向往诗歌和远方
12 |
技术栈:vue vuex vue-router element-UI scss
13 |
Email: 710328466@qq.com
14 |
gitHub
15 |
16 |
Blog
17 |
18 |
19 |
20 |
大三求前端实习中...
21 |
22 |
23 |
24 |
25 |
26 |
27 |
38 |
39 |
111 |
--------------------------------------------------------------------------------
/src/components/public/style/public.scss:
--------------------------------------------------------------------------------
1 | .mod_index {
2 | position: relative;
3 | .section_inner {
4 | z-index: 2;
5 | overflow: hidden;
6 | max-width: 1200px;
7 | margin: 0 auto;
8 | position: relative;
9 | .index__hd {
10 | position: relative;
11 | width: 490px;
12 | height: 48px;
13 | padding-top: 80px;
14 | margin: 0 auto 50px;
15 | .index__tit {
16 | font-weight: 400;
17 | text-align: center;
18 | .index__tit_sprite {
19 | width: 193px;
20 | display: block;
21 | margin: 0 auto;
22 | height: 48px;
23 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/index_tit.png?max_age=2592000&v=ea6515ebb82f7609712c02805e2abe9c);
24 | }
25 | }
26 | }
27 | }
28 | }
29 | .index__line {
30 | position: absolute;
31 | top: 104px;
32 | width: 72px;
33 | height: 1px;
34 | opacity: .1;
35 | }
36 | .index__line--left {
37 | left: 0;
38 | }
39 | .index__line--right {
40 | right: 0;
41 | }
42 |
43 | // 下虚线
44 | .mod_slide_switch {
45 | width: 100%;
46 | text-align: center;
47 | font-size: 0;
48 | .slide_switch__item {
49 | display: inline-block;
50 | width: 30px;
51 | height: 2px;
52 | padding: 10px 0;
53 | margin: 0 5px;
54 | .slide_switch__bg {
55 | background: rgba(21, 21, 21, .3);
56 | display: block;
57 | width: 100%;
58 | height: 1px;
59 | }
60 | }
61 | }
62 |
63 | .index__more {
64 | position: absolute;
65 | right: 0;
66 | }
67 | .index__more:hover {
68 | color: #31c27c;
69 | }
70 | .index__more--white {
71 | font-size: 15px;
72 | color: #fff;
73 | .icon_index_arrow {
74 | background-position: -40px -260px;
75 | display: inline-block;
76 | width: 7px;
77 | height: 12px;
78 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);
79 | margin-left: 6px;
80 | }
81 | .icon_index_arrow:hover {
82 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);
83 | background-position: 0 0;
84 | }
85 | }
86 | .mod_cover {
87 | opacity: .9;
88 | zoom: 1;
89 | }
90 | .mod_cover:hover > .toplist__bg {
91 | transform: scale(1.07);
92 | }
93 | .mod_cover:hover > .playlist__pic {
94 | transform: scale(1.07);
95 | }
96 | .mod_cover:hover > .mod_cover__mask {
97 | opacity: .4;
98 | }
99 | .mod_cover:hover > .mod_cover__icon_play {
100 | transform: scale(1);
101 | opacity: 1;
102 | }
103 | .mod_cover:hover > .toplist__line {
104 | opacity: 0;
105 | }
106 | .mod_cover:hover + .playlist__title > .btn_opera_menu {
107 | transition: .5s ease-in;
108 | opacity: 1;
109 | }
110 | .mod_cover__mask {
111 | position: absolute;
112 | top: 0;
113 | left: 0;
114 | width: 100%;
115 | height: 100%;
116 | background-color: #000;
117 | opacity: 0;
118 | transition: opacity .5s;
119 | }
120 | .mod_cover__icon_play {
121 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/cover_play.png?max_age=2592000&v=fa72193fd8d5000e90837380d6be93ea);
122 | position: absolute;
123 | top: 50%;
124 | left: 50%;
125 | margin: -35px;
126 | width: 70px;
127 | height: 70px;
128 | opacity: 0;
129 | transform: scale(.7);
130 | transition-property: opacity,transform;
131 | transition-duration: .5s;
132 | zoom: 1;
133 | }
134 |
--------------------------------------------------------------------------------
/src/components/public/style/footer.scss:
--------------------------------------------------------------------------------
1 | .footer {
2 | color: #999;
3 | background-color: #333;
4 | clear: both;
5 | height: 450px;
6 | a {
7 | color: #999;
8 | &:hover {
9 | color: #31c27c;
10 | }
11 | }
12 | .section_inner {
13 | max-width: 1200px;
14 | margin: 0 auto;
15 | position: relative;
16 | .footer_tit {
17 | font-size: 15px;
18 | font-weight: 400;
19 | padding: 80px 0 46px;
20 | }
21 | .icon_qm_pc,.icon_qm_mac,.icon_qm_kg,
22 | .icon_qm_qp,.icon_qm_ss,.icon_qm_android,
23 | .icon_qm_iphone{
24 | display: block;
25 | margin: 0 29px 12px;
26 | height: 48px;
27 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/footer.png?max_age=2592000&v=4739050c9bfc2db438241313ce65f4bf);
28 | }
29 | }
30 | .footer_info {
31 | overflow: hidden;
32 | border-bottom: 1px solid #353535;
33 | position: relative;
34 | }
35 | }
36 | .footer_download {
37 | position: absolute;
38 | top: 0;
39 | left: 10px;
40 | .footer_download_list {
41 | margin-left: -29px;
42 | .footer_download_list__item {
43 | float: left;
44 | text-align: center;
45 | position: relative;
46 | .icon_qm_pc {
47 | width: 37px;
48 | background-position: -2px 0;
49 | &:hover {
50 | background-position: -2px -50px;
51 | }
52 | }
53 | .icon_qm_mac {
54 | width: 46px;
55 | background-position: -92px 0;
56 | &:hover {
57 | background-position: -92px -50px;
58 | }
59 | }
60 | .icon_qm_android {
61 | width: 37px;
62 | background-position: -190px 0;
63 | &:hover {
64 | background-position: -190px -50px;
65 | }
66 | }
67 | .icon_qm_iphone {
68 | width: 34px;
69 | background-position: -279px 0;
70 | &:hover {
71 | background-position: -279px -50px;
72 | }
73 | }
74 | }
75 | }
76 | }
77 | // 产品
78 | .footer_product {
79 | position: absolute;
80 | top: 0;
81 | left: 476px;
82 | width: 304px;
83 | .footer_product_list {
84 | margin-left: -25px;
85 | .footer_product_list__item {
86 | float: left;
87 | margin-bottom: 18px;
88 | text-indent: 25px;
89 | margin-right: 5px;
90 | }
91 | .footer_product_list__item--pic {
92 | text-align: center;
93 | position: relative;
94 | margin-right: 0;
95 | text-indent: 0;
96 | .icon_qm_kg {
97 | width: 41px;
98 | background-position: -370px 0;
99 | &:hover {
100 | background-position: -370px 47px;
101 | }
102 | }
103 | .icon_qm_ss {
104 | width: 37px;
105 | background-position: -463px 0;
106 | &:hover {
107 | background-position: -463px 47px;
108 | }
109 | }
110 | .icon_qm_qp {
111 | margin-right: 23px;
112 | width: 40px;
113 | background-position: -563px 0;
114 | &:hover {
115 | background-position: -563px 47px;
116 | }
117 | }
118 | }
119 | }
120 | }
121 | // link
122 | .footer_link {
123 | float: right;
124 | width: 300px;
125 | padding-bottom: 57px;
126 | .footer_link_list__item {
127 | float: left;
128 | min-width: 100px;
129 | margin-bottom: 12px;
130 | }
131 | }
132 | // copyright
133 | .footer_copyright {
134 | text-align: center;
135 | line-height: 28px;
136 | padding: 24px 0;
137 | }
138 |
--------------------------------------------------------------------------------
/src/components/public/exp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-qqmusic",
3 | "version": "1.0.0",
4 | "description": "qqmusic",
5 | "author": "jzxer <710328466@qq,com>",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "start": "node build/dev-server.js",
10 | "build": "node build/build.js",
11 | "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
12 | "e2e": "node test/e2e/runner.js",
13 | "test": "npm run unit && npm run e2e",
14 | "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
15 | },
16 | "dependencies": {
17 | "axios": "^0.16.1",
18 | "css-loader": "^0.28.3",
19 | "element-ui": "^1.3.5",
20 | "node-sass": "^4.5.3",
21 | "sass-loader": "^6.0.5",
22 | "stylus-loader": "^3.0.1",
23 | "vue": "^2.2.6",
24 | "vue-axios": "^2.0.2",
25 | "vue-router": "^2.3.1",
26 | "vue-style-loader": "^2.0.5",
27 | "vuex": "^2.3.1"
28 | },
29 | "devDependencies": {
30 | "autoprefixer": "^6.7.2",
31 | "babel-core": "^6.22.1",
32 | "babel-eslint": "^7.1.1",
33 | "babel-loader": "^6.2.10",
34 | "babel-plugin-transform-runtime": "^6.22.0",
35 | "babel-preset-env": "^1.3.2",
36 | "babel-preset-stage-2": "^6.22.0",
37 | "babel-register": "^6.22.0",
38 | "chalk": "^1.1.3",
39 | "connect-history-api-fallback": "^1.3.0",
40 | "copy-webpack-plugin": "^4.0.1",
41 | "css-loader": "^0.28.0",
42 | "eslint": "^3.19.0",
43 | "eslint-friendly-formatter": "^2.0.7",
44 | "eslint-loader": "^1.7.1",
45 | "eslint-plugin-html": "^2.0.0",
46 | "eslint-config-standard": "^6.2.1",
47 | "eslint-plugin-promise": "^3.4.0",
48 | "eslint-plugin-standard": "^2.0.1",
49 | "eventsource-polyfill": "^0.9.6",
50 | "express": "^4.14.1",
51 | "extract-text-webpack-plugin": "^2.0.0",
52 | "file-loader": "^0.11.1",
53 | "friendly-errors-webpack-plugin": "^1.1.3",
54 | "html-webpack-plugin": "^2.28.0",
55 | "http-proxy-middleware": "^0.17.3",
56 | "webpack-bundle-analyzer": "^2.2.1",
57 | "cross-env": "^4.0.0",
58 | "karma": "^1.4.1",
59 | "karma-coverage": "^1.1.1",
60 | "karma-mocha": "^1.3.0",
61 | "karma-phantomjs-launcher": "^1.0.2",
62 | "karma-phantomjs-shim": "^1.4.0",
63 | "karma-sinon-chai": "^1.3.1",
64 | "karma-sourcemap-loader": "^0.3.7",
65 | "karma-spec-reporter": "0.0.30",
66 | "karma-webpack": "^2.0.2",
67 | "lolex": "^1.5.2",
68 | "mocha": "^3.2.0",
69 | "chai": "^3.5.0",
70 | "sinon": "^2.1.0",
71 | "sinon-chai": "^2.8.0",
72 | "inject-loader": "^3.0.0",
73 | "babel-plugin-istanbul": "^4.1.1",
74 | "phantomjs-prebuilt": "^2.1.14",
75 | "chromedriver": "^2.27.2",
76 | "cross-spawn": "^5.0.1",
77 | "nightwatch": "^0.9.12",
78 | "selenium-server": "^3.0.1",
79 | "semver": "^5.3.0",
80 | "shelljs": "^0.7.6",
81 | "opn": "^4.0.2",
82 | "optimize-css-assets-webpack-plugin": "^1.3.0",
83 | "ora": "^1.2.0",
84 | "rimraf": "^2.6.0",
85 | "url-loader": "^0.5.8",
86 | "vue-loader": "^11.3.4",
87 | "vue-style-loader": "^2.0.5",
88 | "vue-template-compiler": "^2.2.6",
89 | "webpack": "^2.3.3",
90 | "webpack-dev-middleware": "^1.10.0",
91 | "webpack-hot-middleware": "^2.18.0",
92 | "webpack-merge": "^4.1.0"
93 | },
94 | "engines": {
95 | "node": ">= 4.0.0",
96 | "npm": ">= 3.0.0"
97 | },
98 | "browserslist": [
99 | "> 1%",
100 | "last 2 versions",
101 | "not ie <= 8"
102 | ]
103 | }
104 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 用Vue高仿qq音乐官网-pc端
2 | 一直想做一个vue项目 然后呢 我就做了
3 |
4 | ## 效果预览
5 |
6 | 部分地方不全部根据原版,也有自由发挥的,目前功能模块比较简陋,要完整显示效果必须接入后端数据,请下载以下api文件并打开
7 | > [网易云音乐API](https://github.com/Binaryify/NeteaseCloudMusicApi)
8 |
9 |
10 | > 项目地址:[github](https://github.com/j710328466/vue-qqmusic)
11 |
12 | > 预览地址:[demo](http://182.254.147.168:8564/#/)
13 |
14 | ## Build Setup
15 |
16 |
17 | ```
18 | # install dependencies
19 | cnpm i
20 | (可以用cnpm或yarn,更方便快捷,你值得拥有)
21 |
22 | # serve with hot reload at localhost:8564
23 | npm run dev
24 |
25 | # build for production with minification
26 | npm run build
27 |
28 | # build for production and view the bundle analyzer report
29 | npm run build --report
30 |
31 | # 网易云API部署 listen localhost:3000
32 | npm run start
33 | ```
34 | ## 技术栈
35 |
36 | * vue(数据绑定)
37 | * vue-router
38 | * vuex(管理组件状态,实现组件通信)
39 | * webpack(打包工具)
40 | * scss(原来想用stylus,回头看看我都快写完了...)
41 | * axios(我等下要重点讲这****)
42 | * 组件库: element-UI(本来想用muse-UI,感觉那个更cool,下次吧..)
43 | * API: 网易云音乐API(仿qq音乐我用网易云音乐的东西,你怕不怕...)
44 |
45 | ## 核心功能组件的实现
46 |
47 | * 搜索功能
48 |
49 | 
50 |
51 | * 播放功能
52 |
53 | 
54 | (播放页面正在完善中,样式只是大概,待细化...)
55 |
56 | * 跳转功能
57 |
58 | 
59 | (目前子目录只开通歌手列表)
60 |
61 |
62 | ## 自己挖的坑,自己埋
63 |
64 | 1. vuex的模块应用
65 |
66 | * 一开始我并没有使用vuex,因为我觉得目前这个项目比较小,并不需要它来管理数据,毕竟vuex针对大项目来说确实很好用,但是后来考虑到如果后期该项目我还要 维护,数据量一大,还是要重新分类数据,所以中途某些地方插入了vuex的使用,这就很大一部分影响了项目进行的进度。(目前只用到action和state)
67 |
68 | 2. qq音乐的轮播图
69 | * 不用说,qq音乐这个网站的页面我是真的挺喜欢,不光是他的设计,页面的布局也很美观,在控制台调试的时候可以看看它的结构,非常有层次而富有美感,即使加上 一层margin,padding也不会有违和感。这就造就了它的轮播图结构比较麻烦,不是说做不出来,因为这是第一次上传的项目,我想先将大概的结构完善一下,后期再 维护,所以我就选用了element-UI里面的跑马灯式轮播图组件,大体来说,除了部分瑕疵以外,还是高度还原了原版轮播图的。
70 |
71 | 3. axios后端数据获取时产生的跨域问题
72 |
73 | * 重点来了,这个是我在该项目中花了最多时间的地方,相信很多同学使用axios都碰到过我这个问题,目前我这里使用了三种方法处理该问题,请大家针对自己的项目 问题对号入座
74 |
75 | * 跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。由于安全原因,跨域访问是被各大浏览器所默认禁止的。
76 |
77 | ①. 针对本地相同端口服务器之间的跨域
78 |
79 | * 这是我刚开始碰到问题时使用的第一种,这个时候你只需要找到build文件中的dev-server,找到引用express的位置,给它加上一个头文件:
80 | ```
81 | app.all('*', function (req, res, next) {
82 | res.header("Access-Control-Allow-Credentials", true)
83 | res.header("Access-Control-Allow-Origin", "*")
84 | res.header("Access-Control-Allow-Headers", "X-Requested-With")
85 | res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS")
86 | res.header("X-Powered-By", ' 3.2.1')
87 | res.header("Content-Type", "application/json;charset=utf-8")
88 | next()
89 | })
90 | ```
91 |
92 | > 
93 |
94 | * 然后它就会报错~,具体原因是你同一个端口申请相同端口的东西,不好意思,那不叫跨域...
95 |
96 | ②. 针对本地不同端口的服务器之间的跨域
97 |
98 | * 就是将上面的头文件放在当前项目申请的服务器的那个api中。
99 |
100 | ③. 针对本地服务器对域名服务器访问的跨域问题
101 |
102 | * 找到当前项目congfig文件夹下index.js文件,然后在文件中将proxyTable内容改为:
103 | ```
104 | proxyTable: {
105 | '/api': {
106 | target: '[1]',
107 | changeOrigin: true,
108 | pathRewrite: {
109 | '^/api': '/'
110 | }
111 | }
112 | }
113 | ```
114 | * 就是你当前想访问的api地址,项目中访问的时候就只要用/api做反向代理即可
115 |
116 | ## 终于
117 |
118 | * 这是我第一个用vue撸的项目,可能功能有点简陋,很多地方有待提高,不过这次实践让我对组件化的理解有了一定的提升,后期会继续加入其它功能模块的,文中有用词不对的地方,欢迎大家指出,项目有什么bug,也希望大家多多提issue
119 |
120 | * 如果你帮到了你,给个star吧
121 |
122 |
123 | * (最后,这是[我的简历](https://github.com/j710328466/vue-qqmusic/blob/master/%E6%88%91%E7%9A%84%E7%AE%80%E5%8E%86.pdf) 2018级毕业生,也可以在项目跟目录下载pdf文件,谢谢)
124 | 
125 |
--------------------------------------------------------------------------------
/src/components/singer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | - 全部
7 | - 华语男
8 | - 华语女
9 | - 华语组合
10 | - 韩国男
11 | - 韩国女
12 | - 欧美男
13 | - 欧美女
14 | - 欧美组合
15 | - 其他
16 |
17 |
18 |
19 | -
20 |
21 |
![]()
22 |
{{item.name}}
23 |
24 |
25 |
26 |
27 |
28 |
29 |
51 |
52 |
140 |
--------------------------------------------------------------------------------
/src/components/musicDis_c/newCD.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 | 新碟首发
10 |
11 |
12 |
13 |
14 |
16 | 全部
17 |
18 |
19 |
22 |
23 |
24 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
101 |
102 |
105 |
--------------------------------------------------------------------------------
/src/components/public/footer.vue:
--------------------------------------------------------------------------------
1 |
2 |
120 |
121 |
122 |
127 |
128 |
132 |
--------------------------------------------------------------------------------
/src/components/musicDis_c/taogeList.vue:
--------------------------------------------------------------------------------
1 |
2 |
81 |
82 |
83 |
126 |
127 |
130 |
--------------------------------------------------------------------------------
/src/components/public/style/header.css:
--------------------------------------------------------------------------------
1 | .mod_header {
2 | background-color: #fff;
3 | position: relative;
4 | z-index: 4;
5 | }
6 | .mod_header .section_inner {
7 | padding-top: 90px;
8 | }
9 | .section_inner {
10 | max-width: 1200px;
11 | margin: 0 auto;
12 | position: relative;
13 | }
14 | .qqmusic_title {
15 | position: absolute;
16 | top: 19px;
17 | left: 0;
18 | }
19 | .qqmusic_logo {
20 | width: 190px;
21 | height: 52px;
22 | }
23 | .mod_top_nav {
24 | position: absolute;
25 | top: 0;
26 | left: 225px;
27 | }
28 | .top_nav__item {
29 | float: left;
30 | }
31 | .top_nav_link {
32 | display: block;
33 | padding: 0 20px;
34 | line-height: 90px;
35 | height: 90px;
36 | text-align: center;
37 | font-size: 18px;
38 | }
39 | .top_nav_link:hover {
40 | color: #31c27c;
41 | opacity: .9;
42 | transition: .5s ease-out;
43 | }
44 | .top_nav_link--current,.top_nav_link--current:hover {
45 | background-color: #31c27c;
46 | color: #fff;
47 | }
48 | .mod_top_search {
49 | position: absolute;
50 | top: 0;
51 | right: 294px;
52 | }
53 | .mod_search_input {
54 | border: 1px solid #c9c9c9;
55 | padding: 0 33px 0 15px;
56 | line-height: 36px;
57 | height: 36px;
58 | margin-top: 26px;
59 | position: relative;
60 | border-radius: 3px;
61 | background-color: #fff;
62 | transition: width .6s ease-out;
63 | }
64 | .search_input__input {
65 | width: 200px;
66 | height: 36px;
67 | outline: none;
68 | border: 0 none;
69 | font-size: 14px;
70 | background: 0 0;
71 | transition: width .6s ease-out,visibility .6s 1ms ease-out;
72 | }
73 | .search_input__btn {
74 | position: absolute;
75 | top: 0;
76 | right: 0;
77 | outline: none;
78 | border: 0 none;
79 | cursor: pointer;
80 | width: 38px;
81 | height: 35px;
82 | overflow: visible;
83 | background: 0 0;
84 | }
85 | .icon_search {
86 | position: absolute;
87 | top: 50%;
88 | right: 15px;
89 | margin-top: -8px;
90 | width: 16px;
91 | height: 16px;
92 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);
93 | background-position: 0 -40px;
94 | }
95 | .icon_search:hover {
96 | background-position: 0 -60px;
97 | }
98 | .icon_txt {
99 | font: 0/0 a;
100 | }
101 | .header__opt {
102 | position: absolute;
103 | top: 0;
104 | right: -25px;
105 | height: 90px;
106 | line-height: 90px;
107 | }
108 | .mod_top_login {
109 | font-size: 0;
110 | height: 90px;
111 | line-height: 90px;
112 | }
113 | .avatar {
114 | position: absolute;
115 | height: 50px;
116 | width: 50px;
117 | top: 15px;
118 | left: -70px;
119 | border-radius: 80px;
120 | border: 2px solid rgba(60, 59, 60, .7);
121 | }
122 | .avatar:hover {
123 | cursor: pointer;
124 | transform: scale(1.1);
125 | opacity: .9;
126 | transition: .5s ease-in;
127 | }
128 | .top_login__link {
129 | position: absolute;
130 | font-size: 16px;
131 | float: left;
132 | height: 40px;
133 | width: 40px;
134 | left: -65px;
135 | margin-right: 11px;
136 | text-align: center;
137 | }
138 | .js_login {
139 | margin-top: 30px;
140 | }
141 | .js_login:hover {
142 | color: #31c27c;
143 | }
144 | .top_login__btn_vip {
145 | line-height: 39px;
146 | margin-top: 24px;
147 | padding: 0 11px;
148 | margin-left: 10px;
149 | margin-right: 0;
150 | font-size: 13px;
151 | }
152 | .mod_btn_green {
153 | border: 1px solid #31c27c;
154 | background-color: #31c27c;
155 | color: #fff;
156 | }
157 | .mod_btn_green:hover {
158 | background-color: #2caf6f;
159 | }
160 | .mod_btn {
161 | border: 1px solid #c9c9c9;
162 | color: #333;
163 | }
164 | .mod_btn:hover {
165 | background-color: #ededed;
166 | }
167 | .mod_btn, .mod_btn_green {
168 | border-radius: 2px;
169 | height: 38px;
170 | display: inline-block;
171 | -webkit-box-sizing: border-box;
172 | box-sizing: border-box;
173 | overflow: hidden;
174 | }
175 | .mod_top_subnav {
176 | height: 51px;
177 | line-height: 51px;
178 | border-top: 1px solid #f2f2f2;
179 | padding-left: 256px;
180 | }
181 | .top_subnav__item {
182 | float: left;
183 | font-size: 15px;
184 | color: #c1c1c1;
185 | margin-right: 56px;
186 | }
187 | .top_subnav__link {
188 | cursor: auto;
189 | }
190 | .top_subnav__link--current {
191 | color: #31c27c;
192 | }
193 | .top_subnav__link:hover {
194 | color: #31c27c;
195 | }
196 |
197 | /*搜索下拉框*/
198 | .mod_search_other {
199 | max-height: 0;
200 | visibility: hidden;
201 | transition: max-height .6s ease-out,visibility 1ms .6s;
202 | overflow: hidden;
203 | position: absolute;
204 | top: 63px;
205 | left: 0;
206 | background: #fff;
207 | width: 248px;
208 | border: 1px solid #c9c9c9;
209 | z-index: 8;
210 | text-align: left;
211 | font-size: 14px;
212 | line-height: 36px;
213 | }
214 | .drop {
215 | visibility: visible;
216 | max-height: 300px;
217 | transition: max-height .6s ease-out;
218 | }
219 | .search_hot {
220 | padding: 5px 0;
221 | }
222 | .search_hot__link {
223 | display: block;
224 | overflow: hidden;
225 | white-space: nowrap;
226 | text-overflow: ellipsis;
227 | padding-left: 15px;
228 | line-height: 36px;
229 | padding-right: 15px;
230 | }
231 | .search_hot__link:hover {
232 | background-color: #31c27c;
233 | color: #fff;
234 | }
235 | .search_hot__link .search_hot__number {
236 | color: #ff4222;
237 | float: left;
238 | width: 18px;
239 | }
240 | .search_hot__link .search_hot__name {
241 | float: left;
242 | color: #333;
243 | max-width: 140px;
244 | overflow: hidden;
245 | white-space: mowrap;
246 | text-overflow: ellipsis;
247 | }
248 | .search_hot__link .search_hot__listen {
249 | float: right;
250 | color: #999;
251 | font-size: 12px;
252 | }
253 |
--------------------------------------------------------------------------------
/src/components/artList.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
![]()
6 |
7 |
8 |
{{songList[0].artists[0].name}}
9 |
歌手描述:暂无
10 |
歌曲年份:暂无
11 |
描述:暂无
12 |
13 |
14 |
15 |
16 |
17 |
热门歌曲
18 |
19 |
44 |
45 |
46 |
到底啦~
47 |
48 |
49 |
50 |
85 |
86 |
250 |
--------------------------------------------------------------------------------
/src/components/public/header.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
101 |
102 |
103 |
104 |
157 |
158 |
161 |
--------------------------------------------------------------------------------
/src/pages/player.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
![]()
9 |
10 |
45 |
46 |
47 |
48 |
49 |
50 |
88 |
89 |
263 |
--------------------------------------------------------------------------------
/src/components/musicDis_c/style/newCD.scss:
--------------------------------------------------------------------------------
1 | .mod_index--new {
2 | height: 734px;
3 | .index__hd {
4 | padding-top: 80px;
5 | margin-bottom: 43px;
6 | position: relative;
7 | width: 490px;
8 | height: 48px;
9 | margin: 0 auto 50px;
10 | .index__tit {
11 | font-weight: 400;
12 | text-align: center;
13 | .index__tit_sprite {
14 | width: 193px;
15 | background-position: 0 0;
16 | display: block;
17 | margin: 0 auto;
18 | height: 48px;
19 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/index_tit.png?max_age=2592000&v=ea6515ebb82f7609712c02805e2abe9c);
20 | }
21 | .icon_txt {
22 | font: 0/0 a;
23 | }
24 | }
25 | .index__line {
26 | top: 104px;
27 | position: absolute;
28 | width: 72px;
29 | height: 1px;
30 | opacity: .2;
31 | background-color: #fff;
32 | }
33 | .index__line--left {
34 | left: 0;
35 | }
36 | .index__line--right {
37 | right: 0;
38 | }
39 | }
40 | }
41 | .mod_index {
42 | position: relative;
43 | .section_inner {
44 | z-index: 2;
45 | overflow: hidden;
46 | .index__more {
47 | position: absolute;
48 | right: 0;
49 | top: initial;
50 | }
51 | .index__more:hover {
52 | color: #31c27c;
53 | }
54 | .index__more--white {
55 | font-size: 15px;
56 | color: #fff;
57 | .icon_index_arrow {
58 | background-position: -40px -260px;
59 | display: inline-block;
60 | width: 7px;
61 | height: 12px;
62 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);
63 | margin-left: 6px;
64 | }
65 | .icon_index_arrow:hover {
66 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);
67 | background-position: 0 0;
68 | }
69 | }
70 | .mod_index_tab {
71 | height: 50px;
72 | text-align: center;
73 | font-size: 0;
74 | .index_tab__item {
75 | display: inline-block;
76 | font-size: 16px;
77 | margin: 0 35px;
78 | color: #fff;
79 | opacity: .5;
80 | }
81 | .index_tab__item:hover {
82 | opacity: 1;
83 | }
84 | }
85 | }
86 | }
87 | .mod_playlist {
88 | text-align: center;
89 | .playlist__item {
90 | width: 25%;
91 | background: rgba(0, 0, 0, .8);
92 | font-size: 16px;
93 | padding-bottom: 0;
94 | float: left;
95 | overflow: hidden;
96 | }
97 | .playlist__item:hover {
98 | background-color: #31c27c;
99 | }
100 | .playlist__item:hover + .playlist__item_box > .playlist__title > .btn_opera_menu {
101 | transition: .5s ease-in;
102 | opacity: 1;
103 | }
104 | .playlist__item_box{
105 | height: auto;
106 | margin-right: 0;
107 | position: relative;
108 | .playlist__title {
109 | display: inline-block;
110 | position: relative;
111 | max-width: 75%;
112 | padding: 0 26px;
113 | height: 22px;
114 | margin-bottom: 0;
115 | overflow: hidden;
116 | .playlist__title_txt {
117 | a {
118 | color: #fff;
119 | }
120 | float: none;
121 | display: inline-block;
122 | max-width: 100%;
123 | font-weight: 400;
124 | white-space: nowrap;
125 | overflow: hidden;
126 | text-overflow: ellipsis;
127 | line-height: 22px;
128 | }
129 | .btn_opera_menu {
130 | bottom: 23px;
131 | top: 2px;
132 | display: inline-block;
133 | background-position: -180px -100px;
134 | right: 0;
135 | position: absolute;
136 | width: 20px;
137 | height: 20px;
138 | opacity: 0;
139 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);
140 | }
141 | }
142 | .playlist__author {
143 | margin-bottom: 32px;
144 | line-height: 18px;
145 | a {
146 | color: #c1e9d5;
147 | white-space: nowrap;
148 | overflow: hidden;
149 | text-overflow: ellipsis;
150 | height: 22px;
151 | // &:hover {
152 | // color: #c1e9d5;
153 | // }
154 | }
155 | }
156 | }
157 | .mod_cover {
158 | opacity: .9;
159 | }
160 | .mod_cover:hover > .js_album > .playlist__pic {
161 | transform: scale(1.07);
162 | }
163 | .mod_cover:hover > .js_album > .mod_cover__mask {
164 | opacity: .4;
165 | }
166 | .mod_cover:hover > .js_album > .mod_cover__icon_play {
167 | transform: scale(1);
168 | opacity: 1;
169 | }
170 | .mod_cover:hover + .playlist__title > .btn_opera_menu {
171 | transition: .5s ease-in;
172 | opacity: 1;
173 | }
174 | .mod_cover:hover + .playlist__author > .js_singer {
175 | color: #fff;
176 | }
177 | .playlist__cover {
178 | margin-bottom: 32px;
179 | position: relative;
180 | display: block;
181 | overflow: hidden;
182 | padding-top: 100%;
183 | .playlist__pic {
184 | position: absolute;
185 | top: 0;
186 | left: 0;
187 | width: 100%;
188 | transform: scale(1) translateZ(0);
189 | transition: transform .75s;
190 | }
191 | .mod_cover__mask {
192 | position: absolute;
193 | top: 0;
194 | left: 0;
195 | width: 100%;
196 | height: 100%;
197 | background-color: #000;
198 | opacity: 0;
199 | transition: opacity .5s;
200 | }
201 | .mod_cover__icon_play {
202 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/cover_play.png?max_age=2592000&v=fa72193fd8d5000e90837380d6be93ea);
203 | position: absolute;
204 | top: 50%;
205 | left: 50%;
206 | margin: -35px;
207 | width: 70px;
208 | height: 70px;
209 | opacity: 0;
210 | transform: scale(.7);
211 | transition-property: opacity,transform;
212 | transition-duration: .5s;
213 | zoom: 1;
214 | }
215 | }
216 | }
217 | .mod_slide {
218 | overflow: hidden;
219 | margin-bottom: 25px;
220 | }
221 | .slide__item {
222 | display: inline-block;
223 | }
224 |
225 | // 左右箭头
226 | .mod_slide_action {
227 | position: absolute;
228 | top: 0;
229 | left: 0;
230 | width: 100%;
231 | height: 100%;
232 | overflow: hidden;
233 | .slide_action {
234 | position: absolute;
235 | top: 0;
236 | width: 50%;
237 | height: 100%;
238 | }
239 | .slide_action--left {
240 | left: 0;
241 | }
242 | .slide_action__btn--left {
243 | left: 0;
244 | transform: translateX(-100%);
245 | .slide_action__arrow--left {
246 | left: 28px;
247 | background-position: -180px 0;
248 | }
249 | }
250 | .slide_action--right {
251 | right: 0;
252 | }
253 | .slide_action__btn--right {
254 | right: 0;
255 | transform: translateX(100%);
256 | .slide_action__arrow--right {
257 | right: 28px;
258 | background-position: -160px 0;
259 | }
260 | }
261 | .slide_action__btn {
262 | position: absolute;
263 | top: 50%;
264 | margin-top: -54px;
265 | width: 72px;
266 | height: 108px;
267 | background: rgba(153, 153, 153, .4);
268 | transition-property: opacity, transform;
269 | transition-duration: .5s;
270 | z-index: 2;
271 | }
272 | .slide_action__btn:hover {
273 | transition: .6s ease-out;
274 | background: #31c27c;
275 | }
276 | .slide_action__arrow {
277 | position: absolute;
278 | top: 50%;
279 | margin-top: -9px;
280 | background-image: url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);
281 | width: 11px;
282 | height: 18px;
283 | }
284 | }
285 | // 点线
286 | .mod_slide_switch {
287 | bottom:24px;
288 | width: 100%;
289 | text-align: center;
290 | font-size: 0;
291 | .slide_switch__item {
292 | display: inline-block;
293 | width: 30px;
294 | height: 2px;
295 | padding: 10px 0;
296 | margin: 0 5px;
297 | .slide_switch__bg {
298 | display: block;
299 | width: 100%;
300 | background: rgba(255,255,255,.3);
301 | height: .5px;
302 | &:hover {
303 | color: #fff;
304 | }
305 | }
306 | }
307 | }
308 | .slide_switch__item--current .slide_switch__bg, .slide_switch__item:hover .slide_switch__bg {
309 | filter: none;
310 | background-color: #fff;
311 | }
312 |
--------------------------------------------------------------------------------
/src/components/musicDis_c/topList.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 排行榜
9 |
10 |
11 |
12 |
13 |
14 | 全部
15 |
16 |
17 |
18 |
19 | -
20 |
21 |
22 |
23 |
24 |
32 |
33 | -
34 |
1
35 |
38 |
41 |
42 | -
43 |
1
44 |
47 |
50 |
51 | -
52 |
1
53 |
56 |
59 |
60 |
61 |
62 | -
63 |
64 |
65 |
66 |
67 |
75 |
76 | -
77 |
1
78 |
81 |
84 |
85 | -
86 |
1
87 |
90 |
93 |
94 | -
95 |
1
96 |
99 |
102 |
103 |
104 |
105 | -
106 |
107 |
108 |
109 |
110 |
118 |
119 | -
120 |
1
121 |
124 |
127 |
128 | -
129 |
1
130 |
133 |
136 |
137 | -
138 |
1
139 |
142 |
145 |
146 |
147 |
148 | -
149 |
150 |
151 |
152 |
153 |
161 |
162 | -
163 |
1
164 |
167 |
170 |
171 | -
172 |
1
173 |
176 |
179 |
180 | -
181 |
1
182 |
185 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
203 |
204 |
208 |
--------------------------------------------------------------------------------
/static/js/manifest.d7747395207f3e34b811.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///static/js/manifest.d7747395207f3e34b811.js","webpack:///webpack/bootstrap e6714be2ce28ab226630"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","2","resolvedPromise","Promise","resolve","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","0","1","setTimeout","appendChild","m","c","value","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"CAAS,SAAUA,GCyCnB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QA5DA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,GAAAX,GAAAY,EAAAC,EAAAT,EAAA,EAAAU,KACQV,EAAAK,EAAAM,OAAoBX,IAC5BQ,EAAAH,EAAAL,GACAY,EAAAJ,IACAE,EAAAG,KAAAD,EAAAJ,GAAA,IAEAI,EAAAJ,GAAA,CAEA,KAAAZ,IAAAU,GACAQ,OAAAC,UAAAC,eAAAd,KAAAI,EAAAV,KACAF,EAAAE,GAAAU,EAAAV,GAIA,KADAO,KAAAE,EAAAC,EAAAC,GACAG,EAAAC,QACAD,EAAAO,SAEA,IAAAV,EACA,IAAAP,EAAA,EAAYA,EAAAO,EAAAI,OAA2BX,IACvCS,EAAAd,IAAAuB,EAAAX,EAAAP,GAGA,OAAAS,GAIA,IAAAZ,MAGAe,GACAO,EAAA,GAGAC,EAAA,GAAAC,SAAA,SAAAC,GAAuDA,KA4BvD3B,GAAA4B,EAAA,SAAAf,GA8BA,QAAAgB,KAEAC,EAAAC,QAAAD,EAAAE,OAAA,KACAC,aAAAC,EACA,IAAAC,GAAAlB,EAAAJ,EACA,KAAAsB,IACAA,GACAA,EAAA,MAAAC,OAAA,iBAAAvB,EAAA,aAEAI,EAAAJ,OAAAwB,IAtCA,OAAApB,EAAAJ,GACA,MAAAY,EAIA,IAAAR,EAAAJ,GACA,MAAAI,GAAAJ,GAAA,EAIA,IAAAyB,GAAA,GAAAZ,SAAA,SAAAC,EAAAY,GACAtB,EAAAJ,IAAAc,EAAAY,IAEAtB,GAAAJ,GAAA,GAAAyB,CAGA,IAAAE,GAAAC,SAAAC,qBAAA,WACAZ,EAAAW,SAAAE,cAAA,SACAb,GAAAc,KAAA,kBACAd,EAAAe,QAAA,QACAf,EAAAgB,OAAA,EACAhB,EAAAI,QAAA,KAEAlC,EAAA+C,IACAjB,EAAAkB,aAAA,QAAAhD,EAAA+C,IAEAjB,EAAAmB,IAAAjD,EAAAkD,EAAA,aAAArC,EAAA,KAAwEsC,EAAA,uBAAAC,EAAA,wBAAsDvC,GAAA,KAC9H,IAAAqB,GAAAmB,WAAAxB,EAAA,KAgBA,OAfAC,GAAAC,QAAAD,EAAAE,OAAAH,EAaAW,EAAAc,YAAAxB,GAEAQ,GAIAtC,EAAAuD,EAAAxD,EAGAC,EAAAwD,EAAAtD,EAGAF,EAAAK,EAAA,SAAAoD,GAA2C,MAAAA,IAG3CzD,EAAA0D,EAAA,SAAAvD,EAAAwD,EAAAC,GACA5D,EAAA6D,EAAA1D,EAAAwD,IACAxC,OAAA2C,eAAA3D,EAAAwD,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMA5D,EAAAkE,EAAA,SAAA9D,GACA,GAAAwD,GAAAxD,KAAA+D,WACA,WAA2B,MAAA/D,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAA0D,EAAAE,EAAA,IAAAA,GACAA,GAIA5D,EAAA6D,EAAA,SAAAO,EAAAC,GAAsD,MAAAlD,QAAAC,UAAAC,eAAAd,KAAA6D,EAAAC,IAGtDrE,EAAAkD,EAAA,KAGAlD,EAAAsE,GAAA,SAAAC,GAA8D,KAApBC,SAAAC,MAAAF,GAAoBA","file":"static/js/manifest.d7747395207f3e34b811.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t2: 0\n/******/ \t};\n/******/\n/******/ \tvar resolvedPromise = new Promise(function(resolve) { resolve(); });\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tif(installedChunks[chunkId] === 0) {\n/******/ \t\t\treturn resolvedPromise;\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId]) {\n/******/ \t\t\treturn installedChunks[chunkId][2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunks[chunkId][2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"0e8afee9829afd26b61d\",\"1\":\"2a0d5f9d5d52822b23c0\"}[chunkId] + \".js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"./\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/ })\n/************************************************************************/\n/******/ ([]);\n\n\n// WEBPACK FOOTER //\n// static/js/manifest.d7747395207f3e34b811.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \tvar resolvedPromise = new Promise(function(resolve) { resolve(); });\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0) {\n \t\t\treturn resolvedPromise;\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunks[chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunks[chunkId][2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"0e8afee9829afd26b61d\",\"1\":\"2a0d5f9d5d52822b23c0\"}[chunkId] + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e6714be2ce28ab226630"],"sourceRoot":""}
--------------------------------------------------------------------------------
/static/js/app.0e8afee9829afd26b61d.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([0],[,,,,,,,,,,,function(t,s,i){i(62);var a=i(1)(i(70),i(50),null,null);t.exports=a.exports},,function(t,s,i){"use strict";var a=i(3),_=i(68),e=i(35),l=i.n(e),n=i(41),c=i.n(n),o=i(42),r=i.n(o);a.a.use(_.a),s.a=new _.a({routes:[{path:"/",name:"musicDis",component:l.a},{path:"/myMusic",name:"myMusic",component:c.a},{path:"/player",name:"player",component:r.a}]})},,,,,,,,,,,,,,,,,,,,,,function(t,s,i){i(61);var a=i(1)(i(71),i(49),null,null);t.exports=a.exports},function(t,s,i){i(57);var a=i(1)(i(72),i(45),"data-v-1aced3d2",null);t.exports=a.exports},function(t,s,i){i(66);var a=i(1)(i(73),i(54),"data-v-a1903c04",null);t.exports=a.exports},function(t,s,i){i(63);var a=i(1)(i(74),i(51),"data-v-6ed987bb",null);t.exports=a.exports},function(t,s,i){i(65);var a=i(1)(i(75),i(53),"data-v-7cd64d50",null);t.exports=a.exports},function(t,s,i){i(67);var a=i(1)(i(76),i(55),null,null);t.exports=a.exports},function(t,s,i){i(59);var a=i(1)(i(77),i(47),null,null);t.exports=a.exports},function(t,s,i){i(58);var a=i(1)(i(78),i(46),"data-v-27564d40",null);t.exports=a.exports},function(t,s,i){i(64);var a=i(1)(i(79),i(52),"data-v-70eb005c",null);t.exports=a.exports},function(t,s,i){i(60);var a=i(1)(i(80),i(48),"data-v-2e863878",null);t.exports=a.exports},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement;t._self._c;return t._m(0)},staticRenderFns:[function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_index mod_index--event mod_slide_box",attrs:{id:"focus"}},[i("div",{staticClass:"section_inner"},[i("div",{staticClass:"index__hd"},[i("h2",{staticClass:"index__tit"},[i("i",{staticClass:"index__tit_sprite"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("精彩推荐")])]),t._v(" "),i("i",{staticClass:"index__line index__line--left"}),t._v(" "),i("i",{staticClass:"index__line index__line--right"})]),t._v(" "),i("div",{staticClass:"mod_event mod_slide mod_focus--animate"},[i("ul",{staticClass:"event_list slide__list"},[i("li",{staticClass:"event_list__item slide__item js_focus_pic p1"},[i("a",{staticClass:"event_list__link js_focus_jump",attrs:{href:"javascript:;"}},[i("img",{staticClass:"event_list__pic",attrs:{src:"https://y.gtimg.cn/music/common/upload/t_focus_info_iphone/102445.jpg",alt:""}})])])])]),t._v(" "),i("div",{staticClass:"mod_slide_switch js_focus_index"},[i("a",{staticClass:"slide_switch__item",attrs:{href:"jacascript:;"}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"})]),t._v(" "),i("a",{staticClass:"slide_switch__item",attrs:{href:"jacascript:;"}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"})]),t._v(" "),i("a",{staticClass:"slide_switch__item",attrs:{href:"jacascript:;"}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"})]),t._v(" "),i("a",{staticClass:"slide_switch__item",attrs:{href:"jacascript:;"}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"})]),t._v(" "),i("a",{staticClass:"slide_switch__item",attrs:{href:"jacascript:;"}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"})]),t._v(" "),i("a",{staticClass:"slide_switch__item",attrs:{href:"jacascript:;"}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"})])])]),t._v(" "),i("div",{staticClass:"mod_slide_action"})])}]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"main-bg"},[i("div",{staticClass:"main"},[i("div",{staticClass:"mod_data"},[i("img",{staticClass:"avatar",attrs:{src:t.songList[0].album.picUrl,alt:t.songList[0].album.name}}),t._v(" "),i("div",{staticClass:"data__cont"},[i("div",{staticClass:"data__name"},[i("h1",[t._v(t._s(t.songList[0].artists[0].name))])])])]),t._v(" "),i("div",{staticClass:"mod_part"},[t._m(0),t._v(" "),i("div",{staticClass:"mod_songlist"},[t._m(1),t._v(" "),i("ul",{staticClass:"songlist__list"},t._l(t.songList,function(s,a){return i("li",[i("p",{staticClass:"songNum"},[t._v(t._s(a+1))]),t._v(" "),i("div",{staticClass:"songName"},[i("p",[t._v(t._s(s.name))]),t._v(" "),i("div",{staticClass:"mod_list_menu",staticStyle:{display:"none"}},[i("router-link",{attrs:{to:"/"}},[i("i",{staticClass:"song_play"})]),t._v(" "),i("router-link",{attrs:{to:"/"}},[i("i",{staticClass:"song_download"})])],1)]),t._v(" "),i("p",{staticClass:"songAlbum"},[t._v(t._s(s.album.name))]),t._v(" "),i("p",{staticClass:"songTime"},[t._v(t._s((s.mMusic.playTime/6e4).toFixed(2))+"分钟")])])}))])])])])},staticRenderFns:[function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"part_hd"},[i("h2",[t._v("热门歌曲")]),t._v(" "),i("a",{staticClass:"part_more js_goto_tab",attrs:{href:"#"}},[t._v("\n 全部\n "),i("i",{staticClass:"icon_part_arrow sprite"})])])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("ul",{staticClass:"songlist__header"},[i("li",{staticClass:"songlist__header_name"},[t._v("歌曲")]),t._v(" "),i("li",{staticClass:"songlist__header_album"},[t._v("专辑")]),t._v(" "),i("li",{staticClass:"songlist__header_time"},[t._v("时长")])])}]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"play"},[i("un-login")],1)},staticRenderFns:[]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_header"},[i("div",{staticClass:"section_inner"},[i("h1",{staticClass:"qqmusic_title"},[i("router-link",{attrs:{to:"/"}},[i("img",{staticClass:"qqmusic_logo",attrs:{src:"https://y.gtimg.cn/mediastyle/yqq/img/logo@2x.png",alt:"qqmusic"}})])],1),t._v(" "),i("ul",{staticClass:"mod_top_nav"},[i("li",{staticClass:"top_nav__item top_nav__item--room"},[i("router-link",{staticClass:"top_nav_link top_nav_link--current",attrs:{to:"/"}},[t._v("音乐馆")])],1),t._v(" "),i("li",{staticClass:"top_nav__item top_nav__item--mine"},[i("router-link",{staticClass:"top_nav_link",attrs:{to:"/myMusic"}},[t._v("我的音乐")])],1),t._v(" "),i("li",{staticClass:"top_nav__item top_nav__item--down"},[i("router-link",{staticClass:"top_nav_link",attrs:{to:""}},[t._v("下载客户端")])],1),t._v(" "),i("li",{staticClass:"top_nav__item top_nav__item--vip"},[i("router-link",{staticClass:"top_nav_link",attrs:{to:""}},[t._v("VIP")])],1)]),t._v(" "),i("ul",{staticClass:"mod_top_subnav"},t._l(t.subnav,function(s){return i("li",{staticClass:"top_subnav__item"},[i("a",{staticClass:"top_subnav__link",attrs:{href:s.href}},[t._v(t._s(s.name))])])})),t._v(" "),i("div",{staticClass:"mod_top_search",on:{mouseout:t.schleave}},[i("div",{staticClass:"mod_search_input"},[i("input",{directives:[{name:"model",rawName:"v-model",value:t.keyword,expression:"keyword"}],staticClass:"search_input__input",attrs:{type:"text",placeholder:"先搜一下好吗?"},domProps:{value:t.keyword},on:{click:t.dropmenu,input:function(s){s.target.composing||(t.keyword=s.target.value)}}}),t._v(" "),i("button",{staticClass:"search_input__btn"},[i("i",{staticClass:"icon_search",on:{click:t.search}}),t._v(" "),i("span",{staticClass:"icon_text"})])]),t._v(" "),i("div",{staticClass:"js_smartbox"},[i("div",{staticClass:"mod_search_other",class:t.drop?"drop":""},[t._m(0),t._v(" "),t._m(1)])])]),t._v(" "),t._m(2)])])},staticRenderFns:[function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"search_hot"},[i("dl",{staticClass:"search_hot__list"},[i("dt",{staticClass:"search_hot__tit"},[t._v("热门搜索")]),t._v(" "),i("dd",[i("a",{staticClass:"search_hot__link js_smartbox_search\n js_left",attrs:{href:"javascript:;","data-name":""}},[i("span",{staticClass:"search_hot__number"},[t._v("1")]),t._v(" "),i("span",{staticClass:"search_hot__name"},[t._v("鹿晗")]),t._v(" "),i("span",{staticClass:"search_hot__listen"},[t._v("100.6万")])])])])])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"search_history"},[i("dl",{staticClass:"search_history__list"},[i("dt",{staticClass:"search_history__tit"},[t._v("\n 搜索历史\n "),i("a",{staticClass:"search_history__clear js_smartbox_delete_all",attrs:{href:""}},[i("i",{staticClass:"icon_history_clear"}),t._v(" "),i("span",{staticClass:"icon_txt"},[t._v("清空")])])])])])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"header__opt"},[i("span",{staticClass:"mod_top_login"},[i("a",{staticClass:"top_login__link js_logined",attrs:{href:"y.qq.com"}}),t._v(" "),i("a",{staticClass:"top_login__link js_login",attrs:{href:"#"}},[t._v("登录")]),t._v(" "),i("a",{staticClass:"mod_btn_green top_login__btn_vip js_openvip",attrs:{href:"y.qq.com"}},[t._v("开通绿钻豪华版")]),t._v(" "),i("a",{staticClass:"mod_btn top_login__btn_vip js_openmusic",attrs:{href:"#"}},[t._v("开通付费包")])])])}]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",[i("v-cd"),t._v(" "),i("v-event"),t._v(" "),i("v-toplist"),t._v(" "),i("v-taolist")],1)},staticRenderFns:[]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{attrs:{id:"app"}},[i("v-head"),t._v(" "),i("router-view"),t._v(" "),i("v-foot")],1)},staticRenderFns:[]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_index mod_index--new mod_slide_box",attrs:{id:"albumlist_box"},on:{mouseover:t.arrow,mouseout:t.arrowL}},[i("div",{staticClass:"section_inner"},[t._m(0),t._v(" "),t._m(1),t._v(" "),i("div",{staticClass:"mod_playlist mod_slide"},[i("ul",{staticClass:"playlist__list slide__list",staticStyle:{left:"-1200px"},attrs:{id:"albumlist"}},t._l(t.playList,function(s){return i("li",{staticClass:"playlist__item slide__item"},[i("div",{staticClass:"playlist__item_box"},[i("div",{staticClass:"playlist__cover mod_cover"},[i("a",{staticClass:"js_album",attrs:{href:""}},[i("img",{staticClass:"playlist__pic",attrs:{src:s.src,alt:""}}),t._v(" "),i("i",{staticClass:"mod_cover__mask"}),t._v(" "),i("i",{staticClass:"mod_cover__icon_play js_play"})])]),t._v(" "),i("h4",{staticClass:"playlist__title"},[i("span",{staticClass:"playlist__title_txt"},[i("a",{staticClass:"js_album",attrs:{href:""}},[t._v(t._s(s.title))])]),t._v(" "),t._m(2,!0)]),t._v(" "),i("div",{staticClass:"playlist__author"},[i("a",{staticClass:"js_singer",attrs:{href:"#"}},[t._v(t._s(s.name))])])])])}))]),t._v(" "),t._m(3)]),t._v(" "),t._m(4)])},staticRenderFns:[function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"index__hd"},[i("h2",{staticClass:"index__tit"},[i("i",{staticClass:"index__tit_sprite",staticStyle:{"background-position":"0 -60px"}}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("新碟首发")])]),t._v(" "),i("i",{staticClass:"index__line index__line--left"}),t._v(" "),i("i",{staticClass:"index__line index__line--right"})])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("a",{staticClass:"index__more index__more--white js_album_more",attrs:{href:"y.qq.com/portal/album_lib.html#stat=y_new.index.album.more"}},[t._v("\n 全部\n "),i("i",{staticClass:"icon_index_arrow"})])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("a",{staticClass:"btn_opera_menu js_albumlist_more",attrs:{href:"#"}},[i("span",{staticClass:"icon_txt"},[t._v("更多")])])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_slide_switch js_switch"},[i("a",{staticClass:"js_jump slide_switch__item",attrs:{href:""}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("1")])]),t._v(" "),i("a",{staticClass:"js_jump slide_switch__item",attrs:{href:""}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("1")])]),t._v(" "),i("a",{staticClass:"js_jump slide_switch__item",attrs:{href:""}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("1")])]),t._v(" "),i("a",{staticClass:"js_jump slide_switch__item",attrs:{href:""}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("1")])])])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_slide_action",attrs:{id:"mod_slide_action"}},[i("div",{staticClass:"slide_action slide_action--left"},[i("a",{staticClass:"slide_action__btn\n slide_action__btn--left js_jump",attrs:{href:"javascript:;"}},[i("i",{staticClass:"icon_txt"},[t._v("上一页")]),t._v(" "),i("i",{staticClass:"slide_action__arrow slide_action__arrow--left"})])]),t._v(" "),i("div",{staticClass:"slide_action slide_action--right"},[i("a",{staticClass:"slide_action__btn\n slide_action__btn--right js_jump",attrs:{href:"javascript:;"}},[i("i",{staticClass:"icon_txt"},[t._v("下一页")]),t._v(" "),i("i",{staticClass:"slide_action__arrow slide_action__arrow--right"})])])])}]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement;t._self._c;return t._m(0)},staticRenderFns:[function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"footer"},[i("div",{staticClass:"section_inner"},[i("div",{staticClass:"footer_info"},[i("div",{staticClass:"footer_download"},[i("h3",{staticClass:"footer_tit"},[t._v("下载QQ音乐客户端")]),t._v(" "),i("ul",{staticClass:"footer_download_list"},[i("li",{staticClass:"footer_download_list__item"},[i("a",{staticClass:"js_footer_down",attrs:{href:""}},[i("i",{staticClass:"icon_qm_pc"},[i("span",{staticClass:"icon_txt"},[t._v("QQ音乐")])]),t._v("\n PC版\n ")])]),t._v(" "),i("li",{staticClass:"footer_download_list__item"},[i("a",{staticClass:"js_footer_down",attrs:{href:""}},[i("i",{staticClass:"icon_qm_mac"},[i("span",{staticClass:"icon_txt"},[t._v("QQ音乐")])]),t._v("\n Mac版\n ")])]),i("li",{staticClass:"footer_download_list__item"},[i("a",{staticClass:"js_footer_down",attrs:{href:""}},[i("i",{staticClass:"icon_qm_android"},[i("span",{staticClass:"icon_txt"},[t._v("QQ音乐")])]),t._v("\n Android版\n ")])]),i("li",{staticClass:"footer_download_list__item"},[i("a",{staticClass:"js_footer_down",attrs:{href:""}},[i("i",{staticClass:"icon_qm_iphone"},[i("span",{staticClass:"icon_txt"},[t._v("QQ音乐")])]),t._v("\n Iphone版\n ")])])])]),t._v(" "),i("div",{staticClass:"footer_product"},[i("h3",{staticClass:"footer_tit"},[t._v("特色产品")]),t._v(" "),i("ul",{staticClass:"footer_product_list"},[i("li",{staticClass:"footer_product_list__item footer_product_list__item--pic"},[i("a",{staticClass:"js_other_link",attrs:{href:"#"}},[i("i",{staticClass:"icon_qm_kg"}),t._v("\n 全民K歌\n ")])]),t._v(" "),i("li",{staticClass:"footer_product_list__item footer_product_list__item--pic"},[i("a",{staticClass:"js_other_link",attrs:{href:"#"}},[i("i",{staticClass:"icon_qm_ss"}),t._v("\n Super Sound\n ")])]),t._v(" "),i("li",{staticClass:"footer_product_list__item footer_product_list__item--pic"},[i("a",{staticClass:"js_other_link",attrs:{href:"#"}},[i("i",{staticClass:"icon_qm_qp"}),t._v("\n QPlay\n ")])]),t._v(" "),i("li",{staticClass:"footer_product_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:"#"}},[t._v("\n QQ音乐原创音乐平台\n ")])]),t._v(" "),i("li",{staticClass:"footer_product_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:"#"}},[t._v("\n 上传视频\n ")])]),t._v(" "),i("li",{staticClass:"footer_product_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:"#"}},[t._v("\n 车载互联\n ")])]),t._v(" "),i("li",{staticClass:"footer_product_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:"#"}},[t._v("\n QQ演出\n ")])])])]),t._v(" "),i("div",{staticClass:"footer_link"},[i("h3",{staticClass:"footer_tit"},[t._v("合作链接")]),t._v(" "),i("ul",{staticClass:"footer_link_list"},[i("li",{staticClass:"footer_link_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:""}},[t._v("CJ E&M")])]),t._v(" "),i("li",{staticClass:"footer_link_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:""}},[t._v("腾讯视频")])]),t._v(" "),i("li",{staticClass:"footer_link_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:""}},[t._v("手机QQ空间")])]),t._v(" "),i("li",{staticClass:"footer_link_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:""}},[t._v("最新版QQ")])]),t._v(" "),i("li",{staticClass:"footer_link_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:""}},[t._v("腾讯社交广告")])]),t._v(" "),i("li",{staticClass:"footer_link_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:""}},[t._v("电脑管家")])]),t._v(" "),i("li",{staticClass:"footer_link_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:""}},[t._v("腾讯体育")])]),t._v(" "),i("li",{staticClass:"footer_link_list__item"},[i("a",{staticClass:"js_other_link",attrs:{href:""}},[t._v("腾讯微云")])])])])]),t._v(" "),i("div",{staticClass:"footer_copyright"},[i("p",[i("a",{attrs:{href:""}},[t._v("vue项目")])]),t._v(" "),i("p",[i("a",{attrs:{href:""}},[t._v("Copyright @ tencent")])]),t._v(" "),i("p",[i("a",{attrs:{href:""}},[t._v("jzxer")]),t._v("出品")])])])])}]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement;t._self._c;return t._m(0)},staticRenderFns:[function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{attrs:{id:"toplist_box"}},[i("div",{staticClass:"mod_index mod_index--top mod_slide_box"},[i("div",{staticClass:"section_inner"},[i("div",{staticClass:"index__hd"},[i("h2",{staticClass:"index__tit"},[i("i",{staticClass:"index__tit_sprite"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("排行榜")])]),t._v(" "),i("i",{staticClass:"index__line index__line--left"}),t._v(" "),i("i",{staticClass:"index__line index__line--right"})]),t._v(" "),i("a",{staticClass:"index__more index__more--white",attrs:{href:"#"}},[t._v("\n 全部\n "),i("i",{staticClass:"icon_index_arrow"})]),t._v(" "),i("div",{staticClass:"mod_toplist"},[i("ul",{staticClass:"toplist__list"},[i("li",{staticClass:"toplist__item toplist__item--pop mod_cover"},[i("div",{staticClass:"toplist__bg"}),t._v(" "),i("i",{staticClass:"mod_cover__mask"}),t._v(" "),i("i",{staticClass:"mod_cover__icon_play js_play_toplist"}),t._v(" "),i("i",{staticClass:"toplist__line"}),t._v(" "),i("h3",{staticClass:"toplist__hd"},[i("a",{staticClass:"toplist__tit js_toplist",attrs:{href:"#"}},[i("i",{staticClass:"toplist__tit_top"},[i("i",{staticClass:"icon_txt"},[t._v("巅峰榜")])]),t._v(" "),i("div",{staticClass:"toplist__tit_pop"},[t._v("流行指数")])])]),t._v(" "),i("ul",{staticClass:"toplist__songlist"},[i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])]),t._v(" "),i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])]),t._v(" "),i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])])])]),t._v(" "),i("li",{staticClass:"toplist__item toplist__item--pop mod_cover"},[i("div",{staticClass:"toplist__bg",staticStyle:{"background-position":"-299px 0"}}),t._v(" "),i("i",{staticClass:"mod_cover__mask"}),t._v(" "),i("i",{staticClass:"mod_cover__icon_play js_play_toplist"}),t._v(" "),i("i",{staticClass:"toplist__line"}),t._v(" "),i("h3",{staticClass:"toplist__hd"},[i("a",{staticClass:"toplist__tit js_toplist",attrs:{href:"#"}},[i("i",{staticClass:"toplist__tit_top"},[i("i",{staticClass:"icon_txt"},[t._v("巅峰榜")])]),t._v(" "),i("div",{staticClass:"toplist__tit_pop"},[t._v("热歌")])])]),t._v(" "),i("ul",{staticClass:"toplist__songlist"},[i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])]),t._v(" "),i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])]),t._v(" "),i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])])])]),t._v(" "),i("li",{staticClass:"toplist__item toplist__item--pop mod_cover"},[i("div",{staticClass:"toplist__bg",staticStyle:{"background-position":"-599px 0"}}),t._v(" "),i("i",{staticClass:"mod_cover__mask"}),t._v(" "),i("i",{staticClass:"mod_cover__icon_play js_play_toplist"}),t._v(" "),i("i",{staticClass:"toplist__line"}),t._v(" "),i("h3",{staticClass:"toplist__hd"},[i("a",{staticClass:"toplist__tit js_toplist",attrs:{href:"#"}},[i("i",{staticClass:"toplist__tit_top"},[i("i",{staticClass:"icon_txt"},[t._v("巅峰榜")])]),t._v(" "),i("div",{staticClass:"toplist__tit_pop"},[t._v("新歌")])])]),t._v(" "),i("ul",{staticClass:"toplist__songlist"},[i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])]),t._v(" "),i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])]),t._v(" "),i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])])])]),t._v(" "),i("li",{staticClass:"toplist__item toplist__item--pop mod_cover"},[i("div",{staticClass:"toplist__bg",staticStyle:{"background-position":"-899px 0"}}),t._v(" "),i("i",{staticClass:"mod_cover__mask"}),t._v(" "),i("i",{staticClass:"mod_cover__icon_play js_play_toplist"}),t._v(" "),i("i",{staticClass:"toplist__line"}),t._v(" "),i("h3",{staticClass:"toplist__hd"},[i("a",{staticClass:"toplist__tit js_toplist",attrs:{href:"#"}},[i("i",{staticClass:"toplist__tit_top"},[i("i",{staticClass:"icon_txt"},[t._v("巅峰榜")])]),t._v(" "),i("div",{staticClass:"toplist__tit_pop"},[t._v("欧美")])])]),t._v(" "),i("ul",{staticClass:"toplist__songlist"},[i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])]),t._v(" "),i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])]),t._v(" "),i("li",{staticClass:"toplist__song"},[i("div",{staticClass:"toplist__number"},[t._v("1")]),t._v(" "),i("div",{staticClass:"toplist__songname"},[i("a",{staticClass:"js_song",attrs:{href:"#"}},[t._v("望")])]),t._v(" "),i("div",{staticClass:"toplist__artist"},[i("a",{staticClass:"js_singers",attrs:{href:"#"}},[t._v("张碧晨/赵丽颖")])])])])])])])])])])}]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_index mod_index--new mod_slide_box",staticStyle:{background:"#000 url(https://y.gtimg.cn/mediastyle/yqq/img/bg_index_new.jpg) 50% 0 repeat-x"},attrs:{id:"albumlist_box"},on:{mouseover:t.arrow,mouseout:t.arrowL}},[i("div",{staticClass:"section_inner"},[t._m(0),t._v(" "),t._m(1),t._v(" "),i("div",{staticClass:"mod_index_tab"},t._l(t.navList,function(s){return i("a",{staticClass:"index_tab__item js_tab",attrs:{href:""}},[t._v(t._s(s))])})),t._v(" "),i("div",{staticClass:"mod_playlist mod_slide"},[i("ul",{staticClass:"playlist__list slide__list",staticStyle:{left:"-1200px"},attrs:{id:"albumlist"}},t._l(t.playList,function(s){return i("li",{staticClass:"playlist__item slide__item"},[i("div",{staticClass:"playlist__item_box"},[i("div",{staticClass:"playlist__cover mod_cover"},[i("a",{staticClass:"js_album",attrs:{href:""}},[i("img",{staticClass:"playlist__pic",attrs:{src:s.src,alt:""}}),t._v(" "),i("i",{staticClass:"mod_cover__mask"}),t._v(" "),i("i",{staticClass:"mod_cover__icon_play js_play"})])]),t._v(" "),i("h4",{staticClass:"playlist__title"},[i("span",{staticClass:"playlist__title_txt"},[i("a",{staticClass:"js_album",attrs:{href:""}},[t._v(t._s(s.title))])]),t._v(" "),t._m(2,!0)]),t._v(" "),i("div",{staticClass:"playlist__author"},[i("a",{staticClass:"js_singer",attrs:{href:"#"}},[t._v(t._s(s.name))])])])])}))]),t._v(" "),t._m(3)]),t._v(" "),t._m(4)])},staticRenderFns:[function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"index__hd"},[i("h2",{staticClass:"index__tit"},[i("i",{staticClass:"index__tit_sprite"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("新碟首发")])]),t._v(" "),i("i",{staticClass:"index__line index__line--left"}),t._v(" "),i("i",{staticClass:"index__line index__line--right"})])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("a",{staticClass:"index__more index__more--white js_album_more",attrs:{href:"y.qq.com/portal/album_lib.html#stat=y_new.index.album.more"}},[t._v("\n 全部\n "),i("i",{staticClass:"icon_index_arrow"})])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("a",{staticClass:"btn_opera_menu js_albumlist_more",attrs:{href:"#"}},[i("span",{staticClass:"icon_txt"},[t._v("更多")])])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_slide_switch js_switch"},[i("a",{staticClass:"js_jump slide_switch__item",attrs:{href:""}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("1")])]),t._v(" "),i("a",{staticClass:"js_jump slide_switch__item",attrs:{href:""}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("1")])]),t._v(" "),i("a",{staticClass:"js_jump slide_switch__item",attrs:{href:""}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("1")])]),t._v(" "),i("a",{staticClass:"js_jump slide_switch__item",attrs:{href:""}},[i("i",{staticClass:"slide_switch__bg"}),t._v(" "),i("i",{staticClass:"icon_txt"},[t._v("1")])])])},function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_slide_action",attrs:{id:"mod_slide_action"}},[i("div",{staticClass:"slide_action slide_action--left"},[i("a",{staticClass:"slide_action__btn\n slide_action__btn--left js_jump",attrs:{href:"javascript:;"}},[i("i",{staticClass:"icon_txt"},[t._v("上一页")]),t._v(" "),i("i",{staticClass:"slide_action__arrow slide_action__arrow--left"})])]),t._v(" "),i("div",{staticClass:"slide_action slide_action--right"},[i("a",{staticClass:"slide_action__btn\n slide_action__btn--right js_jump",attrs:{href:"javascript:;"}},[i("i",{staticClass:"icon_txt"},[t._v("下一页")]),t._v(" "),i("i",{staticClass:"slide_action__arrow slide_action__arrow--right"})])])])}]}},function(t,s){t.exports={render:function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("div",{staticClass:"mod_profile_unlogin"},[i("div",{staticClass:"section_inner"},[t._m(0),t._v(" "),i("div",{staticClass:"profile_unlogin__desc"}),t._v(" "),i("router-link",{staticClass:"mod_btn_green profile_unlogin__btn js_login",attrs:{to:"/"}},[t._v("立即登录")])],1)])},staticRenderFns:[function(){var t=this,s=t.$createElement,i=t._self._c||s;return i("h2",{staticClass:"profile_unlogin__tit"},[i("div",{staticClass:"icon_txt"},[t._v("听我喜欢听的歌")])])}]}},,function(t,s){},function(t,s){},function(t,s){},function(t,s){},function(t,s){},function(t,s){},function(t,s){},function(t,s){},function(t,s){},function(t,s){},function(t,s){},,,function(t,s,i){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var a=i(44),_=i.n(a),e=i(43),l=i.n(e);s.default={name:"app",components:{vHead:_.a,vFoot:l.a}}},function(t,s,i){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var a=i(37),_=i.n(a),e=i(36),l=i.n(e),n=i(39),c=i.n(n),o=i(38),r=i.n(o);s.default={data:function(){return{}},components:{"v-cd":_.a,"v-event":l.a,"v-toplist":c.a,"v-taolist":r.a}}},function(t,s,i){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.default={}},function(t,s,i){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.default={data:function(){return{navList:["内地","港台","欧美","韩国","日本"],playList:[{src:"https://y.gtimg.cn/music/photo_new/T002R300x300M000000mbhaG00NiAJ.jpg?max_age=2592000",title:"望",name:"张碧晨"},{src:"https://y.gtimg.cn/music/photo_new/T002R300x300M000000klxir01BBlq.jpg?max_age=2592000",title:"揭穿",name:"黄子韬"},{src:"https://y.gtimg.cn/music/photo_new/T002R300x300M0000004ScoT0orlN2.jpg?max_age=2592000",title:"金曲捞 第七期",name:"金曲捞"},{src:"https://y.gtimg.cn/music/photo_new/T002R300x300M000001B4oow41ntZj.jpg?max_age=2592000",title:"从心出发",name:"庄心妍"}]}},methods:{arrow:function(){for(var t=document.querySelectorAll(".slide_action__btn"),s=0;s",components:{App:e.a}})}],[81]);
2 | //# sourceMappingURL=app.0e8afee9829afd26b61d.js.map
--------------------------------------------------------------------------------
/static/css/app.4f0d91c3db84edcc65ee711f11c45cc2.css:
--------------------------------------------------------------------------------
1 | *{margin:0;padding:0}body{min-width:1240px;overflow-y:scroll}a,body,button,input,select,textarea,th{color:#000;font-size:14px;line-height:1.5;font-family:poppin,PingFang SC,Tahoma,Arial,sans-serif}li{list-style:none}a{text-decoration:none}img{border:0 none}.mod_header{background-color:#fff;position:relative;z-index:4}.mod_header .section_inner{padding-top:90px}.section_inner{max-width:1200px;margin:0 auto;position:relative}.qqmusic_title{position:absolute;top:19px;left:0}.qqmusic_logo{width:190px;height:52px}.mod_top_nav{position:absolute;top:0;left:225px}.top_nav__item{float:left}.top_nav_link{display:block;padding:0 20px;line-height:90px;height:90px;text-align:center;font-size:18px}.top_nav_link:hover{color:#31c27c}.top_nav_link--current,.top_nav_link--current:hover{background-color:#31c27c;color:#fff}.mod_top_search{position:absolute;top:0;right:294px}.mod_search_input{border:1px solid #c9c9c9;padding:0 33px 0 15px;line-height:36px;height:36px;margin-top:26px;position:relative;border-radius:3px;background-color:#fff;transition:width .6s ease-out}.search_input__input{width:200px;height:36px;font-size:14px;transition:width .6s ease-out,visibility .6s ease-out 1ms}.search_input__btn,.search_input__input{outline:none;border:0 none;background:0 0}.search_input__btn{position:absolute;top:0;right:0;cursor:pointer;width:38px;height:35px;overflow:visible}.icon_search{position:absolute;top:50%;right:15px;margin-top:-8px;width:16px;height:16px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);background-position:0 -40px}.icon_search:hover{background-position:0 -60px}.icon_txt{font:0/0 a}.header__opt{position:absolute;top:0;right:-56px}.header__opt,.mod_top_login{height:90px;line-height:90px}.mod_top_login{font-size:0}.top_login__link{position:relative;font-size:16px;float:left;width:38px;margin-right:11px;text-align:center}.js_login{margin-top:30px}.js_login:hover{color:#31c27c}.top_login__btn_vip{line-height:39px;margin-top:24px;padding:0 11px;margin-left:10px;margin-right:0;font-size:13px}.mod_btn_green{border:1px solid #31c27c;background-color:#31c27c;color:#fff}.mod_btn_green:hover{background-color:#2caf6f}.mod_btn{border:1px solid #c9c9c9;color:#333}.mod_btn:hover{background-color:#ededed}.mod_btn,.mod_btn_green{border-radius:2px;height:38px;display:inline-block;box-sizing:border-box;overflow:hidden}.mod_top_subnav{height:51px;line-height:51px;border-top:1px solid #f2f2f2;padding-left:256px}.top_subnav__item{float:left;font-size:15px;color:#c1c1c1;margin-right:56px}.top_subnav__link{cursor:auto}.top_subnav__link:hover{color:#31c27c}.mod_search_other{max-height:0;visibility:hidden;transition:max-height .6s ease-out,visibility 1ms .6s;overflow:hidden;position:absolute;top:63px;left:0;background:#fff;width:248px;border:1px solid #c9c9c9;z-index:8;text-align:left;font-size:14px;line-height:36px}.drop{visibility:visible;max-height:300px;transition:max-height .6s ease-out}.search_hot{padding:5px 0}.search_hot__link{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:15px;padding-right:15px}.search_hot__link .search_hot__number{color:#ff4222;float:left;width:18px}.search_hot__link .search_hot__name{float:left;color:#333;max-width:140px;overflow:hidden;white-space:mowrap;text-overflow:ellipsis}.search_hot__link .search_hot__listen{float:right;color:#999;font-size:12px}.mod_index[data-v-70eb005c]{position:relative}.mod_index .section_inner[data-v-70eb005c]{z-index:2;overflow:hidden;max-width:1200px;margin:0 auto;position:relative}.mod_index .section_inner .index__hd[data-v-70eb005c]{position:relative;width:490px;height:48px;padding-top:80px;margin:0 auto 50px}.mod_index .section_inner .index__hd .index__tit[data-v-70eb005c]{font-weight:400;text-align:center}.mod_index .section_inner .index__hd .index__tit .index__tit_sprite[data-v-70eb005c]{width:193px;display:block;margin:0 auto;height:48px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/index_tit.png?max_age=2592000&v=ea6515ebb82f7609712c02805e2abe9c)}.index__line[data-v-70eb005c]{position:absolute;top:104px;width:72px;height:1px;opacity:.1}.index__line--left[data-v-70eb005c]{left:0}.index__line--right[data-v-70eb005c]{right:0}.mod_slide_switch[data-v-70eb005c]{width:100%;text-align:center;font-size:0}.mod_slide_switch .slide_switch__item[data-v-70eb005c]{display:inline-block;width:30px;height:2px;padding:10px 0;margin:0 5px}.mod_slide_switch .slide_switch__item .slide_switch__bg[data-v-70eb005c]{background:hsla(0,0%,8%,.3);display:block;width:100%;height:1px}.index__more[data-v-70eb005c]{position:absolute;right:0}.index__more[data-v-70eb005c]:hover{color:#31c27c}.index__more--white[data-v-70eb005c]{font-size:15px;color:#fff}.index__more--white .icon_index_arrow[data-v-70eb005c]{background-position:-40px -260px;display:inline-block;width:7px;height:12px;margin-left:6px}.index__more--white .icon_index_arrow[data-v-70eb005c],.index__more--white .icon_index_arrow[data-v-70eb005c]:hover{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40)}.index__more--white .icon_index_arrow[data-v-70eb005c]:hover{background-position:0 0}.mod_cover[data-v-70eb005c]{opacity:.9;zoom:1}.mod_cover:hover>.playlist__pic[data-v-70eb005c],.mod_cover:hover>.toplist__bg[data-v-70eb005c]{-webkit-transform:scale(1.07);transform:scale(1.07)}.mod_cover:hover>.mod_cover__mask[data-v-70eb005c]{opacity:.4}.mod_cover:hover>.mod_cover__icon_play[data-v-70eb005c]{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mod_cover:hover>.toplist__line[data-v-70eb005c]{opacity:0}.mod_cover:hover+.playlist__title>.btn_opera_menu[data-v-70eb005c]{transition:.5s ease-in;opacity:1}.mod_cover__mask[data-v-70eb005c]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:0;transition:opacity .5s}.mod_cover__icon_play[data-v-70eb005c]{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/cover_play.png?max_age=2592000&v=fa72193fd8d5000e90837380d6be93ea);position:absolute;top:50%;left:50%;margin:-35px;width:70px;height:70px;opacity:0;-webkit-transform:scale(.7);transform:scale(.7);transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;transition-duration:.5s;zoom:1}.footer[data-v-70eb005c]{color:#999;background-color:#333;clear:both;height:450px}.footer a[data-v-70eb005c]{color:#999}.footer a[data-v-70eb005c]:hover{color:#31c27c}.footer .section_inner[data-v-70eb005c]{max-width:1200px;margin:0 auto;position:relative}.footer .section_inner .footer_tit[data-v-70eb005c]{font-size:15px;font-weight:400;padding:80px 0 46px}.footer .section_inner .icon_qm_android[data-v-70eb005c],.footer .section_inner .icon_qm_iphone[data-v-70eb005c],.footer .section_inner .icon_qm_kg[data-v-70eb005c],.footer .section_inner .icon_qm_mac[data-v-70eb005c],.footer .section_inner .icon_qm_pc[data-v-70eb005c],.footer .section_inner .icon_qm_qp[data-v-70eb005c],.footer .section_inner .icon_qm_ss[data-v-70eb005c]{display:block;margin:0 29px 12px;height:48px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/footer.png?max_age=2592000&v=4739050c9bfc2db438241313ce65f4bf)}.footer .footer_info[data-v-70eb005c]{overflow:hidden;border-bottom:1px solid #353535;position:relative}.footer_download[data-v-70eb005c]{position:absolute;top:0;left:10px}.footer_download .footer_download_list[data-v-70eb005c]{margin-left:-29px}.footer_download .footer_download_list .footer_download_list__item[data-v-70eb005c]{float:left;text-align:center;position:relative}.footer_download .footer_download_list .footer_download_list__item .icon_qm_pc[data-v-70eb005c]{width:37px;background-position:-2px 0}.footer_download .footer_download_list .footer_download_list__item .icon_qm_pc[data-v-70eb005c]:hover{background-position:-2px -50px}.footer_download .footer_download_list .footer_download_list__item .icon_qm_mac[data-v-70eb005c]{width:46px;background-position:-92px 0}.footer_download .footer_download_list .footer_download_list__item .icon_qm_mac[data-v-70eb005c]:hover{background-position:-92px -50px}.footer_download .footer_download_list .footer_download_list__item .icon_qm_android[data-v-70eb005c]{width:37px;background-position:-190px 0}.footer_download .footer_download_list .footer_download_list__item .icon_qm_android[data-v-70eb005c]:hover{background-position:-190px -50px}.footer_download .footer_download_list .footer_download_list__item .icon_qm_iphone[data-v-70eb005c]{width:34px;background-position:-279px 0}.footer_download .footer_download_list .footer_download_list__item .icon_qm_iphone[data-v-70eb005c]:hover{background-position:-279px -50px}.footer_product[data-v-70eb005c]{position:absolute;top:0;left:476px;width:304px}.footer_product .footer_product_list[data-v-70eb005c]{margin-left:-25px}.footer_product .footer_product_list .footer_product_list__item[data-v-70eb005c]{float:left;margin-bottom:18px;text-indent:25px;margin-right:5px}.footer_product .footer_product_list .footer_product_list__item--pic[data-v-70eb005c]{text-align:center;position:relative;margin-right:0;text-indent:0}.footer_product .footer_product_list .footer_product_list__item--pic .icon_qm_kg[data-v-70eb005c]{width:41px;background-position:-370px 0}.footer_product .footer_product_list .footer_product_list__item--pic .icon_qm_kg[data-v-70eb005c]:hover{background-position:-370px 47px}.footer_product .footer_product_list .footer_product_list__item--pic .icon_qm_ss[data-v-70eb005c]{width:37px;background-position:-463px 0}.footer_product .footer_product_list .footer_product_list__item--pic .icon_qm_ss[data-v-70eb005c]:hover{background-position:-463px 47px}.footer_product .footer_product_list .footer_product_list__item--pic .icon_qm_qp[data-v-70eb005c]{margin-right:23px;width:40px;background-position:-563px 0}.footer_product .footer_product_list .footer_product_list__item--pic .icon_qm_qp[data-v-70eb005c]:hover{background-position:-563px 47px}.footer_link[data-v-70eb005c]{float:right;width:300px;padding-bottom:57px}.footer_link .footer_link_list__item[data-v-70eb005c]{float:left;min-width:100px;margin-bottom:12px}.footer_copyright[data-v-70eb005c]{text-align:center;line-height:28px;padding:24px 0}.mod_index--new[data-v-a1903c04]{height:734px}.mod_index--new .index__hd[data-v-a1903c04]{padding-top:80px;margin-bottom:43px;position:relative;width:490px;height:48px;margin:0 auto 50px}.mod_index--new .index__hd .index__tit[data-v-a1903c04]{font-weight:400;text-align:center}.mod_index--new .index__hd .index__tit .index__tit_sprite[data-v-a1903c04]{width:193px;background-position:0 0;display:block;margin:0 auto;height:48px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/index_tit.png?max_age=2592000&v=ea6515ebb82f7609712c02805e2abe9c)}.mod_index--new .index__hd .index__tit .icon_txt[data-v-a1903c04]{font:0/0 a}.mod_index--new .index__hd .index__line[data-v-a1903c04]{top:104px;position:absolute;width:72px;height:1px;opacity:.2;background-color:#fff}.mod_index--new .index__hd .index__line--left[data-v-a1903c04]{left:0}.mod_index--new .index__hd .index__line--right[data-v-a1903c04]{right:0}.mod_index[data-v-a1903c04]{position:relative}.mod_index .section_inner[data-v-a1903c04]{z-index:2;overflow:hidden}.mod_index .section_inner .index__more[data-v-a1903c04]{position:absolute;right:0;top:auto}.mod_index .section_inner .index__more[data-v-a1903c04]:hover{color:#31c27c}.mod_index .section_inner .index__more--white[data-v-a1903c04]{font-size:15px;color:#fff}.mod_index .section_inner .index__more--white .icon_index_arrow[data-v-a1903c04]{background-position:-40px -260px;display:inline-block;width:7px;height:12px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);margin-left:6px}.mod_index .section_inner .index__more--white .icon_index_arrow[data-v-a1903c04]:hover{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);background-position:0 0}.mod_index .section_inner .mod_index_tab[data-v-a1903c04]{height:50px;text-align:center;font-size:0}.mod_index .section_inner .mod_index_tab .index_tab__item[data-v-a1903c04]{display:inline-block;font-size:16px;margin:0 35px;color:#fff;opacity:.5}.mod_index .section_inner .mod_index_tab .index_tab__item[data-v-a1903c04]:hover{opacity:1}.mod_playlist[data-v-a1903c04]{text-align:center}.mod_playlist .playlist__item[data-v-a1903c04]{width:25%;background:rgba(0,0,0,.8);font-size:16px;padding-bottom:0;float:left;overflow:hidden}.mod_playlist .playlist__item[data-v-a1903c04]:hover{background-color:#31c27c}.mod_playlist .playlist__item:hover+.playlist__item_box>.playlist__title>.btn_opera_menu[data-v-a1903c04]{transition:.5s ease-in;opacity:1}.mod_playlist .playlist__item_box[data-v-a1903c04]{height:auto;margin-right:0;position:relative}.mod_playlist .playlist__item_box .playlist__title[data-v-a1903c04]{display:inline-block;position:relative;max-width:75%;padding:0 26px;height:22px;margin-bottom:0;overflow:hidden}.mod_playlist .playlist__item_box .playlist__title .playlist__title_txt[data-v-a1903c04]{float:none;display:inline-block;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px}.mod_playlist .playlist__item_box .playlist__title .playlist__title_txt a[data-v-a1903c04]{color:#fff}.mod_playlist .playlist__item_box .playlist__title .btn_opera_menu[data-v-a1903c04]{bottom:23px;top:2px;display:inline-block;background-position:-180px -100px;right:0;position:absolute;width:20px;height:20px;opacity:0;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40)}.mod_playlist .playlist__item_box .playlist__author[data-v-a1903c04]{margin-bottom:32px;line-height:18px}.mod_playlist .playlist__item_box .playlist__author a[data-v-a1903c04]{color:#c1e9d5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:22px}.mod_playlist .mod_cover[data-v-a1903c04]{opacity:.9}.mod_playlist .mod_cover:hover>.js_album>.playlist__pic[data-v-a1903c04]{-webkit-transform:scale(1.07);transform:scale(1.07)}.mod_playlist .mod_cover:hover>.js_album>.mod_cover__mask[data-v-a1903c04]{opacity:.4}.mod_playlist .mod_cover:hover>.js_album>.mod_cover__icon_play[data-v-a1903c04]{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mod_playlist .mod_cover:hover+.playlist__title>.btn_opera_menu[data-v-a1903c04]{transition:.5s ease-in;opacity:1}.mod_playlist .mod_cover:hover+.playlist__author>.js_singer[data-v-a1903c04]{color:#fff}.mod_playlist .playlist__cover[data-v-a1903c04]{margin-bottom:32px;position:relative;display:block;overflow:hidden;padding-top:100%}.mod_playlist .playlist__cover .playlist__pic[data-v-a1903c04]{position:absolute;top:0;left:0;width:100%;-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);transition:-webkit-transform .75s;transition:transform .75s;transition:transform .75s,-webkit-transform .75s}.mod_playlist .playlist__cover .mod_cover__mask[data-v-a1903c04]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:0;transition:opacity .5s}.mod_playlist .playlist__cover .mod_cover__icon_play[data-v-a1903c04]{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/cover_play.png?max_age=2592000&v=fa72193fd8d5000e90837380d6be93ea);position:absolute;top:50%;left:50%;margin:-35px;width:70px;height:70px;opacity:0;-webkit-transform:scale(.7);transform:scale(.7);transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;transition-duration:.5s;zoom:1}.mod_slide[data-v-a1903c04]{overflow:hidden;margin-bottom:25px}.slide__item[data-v-a1903c04]{display:inline-block}.mod_slide_action[data-v-a1903c04]{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.mod_slide_action .slide_action[data-v-a1903c04]{position:absolute;top:0;width:50%;height:100%}.mod_slide_action .slide_action--left[data-v-a1903c04]{left:0}.mod_slide_action .slide_action__btn--left[data-v-a1903c04]{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mod_slide_action .slide_action__btn--left .slide_action__arrow--left[data-v-a1903c04]{left:28px;background-position:-180px 0}.mod_slide_action .slide_action--right[data-v-a1903c04]{right:0}.mod_slide_action .slide_action__btn--right[data-v-a1903c04]{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.mod_slide_action .slide_action__btn--right .slide_action__arrow--right[data-v-a1903c04]{right:28px;background-position:-160px 0}.mod_slide_action .slide_action__btn[data-v-a1903c04]{position:absolute;top:50%;margin-top:-54px;width:72px;height:108px;background:hsla(0,0%,60%,.4);transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;transition-duration:.5s;z-index:2}.mod_slide_action .slide_action__btn[data-v-a1903c04]:hover{transition:.6s ease-out;background:#31c27c}.mod_slide_action .slide_action__arrow[data-v-a1903c04]{position:absolute;top:50%;margin-top:-9px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);width:11px;height:18px}.mod_slide_switch[data-v-a1903c04]{bottom:24px;width:100%;text-align:center;font-size:0}.mod_slide_switch .slide_switch__item[data-v-a1903c04]{display:inline-block;width:30px;height:2px;padding:10px 0;margin:0 5px}.mod_slide_switch .slide_switch__item .slide_switch__bg[data-v-a1903c04]{display:block;width:100%;background:hsla(0,0%,100%,.3);height:.5px}.mod_slide_switch .slide_switch__item .slide_switch__bg[data-v-a1903c04]:hover{color:#fff}.slide_switch__item--current .slide_switch__bg[data-v-a1903c04],.slide_switch__item:hover .slide_switch__bg[data-v-a1903c04]{-webkit-filter:none;filter:none;background-color:#fff}.mod_index--event .section_inner[data-v-1aced3d2]{height:610px}.index__tit_sprite[data-v-1aced3d2]{background-position:0 -240px}.index__line[data-v-1aced3d2]{background-color:#000}.mod_slide[data-v-1aced3d2]{overflow:hidden;margin-bottom:25px}.mod_slide .event_list[data-v-1aced3d2]{width:100%;height:325px}.mod_slide .slide__list[data-v-1aced3d2]{position:relative;font-size:0}.mod_slide .slide__list .event_list__item[data-v-1aced3d2]{position:absolute;top:0;left:0;width:751px;height:300px;opacity:.8;z-index:1;transition:all .3s ease-out}.mod_slide .slide__list .slide__item[data-v-1aced3d2]{display:inline-block}.event_list__pic[data-v-1aced3d2]{width:100%}.mod_index[data-v-1aced3d2]{position:relative}.mod_index .section_inner[data-v-1aced3d2]{z-index:2;overflow:hidden;max-width:1200px;margin:0 auto;position:relative}.mod_index .section_inner .index__hd[data-v-1aced3d2]{position:relative;width:490px;height:48px;padding-top:80px;margin:0 auto 50px}.mod_index .section_inner .index__hd .index__tit[data-v-1aced3d2]{font-weight:400;text-align:center}.mod_index .section_inner .index__hd .index__tit .index__tit_sprite[data-v-1aced3d2]{width:193px;display:block;margin:0 auto;height:48px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/index_tit.png?max_age=2592000&v=ea6515ebb82f7609712c02805e2abe9c)}.index__line[data-v-1aced3d2]{position:absolute;top:104px;width:72px;height:1px;opacity:.1}.index__line--left[data-v-1aced3d2]{left:0}.index__line--right[data-v-1aced3d2]{right:0}.mod_slide_switch[data-v-1aced3d2]{width:100%;text-align:center;font-size:0}.mod_slide_switch .slide_switch__item[data-v-1aced3d2]{display:inline-block;width:30px;height:2px;padding:10px 0;margin:0 5px}.mod_slide_switch .slide_switch__item .slide_switch__bg[data-v-1aced3d2]{background:hsla(0,0%,8%,.3);display:block;width:100%;height:1px}.index__more[data-v-1aced3d2]{position:absolute;right:0}.index__more[data-v-1aced3d2]:hover{color:#31c27c}.index__more--white[data-v-1aced3d2]{font-size:15px;color:#fff}.index__more--white .icon_index_arrow[data-v-1aced3d2]{background-position:-40px -260px;display:inline-block;width:7px;height:12px;margin-left:6px}.index__more--white .icon_index_arrow[data-v-1aced3d2],.index__more--white .icon_index_arrow[data-v-1aced3d2]:hover{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40)}.index__more--white .icon_index_arrow[data-v-1aced3d2]:hover{background-position:0 0}.mod_cover[data-v-1aced3d2]{opacity:.9;zoom:1}.mod_cover:hover>.playlist__pic[data-v-1aced3d2],.mod_cover:hover>.toplist__bg[data-v-1aced3d2]{-webkit-transform:scale(1.07);transform:scale(1.07)}.mod_cover:hover>.mod_cover__mask[data-v-1aced3d2]{opacity:.4}.mod_cover:hover>.mod_cover__icon_play[data-v-1aced3d2]{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mod_cover:hover>.toplist__line[data-v-1aced3d2]{opacity:0}.mod_cover:hover+.playlist__title>.btn_opera_menu[data-v-1aced3d2]{transition:.5s ease-in;opacity:1}.mod_cover__mask[data-v-1aced3d2]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:0;transition:opacity .5s}.mod_cover__icon_play[data-v-1aced3d2]{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/cover_play.png?max_age=2592000&v=fa72193fd8d5000e90837380d6be93ea);position:absolute;top:50%;left:50%;margin:-35px;width:70px;height:70px;opacity:0;-webkit-transform:scale(.7);transform:scale(.7);transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;transition-duration:.5s;zoom:1}.mod_index--top[data-v-7cd64d50]{background:#121212 url(https://y.gtimg.cn/mediastyle/yqq/img/bg_index_top2.jpg) 50% 0 no-repeat}.mod_index--top .section_inner[data-v-7cd64d50]{height:830px}.mod_index--top .index__tit_sprite[data-v-7cd64d50]{width:144px;background-position:0 -120px}.index__line[data-v-7cd64d50]{background-color:#fff}.toplist__item[data-v-7cd64d50]{position:relative;float:left;z-index:2;width:25%;height:567px;overflow:hidden}.toplist__item .toplist__bg[data-v-7cd64d50]{-webkit-transform:scale(1);transform:scale(1);transition:-webkit-transform .75s;transition:transform .75s;transition:transform .75s,-webkit-transform .75s;position:absolute;top:0;left:0;width:100%;height:567px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/bg_index_top.jpg?max_age=2592000&v=2591d4829162dfda6b9112c771edda86)}.toplist__item .mod_cover__icon_play[data-v-7cd64d50]{top:214px}.toplist__item .toplist__line[data-v-7cd64d50]{position:absolute;left:50%;top:215px;margin-left:-31px;width:62px;height:2px;background:hsla(0,0%,100%,.3)}.toplist__item .toplist__hd[data-v-7cd64d50]{position:absolute;top:80px;left:50%;margin-left:-100px;width:200px;height:110px;text-align:center}.toplist__item .toplist__hd .toplist__tit_top[data-v-7cd64d50]{display:block;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/index_tit.png?max_age=2592000&v=ea6515ebb82f7609712c02805e2abe9c);margin-left:auto;margin-right:auto;width:66px;height:24px;background-position:0 -300px;margin-bottom:8px}.toplist__item .toplist__hd .toplist__tit_pop[data-v-7cd64d50]{height:36px;line-height:1;font-size:36px;color:#fff;font-weight:400}.toplist__songlist[data-v-7cd64d50]{position:absolute;top:282px;left:50%;margin-left:-90px;width:180px;white-space:nowrap}.toplist__songlist .toplist__song[data-v-7cd64d50]{position:relative;padding-left:15px;margin-bottom:10px;color:#fff}.toplist__songlist .toplist__song .toplist__number[data-v-7cd64d50]{position:absolute;top:0;left:0}.toplist__songlist .toplist__song .toplist__songname[data-v-7cd64d50]{overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.toplist__songlist .toplist__song .toplist__songname .js_song[data-v-7cd64d50]{color:#fff;font-size:16px}.toplist__songlist .toplist__song .toplist__artist[data-v-7cd64d50]{font-size:13px;opacity:.5;overflow:hidden;text-overflow:ellipsis}.toplist__songlist .toplist__song .toplist__artist .js_singers[data-v-7cd64d50]{color:#fff}.index__more[data-v-7cd64d50]{top:145px}.mod_index[data-v-7cd64d50]{position:relative}.mod_index .section_inner[data-v-7cd64d50]{z-index:2;overflow:hidden;max-width:1200px;margin:0 auto;position:relative}.mod_index .section_inner .index__hd[data-v-7cd64d50]{position:relative;width:490px;height:48px;padding-top:80px;margin:0 auto 50px}.mod_index .section_inner .index__hd .index__tit[data-v-7cd64d50]{font-weight:400;text-align:center}.mod_index .section_inner .index__hd .index__tit .index__tit_sprite[data-v-7cd64d50]{width:193px;display:block;margin:0 auto;height:48px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/index_tit.png?max_age=2592000&v=ea6515ebb82f7609712c02805e2abe9c)}.index__line[data-v-7cd64d50]{position:absolute;top:104px;width:72px;height:1px;opacity:.1}.index__line--left[data-v-7cd64d50]{left:0}.index__line--right[data-v-7cd64d50]{right:0}.mod_slide_switch[data-v-7cd64d50]{width:100%;text-align:center;font-size:0}.mod_slide_switch .slide_switch__item[data-v-7cd64d50]{display:inline-block;width:30px;height:2px;padding:10px 0;margin:0 5px}.mod_slide_switch .slide_switch__item .slide_switch__bg[data-v-7cd64d50]{background:hsla(0,0%,8%,.3);display:block;width:100%;height:1px}.index__more[data-v-7cd64d50]{position:absolute;right:0}.index__more[data-v-7cd64d50]:hover{color:#31c27c}.index__more--white[data-v-7cd64d50]{font-size:15px;color:#fff}.index__more--white .icon_index_arrow[data-v-7cd64d50]{background-position:-40px -260px;display:inline-block;width:7px;height:12px;margin-left:6px}.index__more--white .icon_index_arrow[data-v-7cd64d50],.index__more--white .icon_index_arrow[data-v-7cd64d50]:hover{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40)}.index__more--white .icon_index_arrow[data-v-7cd64d50]:hover{background-position:0 0}.mod_cover[data-v-7cd64d50]{opacity:.9;zoom:1}.mod_cover:hover>.playlist__pic[data-v-7cd64d50],.mod_cover:hover>.toplist__bg[data-v-7cd64d50]{-webkit-transform:scale(1.07);transform:scale(1.07)}.mod_cover:hover>.mod_cover__mask[data-v-7cd64d50]{opacity:.4}.mod_cover:hover>.mod_cover__icon_play[data-v-7cd64d50]{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mod_cover:hover>.toplist__line[data-v-7cd64d50]{opacity:0}.mod_cover:hover+.playlist__title>.btn_opera_menu[data-v-7cd64d50]{transition:.5s ease-in;opacity:1}.mod_cover__mask[data-v-7cd64d50]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:0;transition:opacity .5s}.mod_cover__icon_play[data-v-7cd64d50]{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/cover_play.png?max_age=2592000&v=fa72193fd8d5000e90837380d6be93ea);position:absolute;top:50%;left:50%;margin:-35px;width:70px;height:70px;opacity:0;-webkit-transform:scale(.7);transform:scale(.7);transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;transition-duration:.5s;zoom:1}.mod_index--new[data-v-6ed987bb]{height:734px}.mod_index--new .index__hd[data-v-6ed987bb]{padding-top:80px;margin-bottom:43px;position:relative;width:490px;height:48px;margin:0 auto 50px}.mod_index--new .index__hd .index__tit[data-v-6ed987bb]{font-weight:400;text-align:center}.mod_index--new .index__hd .index__tit .index__tit_sprite[data-v-6ed987bb]{width:193px;background-position:0 0;display:block;margin:0 auto;height:48px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/index_tit.png?max_age=2592000&v=ea6515ebb82f7609712c02805e2abe9c)}.mod_index--new .index__hd .index__tit .icon_txt[data-v-6ed987bb]{font:0/0 a}.mod_index--new .index__hd .index__line[data-v-6ed987bb]{top:104px;position:absolute;width:72px;height:1px;opacity:.2;background-color:#fff}.mod_index--new .index__hd .index__line--left[data-v-6ed987bb]{left:0}.mod_index--new .index__hd .index__line--right[data-v-6ed987bb]{right:0}.mod_index[data-v-6ed987bb]{position:relative}.mod_index .section_inner[data-v-6ed987bb]{z-index:2;overflow:hidden}.mod_index .section_inner .index__more[data-v-6ed987bb]{position:absolute;right:0;top:auto}.mod_index .section_inner .index__more[data-v-6ed987bb]:hover{color:#31c27c}.mod_index .section_inner .index__more--white[data-v-6ed987bb]{font-size:15px;color:#fff}.mod_index .section_inner .index__more--white .icon_index_arrow[data-v-6ed987bb]{background-position:-40px -260px;display:inline-block;width:7px;height:12px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);margin-left:6px}.mod_index .section_inner .index__more--white .icon_index_arrow[data-v-6ed987bb]:hover{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);background-position:0 0}.mod_index .section_inner .mod_index_tab[data-v-6ed987bb]{height:50px;text-align:center;font-size:0}.mod_index .section_inner .mod_index_tab .index_tab__item[data-v-6ed987bb]{display:inline-block;font-size:16px;margin:0 35px;color:#fff;opacity:.5}.mod_index .section_inner .mod_index_tab .index_tab__item[data-v-6ed987bb]:hover{opacity:1}.mod_playlist[data-v-6ed987bb]{text-align:center}.mod_playlist .playlist__item[data-v-6ed987bb]{width:25%;background:rgba(0,0,0,.8);font-size:16px;padding-bottom:0;float:left;overflow:hidden}.mod_playlist .playlist__item[data-v-6ed987bb]:hover{background-color:#31c27c}.mod_playlist .playlist__item:hover+.playlist__item_box>.playlist__title>.btn_opera_menu[data-v-6ed987bb]{transition:.5s ease-in;opacity:1}.mod_playlist .playlist__item_box[data-v-6ed987bb]{height:auto;margin-right:0;position:relative}.mod_playlist .playlist__item_box .playlist__title[data-v-6ed987bb]{display:inline-block;position:relative;max-width:75%;padding:0 26px;height:22px;margin-bottom:0;overflow:hidden}.mod_playlist .playlist__item_box .playlist__title .playlist__title_txt[data-v-6ed987bb]{float:none;display:inline-block;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px}.mod_playlist .playlist__item_box .playlist__title .playlist__title_txt a[data-v-6ed987bb]{color:#fff}.mod_playlist .playlist__item_box .playlist__title .btn_opera_menu[data-v-6ed987bb]{bottom:23px;top:2px;display:inline-block;background-position:-180px -100px;right:0;position:absolute;width:20px;height:20px;opacity:0;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40)}.mod_playlist .playlist__item_box .playlist__author[data-v-6ed987bb]{margin-bottom:32px;line-height:18px}.mod_playlist .playlist__item_box .playlist__author a[data-v-6ed987bb]{color:#c1e9d5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:22px}.mod_playlist .mod_cover[data-v-6ed987bb]{opacity:.9}.mod_playlist .mod_cover:hover>.js_album>.playlist__pic[data-v-6ed987bb]{-webkit-transform:scale(1.07);transform:scale(1.07)}.mod_playlist .mod_cover:hover>.js_album>.mod_cover__mask[data-v-6ed987bb]{opacity:.4}.mod_playlist .mod_cover:hover>.js_album>.mod_cover__icon_play[data-v-6ed987bb]{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mod_playlist .mod_cover:hover+.playlist__title>.btn_opera_menu[data-v-6ed987bb]{transition:.5s ease-in;opacity:1}.mod_playlist .mod_cover:hover+.playlist__author>.js_singer[data-v-6ed987bb]{color:#fff}.mod_playlist .playlist__cover[data-v-6ed987bb]{margin-bottom:32px;position:relative;display:block;overflow:hidden;padding-top:100%}.mod_playlist .playlist__cover .playlist__pic[data-v-6ed987bb]{position:absolute;top:0;left:0;width:100%;-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);transition:-webkit-transform .75s;transition:transform .75s;transition:transform .75s,-webkit-transform .75s}.mod_playlist .playlist__cover .mod_cover__mask[data-v-6ed987bb]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:0;transition:opacity .5s}.mod_playlist .playlist__cover .mod_cover__icon_play[data-v-6ed987bb]{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/cover_play.png?max_age=2592000&v=fa72193fd8d5000e90837380d6be93ea);position:absolute;top:50%;left:50%;margin:-35px;width:70px;height:70px;opacity:0;-webkit-transform:scale(.7);transform:scale(.7);transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;transition-duration:.5s;zoom:1}.mod_slide[data-v-6ed987bb]{overflow:hidden;margin-bottom:25px}.slide__item[data-v-6ed987bb]{display:inline-block}.mod_slide_action[data-v-6ed987bb]{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.mod_slide_action .slide_action[data-v-6ed987bb]{position:absolute;top:0;width:50%;height:100%}.mod_slide_action .slide_action--left[data-v-6ed987bb]{left:0}.mod_slide_action .slide_action__btn--left[data-v-6ed987bb]{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mod_slide_action .slide_action__btn--left .slide_action__arrow--left[data-v-6ed987bb]{left:28px;background-position:-180px 0}.mod_slide_action .slide_action--right[data-v-6ed987bb]{right:0}.mod_slide_action .slide_action__btn--right[data-v-6ed987bb]{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.mod_slide_action .slide_action__btn--right .slide_action__arrow--right[data-v-6ed987bb]{right:28px;background-position:-160px 0}.mod_slide_action .slide_action__btn[data-v-6ed987bb]{position:absolute;top:50%;margin-top:-54px;width:72px;height:108px;background:hsla(0,0%,60%,.4);transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;transition-duration:.5s;z-index:2}.mod_slide_action .slide_action__btn[data-v-6ed987bb]:hover{transition:.6s ease-out;background:#31c27c}.mod_slide_action .slide_action__arrow[data-v-6ed987bb]{position:absolute;top:50%;margin-top:-9px;background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_sprite.png?max_age=2592000&v=3139b9b10089fcb0bf3725ac66b82a40);width:11px;height:18px}.mod_slide_switch[data-v-6ed987bb]{bottom:24px;width:100%;text-align:center;font-size:0}.mod_slide_switch .slide_switch__item[data-v-6ed987bb]{display:inline-block;width:30px;height:2px;padding:10px 0;margin:0 5px}.mod_slide_switch .slide_switch__item .slide_switch__bg[data-v-6ed987bb]{display:block;width:100%;background:hsla(0,0%,100%,.3);height:.5px}.mod_slide_switch .slide_switch__item .slide_switch__bg[data-v-6ed987bb]:hover{color:#fff}.slide_switch__item--current .slide_switch__bg[data-v-6ed987bb],.slide_switch__item:hover .slide_switch__bg[data-v-6ed987bb]{-webkit-filter:none;filter:none;background-color:#fff}@media screen and (max-height:800px){.mod_profile_unlogin{height:622px;background:url(https://y.gtimg.cn/mediastyle/yqq/img/bg_profile_unlogin.jpg) 50% no-repeat;background-size:cover;overflow:hidden}}.play .profile_unlogin__btn,.play .profile_unlogin__desc,.play .profile_unlogin__tit{opacity:1}.profile_unlogin__btn,.profile_unlogin__desc,.profile_unlogin__tit{-webkit-transform:all 1s;transform:all 1s}.profile_unlogin__tit{margin-top:210px;width:735px;height:64px;background-position:0 0;margin-left:auto;margin-right:auto}.profile_unlogin__desc,.profile_unlogin__tit{background-image:url(https://y.gtimg.cn/mediastyle/yqq/img/profile_tit.png?max_age=2592000&v=70fa6a47cc15d1acecae39dda6821428)}.profile_unlogin__desc{width:345px;height:30px;background-position:0 -70px;margin:30px auto 36px}.profile_unlogin__btn{line-height:49px;display:block;font-size:20px;height:48px;width:128px;text-align:center;margin:0 auto;border:1px solid #31c27c;background-color:#31c27c}.profile_unlogin__btn:hover{color:#fff}.main-bg[data-v-27564d40]{background:url(https://y.gtimg.cn/mediastyle/yqq/img/bg_detail.jpg) no-repeat}.main[data-v-27564d40]{z-index:2;max-width:1200px;margin:0 auto}.mod_data[data-v-27564d40]{position:relative;height:250px;padding-left:305px;margin-bottom:35px}.mod_data .avatar[data-v-27564d40]{position:absolute;left:0;top:25px;width:200px;height:200px;border-radius:30px}.mod_data .data__cont[data-v-27564d40]{margin-left:20px}.mod_data .data__cont h1[data-v-27564d40]{font-size:40px;padding-top:30px;font-weight:300}.part_hd[data-v-27564d40]{height:54px;line-height:54px}.part_hd h2[data-v-27564d40]{font-size:25px;font-weight:400;float:left}.part_hd .part_more[data-v-27564d40]{float:right;line-height:54px}.part_hd .part_more[data-v-27564d40]:hover{color:#2eb674}.mod_songlist[data-v-27564d40]{font-size:16px;color:#000;overflow:hidden}.mod_songlist .songlist__header[data-v-27564d40]{height:50px;line-height:50px;color:#999;padding-left:30px;padding-right:100px;background-color:#fbfbfd}.mod_songlist .songlist__header_name[data-v-27564d40]{float:left;width:48%;padding-left:15px;position:relative;white-space:normal}.mod_songlist .songlist__album[data-v-27564d40],.mod_songlist .songlist__artist[data-v-27564d40],.mod_songlist .songlist__header_album[data-v-27564d40],.mod_songlist .songlist__header_author[data-v-27564d40]{float:left;padding-left:20px;width:24%}.mod_songlist .songlist__header_time[data-v-27564d40],.mod_songlist .songlist__time[data-v-27564d40]{float:right;top:0;right:38px;width:50px}.songlist__list[data-v-27564d40]{position:relative}.songlist__list li[data-v-27564d40]{height:50px;line-height:50px}.songlist__list li[data-v-27564d40]:nth-child(2n){background-color:#fbfbfd}.songlist__list .mod_list_menu[data-v-27564d40]{position:absolute;top:-50px;left:30%}.songlist__list .mod_list_menu .song_download[data-v-27564d40],.songlist__list .mod_list_menu .song_play[data-v-27564d40]{width:36px;height:36px;display:block;float:left;margin-top:7px;margin-left:5px;background:url(https://y.gtimg.cn/mediastyle/yqq/img/icon_list_menu.png?max_age=2592000&v=4566a1a62ecad72fe9b9205d1ad62d2b) no-repeat}.songlist__list .mod_list_menu .song_play[data-v-27564d40]:hover{background-position:-40px 0}.songlist__list .mod_list_menu .song_download[data-v-27564d40]{background-position:0 -120px}.songlist__list .mod_list_menu .song_download[data-v-27564d40]:hover{background-position:-40px -120px}.songlist__list .songNum[data-v-27564d40]{top:0;float:left;text-align:center;left:10px;color:#999;width:45px}.songlist__list .songName[data-v-27564d40]{width:44.5%;float:left;height:50px;position:relative}.songlist__list .songName p[data-v-27564d40]:hover{color:#2eb674}.songlist__list .songAlbum[data-v-27564d40]{float:left}.songlist__list .songTime[data-v-27564d40]{font-size:12px;float:right;margin-right:102px;color:#999}
--------------------------------------------------------------------------------