加林森 发表于 2022-8-28 10:17

逃不开夏天(纯音乐欣赏)

本帖最后由 加林森 于 2022-8-28 10:56 编辑 <br /><br /><style>
#papa { left: -214px; width: 1024px; height: 552px; background: gray url('https://pic.imgdb.cn/item/630acdd116f2c2beb118d4b9.jpg') no-repeat center/cover;box-shadow: 3px 3px 20px #000; position: relative; z-index: 1; }
#player { padding: 10px; position: absolute; right: 10px; top: 10px; width: fit-content; height: fit-content; display: flex; gap: 10px; flex-direction: column; }
#lrctext { font: bold 1.4em sans-serif; color: silver; text-shadow: 1px 1px 2px #000; user-select: none; transition: all 1.5s; }
#btnwrap { width: fit-content; height: fit-content; display: flex; gap: 8px; align-items: center; }
#btnmain { width: 36px; height: 36px; display: grid; place-items: center; background: rgba(0,0,0,.5); border-radius: 50%; cursor: pointer; transition: all 2s; }
#btnmain:hover { background: orange; }
#btnplay {width: 16px; height: 16px; background: #ccc; clip-path: polygon(0 0, 0% 100%, 100% 50%); }
#btnpause { width: 2px; height: 20px; border-style: solid; border-width: 0px 4px; border-color: transparent #eee; display: none; }
#prgline { width: 200px; height: 4px; background: #ccc linear-gradient(to right,red,orange,green,red) no-repeat center left; background-size: 1px 4px; cursor: pointer;}
#tmsg { font: normal 16px sans-serif; color: orange; user-select: none; text-shadow: 1px 1px 1px #000; transition: 1.5s; }
#tmsg:hover, #lrctext:hover { color: tomato; }
</style>

<div id="papa">
      <div id="player">
                <div id="lrctext">lrc歌词</div>
                <div id="btnwrap">
                        <span id="btnmain"><span id="btnplay"></span><span id="btnpause"></span></span>
                        <span id="prgline"></span><span id="tmsg">00:00 | 00:00</span>
                </div>
      </div>
</div>

<script>
let lrcAr = [
      ['00.00', '纯音乐 - 逃不开夏天'],
      ['220.00','谢谢欣赏']
];
let aud = new Audio();

aud.src = 'https://music.163.com/song/media/outer/url?id=1346528158.mp3';
aud.autoplay = true;
aud.loop = true;
btnmain.onclick = () => aud.paused ? aud.play() : aud.pause();
prgline.onclick = (e) => aud.currentTime = aud.duration * e.offsetX / prgline.offsetWidth;
aud.addEventListener('pause', () => btnstate());
aud.addEventListener('play',() => btnstate());
aud.addEventListener('timeupdate', () => {
      prgline.style.backgroundSize = prgline.offsetWidth * aud.currentTime / aud.duration + 'px 4px';
      tmsg.innerText = toMin(aud.duration) + ' | ' + toMin(aud.currentTime);
      for(j=0; j<lrcAr.length; j++) {
                if(aud.currentTime >= lrcAr) lrctext.innerText = lrcAr;
      }
});
let btnstate = () => aud.paused ? (btnplay.style.display = 'block', btnpause.style.display = 'none') : (btnplay.style.display = 'none', btnpause.style.display = 'block');
let toMin = (val)=> {
      if (!val) return '00:00';
      val = Math.floor(val);
      let min = parseInt(val / 60), sec = parseFloat(val % 60);
      if(min < 10) min = '0' + min;
      if(sec < 10) sec = '0' + sec;
      return min + ':' + sec;
}
</script>

马黑黑 发表于 2022-8-28 10:34

队长好制作。
根据图片结构,播放器应放在比较空旷的地儿,可以考虑左上角、右上角。队长不要拘泥于源码的设定。

加林森 发表于 2022-8-28 10:37

马黑黑 发表于 2022-8-28 10:34
队长好制作。
根据图片结构,播放器应放在比较空旷的地儿,可以考虑左上角、右上角。队长不要拘泥于源码的 ...

好的。我去修改。

红影 发表于 2022-8-28 10:40

很清净的场景,欣赏队长好制作{:4_187:}

马黑黑 发表于 2022-8-28 10:43

加林森 发表于 2022-8-28 10:37
好的。我去修改。

你去看看 慵懒的猫 的第18楼,那里我做了详尽的解释。

加林森 发表于 2022-8-28 10:48

马黑黑 发表于 2022-8-28 10:43
你去看看 慵懒的猫 的第18楼,那里我做了详尽的解释。

好的好的。

加林森 发表于 2022-8-28 10:57

马黑黑 发表于 2022-8-28 10:43
你去看看 慵懒的猫 的第18楼,那里我做了详尽的解释。

修改了,放在右上角了。请你再来看看!谢谢!{:4_190:}

加林森 发表于 2022-8-28 11:00

红影 发表于 2022-8-28 10:40
很清净的场景,欣赏队长好制作

红影上午好!{:4_190:}

马黑黑 发表于 2022-8-28 11:01

加林森 发表于 2022-8-28 10:57
修改了,放在右上角了。请你再来看看!谢谢!

物理定位首先取决于父子元素的 position 定位关系:

父 → position: relative;
子 → position: absolute;

接着,子元素按照 左右 ↔ 上下 的两两配合,可以快速定位其到父元素的四个角。

这个技巧队长要彻底消化了。

加林森 发表于 2022-8-28 11:03

马黑黑 发表于 2022-8-28 11:01
物理定位首先取决于父子元素的 position 定位关系:

父 → position: relative;


嗯嗯。再次感谢你啦。我收藏了。{:4_190:}

马黑黑 发表于 2022-8-28 11:07

加林森 发表于 2022-8-28 11:03
嗯嗯。再次感谢你啦。我收藏了。

没必要收藏,把它理解了、记下了就好

加林森 发表于 2022-8-28 11:10

马黑黑 发表于 2022-8-28 11:07
没必要收藏,把它理解了、记下了就好

嗯嗯。明白的。一定记住。

马黑黑 发表于 2022-8-28 11:22

加林森 发表于 2022-8-28 11:10
嗯嗯。明白的。一定记住。

还有一个问题是,看懂 HTML 代码结构,代码文档流能够揭示各元素子的归拢关系,从而可以有针对性去修改CSS的选择器属性

加林森 发表于 2022-8-28 11:28

马黑黑 发表于 2022-8-28 11:22
还有一个问题是,看懂 HTML 代码结构,代码文档流能够揭示各元素子的归拢关系,从而可以有针对性去修改CS ...

好的。你真耐心!{:5_108:}

醉美水芙蓉 发表于 2022-8-28 13:02

加林森 发表于 2022-8-28 13:08

醉美水芙蓉 发表于 2022-8-28 13:02
欣赏队长好制作!

谢谢水芙蓉~

小辣椒 发表于 2022-8-28 14:57

队长做了2个啊,最用功了{:4_178:}

加林森 发表于 2022-8-28 15:13

小辣椒 发表于 2022-8-28 14:57
队长做了2个啊,最用功了

小辣椒上来啦。下午好!{:4_190:}

小辣椒 发表于 2022-8-28 15:16

加林森 发表于 2022-8-28 15:13
小辣椒上来啦。下午好!

队长我发就专辑,马上下了的。

晚上见

加林森 发表于 2022-8-28 15:21

小辣椒 发表于 2022-8-28 15:16
队长我发就专辑,马上下了的。

晚上见

好的。晚上见!
页: [1]
查看完整版本: 逃不开夏天(纯音乐欣赏)