加林森 发表于 2022-7-4 23:04

(仙剑奇侠传一)(翻自 仙剑奇侠传)

本帖最后由 加林森 于 2022-7-7 09:55 编辑 <br /><br /><style>
#ma { left: -342px; width: 1280px; height: 839px; background: #000 url('https://pic.imgdb.cn/item/62c63c0f5be16ec74a118800.jpg') no-repeat; perspective: 1000px; box-shadow: 2px 2px 20px #000; position: relative; }
#circle { position: absolute; width: 100px; height: 100px; top: 10px; right: 10px; border-radius: 50%; background: red linear-gradient(120deg, lightgreen, transparent); mask-image: radial-gradient(circle at 30% 30%,transparent 20%, red); -webkit-mask-image: radial-gradient(circle at 30% 30%,transparent 20%, red); cursor: pointer; z-index: 100; }
#ma input { border: none; outline: none; opacity: .75; cursor: pointer; }
#ma p { margin: 0; padding: 0; }
#playbox { position: absolute; left: 10px; bottom: 10px; padding: 10px; font: normal 1em sans-serif; color: tomato; text-shadow: 1px 1px 1px #000; background: transparent; border-radius: 8px; overflow: hidden; box-shadow: 1px 1px 2px rgba(0,0,0,.15); z-index: 100; }
#playbox::before { position: absolute; content: ''; margin: -20px; left: 0; top: 0; right: 0; bottom: 0; background: rgba(255,255,255,.45); filter: blur(2px); z-index: -1; }
#btnplay { width: 30px; height: 30px; border-radius: 50%; }
#btnplay:hover { background: #aaa; color: #ff0000; }
.pics {position: absolute; width: 256px; box-shadow: inherit; transform-style: preserve-3d; display: none; opacity: .65; transition: all .5s; }
.pics:hover { width: 300px; opacity: 1; cursor: pointer; }
@keyframes drop { from { transform: translateY(10px); } to { transform: translateY(488px); } }
@keyframes up { from { transform: translateY(488px); } to { transform: translateY(10px); } }
</style>

<div id="ma">
      <div id="circle"></div>
      <div id="playbox">
                <p id="geci" style="font-size: 1.2em">纯音乐 - (仙剑奇侠传一)(翻自 仙剑奇侠传) </p>
                <p style="display: flex; align-items: center; gap: 4px; margin-top: 10px;">
                        <input id="btnplay" type="button" value=">" />
                        <input id="slider" type="range" min="0" max="100" value="0" />
                        <span id="per">0%</span>
                </p>
      </div>
</div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=1849763354.mp3" autoplay="autoplay" loop="loop"></audio>

<script>
let flag = 1;slip = 0, idxar = [];
let imgAr = [
      'https://pic.imgdb.cn/item/62c2eb195be16ec74a8abbd9.jpg',
      'https://pic.imgdb.cn/item/62c2ecce5be16ec74a8d0b53.jpg',
      'https://pic.imgdb.cn/item/62c2faff5be16ec74aa0e0bb.jpg',
      'https://pic.imgdb.cn/item/62c2fc3a5be16ec74aa295b9.jpg',
      'https://pic.imgdb.cn/item/62c2fd605be16ec74aa438ee.jpg',
      'https://pic.imgdb.cn/item/62c2fe645be16ec74aa5bb77.jpg'
];

let gnum = (min,max) => Math.floor(Math.random()*(max-min+1))+min;

imgAr.forEach((item,key) => {
      item = document.createElement('img');
      item.className = 'pics';
      item.src = imgAr + '.jpg';
      item.style.left = key * 190 + 30 + 'px';
      item.style.top = gnum(40, 200) + 'px';
      item.style.transform = 'rotateY(' + gnum(25,45) +'deg)';
      item.alt = '';
      ma.appendChild(item);
});

circle.onmouseover = () => {
      let pics = document.querySelectorAll('.pics')
      if(flag == 1) {
                circle.style.animation = 'drop .5s forwards ease-in',
                pics.forEach((ele) => ele.style.display = 'block');
                flag = 0;
      } else {
                circle.style.animation = 'up .5s forwards ease-out';
                pics.forEach((ele) => ele.style.display = 'none');
                flag = 1;
      }
}

slider.onmousedown = () => aud.pause();
slider.onchange = () => { aud.currentTime = slider.value * aud.duration / 100; aud.play(); }
btnplay.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('playing', () => btnplay.value = '||');
aud.addEventListener('pause', () => btnplay.value = '>');

aud.addEventListener('timeupdate', () => {
      let prog = 100 * aud.currentTime / aud.duration;
      slider.value = prog;
      per.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
});

let toMin = (sec) => {
      if(!sec) return '0:00';
      sec = parseInt(sec);
      return parseInt(sec / 60) + ':' + parseFloat(sec % 60).toString().padStart(2,'0');
}
</script>

加林森 发表于 2022-7-4 23:04

@马黑黑

加林森 发表于 2022-7-4 23:09

有点晕了。明天来修改。

马黑黑 发表于 2022-7-4 23:26

404错误

马黑黑 发表于 2022-7-4 23:28

404错误表明图片已经指向该网站,但不许打开。单独访问图片是可以的,所以,疑是防盗链

加林森 发表于 2022-7-4 23:29

马黑黑 发表于 2022-7-4 23:26
404错误

这个是啥意思?

加林森 发表于 2022-7-4 23:29

马黑黑 发表于 2022-7-4 23:28
404错误表明图片已经指向该网站,但不许打开。单独访问图片是可以的,所以,疑是防盗链

明天重新上传。

马黑黑 发表于 2022-7-4 23:32

@加林森队长,我看到问题在哪儿了,不是图片防盗链,是你没有按照我说的方法修改,你只修改了数组。

这一句,

item.src = 'https://pic.imgdb.cn/item/62c2fe645be16ec74aa5bb77.jpg' + imgAr + '.jpg';

改为,

item.src = imgAr ;

这样修改的理由:imgAr 数组已经是完整图片地址,直接读出下标为 key 的内容,就是完整的图片地址,不能再拼接。

马黑黑 发表于 2022-7-4 23:32

加林森 发表于 2022-7-4 23:29
明天重新上传。

不是上传的问题,你看看 8 楼

马黑黑 发表于 2022-7-4 23:33

加林森 发表于 2022-7-4 23:29
这个是啥意思?

404房间都不知道{:4_170:}

web里,凡出现 404 错误,就是该地址不存在。原因是,或者地址不对,或者真的不存在。你这是地址不对,在JS读取数组的时候不需要在拼接,你去拼接了

加林森 发表于 2022-7-4 23:38

马黑黑 发表于 2022-7-4 23:33
404房间都不知道

web里,凡出现 404 错误,就是该地址不存在。原因是,或者地址不对,或者真 ...

整晕了。明天来修改。现在睡觉去了。

加林森 发表于 2022-7-5 07:41

马黑黑 发表于 2022-7-4 23:32
@加林森队长,我看到问题在哪儿了,不是图片防盗链,是你没有按照我说的方法修改,你只修改了数组。

...

谢谢老黑,终于捣鼓出来了。{:4_189:}

樵歌 发表于 2022-7-5 08:14

给你个线索,哪天找两首歌,一为花潮美女美;二为花潮帅哥帅。做这个的图来回翻。{:4_170:}

加林森 发表于 2022-7-5 08:54

樵歌 发表于 2022-7-5 08:14
给你个线索,哪天找两首歌,一为花潮美女美;二为花潮帅哥帅。做这个的图来回翻。

老兄准备煎饼啊?{:4_189:}

红影 发表于 2022-7-5 09:45

恭喜队长也做出来了。制作很漂亮{:4_204:}

加林森 发表于 2022-7-5 10:20

红影 发表于 2022-7-5 09:45
恭喜队长也做出来了。制作很漂亮

老黑就这么给我们上花椒的。∫{:4_189:}

马黑黑 发表于 2022-7-5 13:09

加林森 发表于 2022-7-5 07:41
谢谢老黑,终于捣鼓出来了。

我再15楼说要改动两个地方的,你太激动只改了一个地方

加林森 发表于 2022-7-5 13:15

马黑黑 发表于 2022-7-5 13:09
我再15楼说要改动两个地方的,你太激动只改了一个地方

就是就是。我想一口吃成胖子。。。。{:4_170:}

加林森 发表于 2022-7-5 13:27

马黑黑 发表于 2022-7-5 13:09
我再15楼说要改动两个地方的,你太激动只改了一个地方

我再去修改。

红影 发表于 2022-7-5 15:45

加林森 发表于 2022-7-5 10:20
老黑就这么给我们上花椒的。∫

现在好像只有月亮上下,图图不变了呢。
页: [1] 2 3 4 5
查看完整版本: (仙剑奇侠传一)(翻自 仙剑奇侠传)