红影 发表于 2023-6-10 13:52

印度歌曲 TO南无月 (学习黑黑大地效果)

<style>
#waikuang {
        margin: 80px 0 0 calc(50% - 593px);
        width: 1024px;
        height: 640px;
        background: tan;
        box-shadow: 0 0 10px gray;
      position: relative;
        overflow: hidden;
        --state: paused;
}
.vid { position: absolute; width: 1024px; height: 700px; top:-60px; object-fit: cover; opacity: 1; }
#mypic { position: absolute; right: 20px;bottom: 10px; width: 360px; height: 340px; display: none; }
#canv { display: block; position: absolute; right: 20px;bottom: 10px; }
</style>
<div id="waikuang">
<video class="vid" src="https://img.tukuppt.com/video_show/2402760/00/02/34/5b56bdddbca56_10s_big.mp4" autoplay="autoplay" loop="loop" muted="muted"></video>
<canvas id="canv" width="360" height="340"></canvas>
<img id="mypic" src="https://pic.imgdb.cn/item/6483ca151ddac507cc09118e.gif" alt="" />
<css-doodle grid="1x6" id="papa">
      :doodle {
                @size: 1024px 640px;
                z-index: 10;
                --ww: 300px; /* 进度条总长 */
                --prog: 0; /* 进度 */
                --tt1: '00:00'; /* 当前播放时间 */
                --tt2: '00:00'; /* 音乐时长 */
                --xplace: 50%; /* 播放器水平定位 */
                --yplace: 98%; /* 播放器垂直定位 */
                --color: snow;
                --state: paused; /* 关键帧运行状态 */
      }
      /* 单元格1 :进度条 */
      @nth(1) {
                @size: var(--ww) 2px;
                @place: var(--xplace) var(--yplace);
                background: silver;
                :before, :after { content: ''; }
                :before {
                        position: absolute;
                        left: 0;
                        width: var(--prog);
                        height: 100%;
                        background: var(--color);
                }
                :after {
                        width: 100%;
                        height: 10px;
                        cursor: pointer;
                }
      }
      /* 单元格2 :播放时间信息 */
      @nth(2) {
                @size: var(--ww) 20px;
                @place: var(--xplace) calc(var(--yplace) - 20px);
                :before, :after{
                        position: absolute;
                        width: 100%;
                        height: 100%;
                        color: var(--color);
                }
                :before { content: var(--tt1); }
                :after { content: var(--tt2); text-align: right; }
      }

      /* 单元格3 :播放按钮 */
      @nth(3) {
                @size: 80px;
                @place: var(--xplace) calc(var(--yplace) - 46px);
                cursor: pointer;
                animation: rot 6s infinite linear var(--state);
      :before {
                content: '';
                @size: inherit;
                @shape: star;
                background: var(--color);               
              }
        }

      @match(i ≥ 4) {
                @size: 60px 120px;
                @place: 100px 500px;
                background: url('https://pic.imgdb.cn/item/6483cb431ddac507cc0a0b8b.gif');
                offset-path: path('M100 500 Q400 -400 1000 -200');
                offset-distance: 0%;
                offset-rotate: 0deg;
                animation: fly 10s calc(@r(1,10) * -1s) infinite linear var(--state);
      }
      @keyframes rot { to { transform: rotate(360deg); } }
      @keyframes fly { to { offset-distance: 100%; }}
</css-doodle>
</div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=28725872" autoplay="autoplay" loop="loop"></audio>

<script>
(function(){
      let script = document.createElement('script');
      script.src = '/css-doodle.min.js';
      document.head.appendChild(script);
      let vid = document.querySelector('.vid');
        let context = canv.getContext('2d');
      let oImg = new Image();
      oImg.src = mypic.src;
      oImg.onload = () => context.drawImage(oImg,0,0,canv.width,canv.height);
      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;};
      let mState = () => aud.paused ? (canv.style.display = 'block', mypic.style.display = 'none',papa.style.setProperty('--state', 'paused'), vid.pause()) : (canv.style.display = 'none', mypic.style.display = 'block',papa.style.setProperty('--state', 'running'), vid.play());
      aud.addEventListener('timeupdate', () => {
                papa.style.setProperty('--prog', 100*aud.currentTime/aud.duration + '%');
                papa.style.setProperty('--tt1', `'${toMin(aud.currentTime)}'`);
                papa.style.setProperty('--tt2', `'${toMin(aud.duration)}'`);
      });
      aud.addEventListener('play', mState, false);
      aud.addEventListener('pause', mState, false);
      window.onload = () => {
                let btns = papa.shadowRoot.querySelectorAll('cell');
                let ww = parseInt(window.getComputedStyle(papa).getPropertyValue('--ww'));
                btns.onclick = () => aud.paused ? aud.play() : aud.pause();
                btns.onclick = (e) => aud.currentTime = e.offsetX * aud.duration / ww;
      }
})();
</script>

红影 发表于 2023-6-10 13:54

@南无月谢谢月儿分享的动图抠图,用你分享的网站去弄了个跳舞的印度美女{:4_187:}

红影 发表于 2023-6-10 13:55

@马黑黑谢谢黑黑的代码,学了大地的代码,还有椭圆文字那帖里的让路径上图图不转向{:4_173:}本来想弄个路径让那些小人围绕美女,感觉旁边太空,索性让那些小人绕过播放器了。

红影 发表于 2023-6-10 13:57

本来还想学个黑黑前面教的canvas 方法让跳舞的美女也能跟着暂停,试了半天不行,就算了{:4_173:}可以了, 美女也可以暂停了{:4_205:} 不熟悉,折腾够呛,午睡去,自己补偿一下:)

上海朝阳 发表于 2023-6-10 16:06

唷,星光闪闪,说有美女,便换了极速模式

红影 发表于 2023-6-10 16:31

上海朝阳 发表于 2023-6-10 16:06
唷,星光闪闪,说有美女,便换了极速模式

那美女暂停的时候样子很呆,没办法只能取第一个镜头{:4_173:}

醉美水芙蓉 发表于 2023-6-10 16:43

岩新新 发表于 2023-6-10 16:54

欣赏点赞!

红影 发表于 2023-6-10 17:22

醉美水芙蓉 发表于 2023-6-10 16:43
欣赏红影美女美贴!

感谢水芙蓉美女鼓励。{:4_204:}

红影 发表于 2023-6-10 17:22

岩新新 发表于 2023-6-10 16:54
欣赏点赞!

谢谢新新鼓励{:4_187:}

樵歌 发表于 2023-6-10 19:03

弄得好生热闹,最好让阿三妹纸跳个肚皮舞岂不更好。{:4_170:}

樵歌 发表于 2023-6-10 19:04

很是阿三风情,还是很好听的。{:4_187:}

一朵梅 发表于 2023-6-10 19:34

印度歌曲很有味~

梦油 发表于 2023-6-10 20:35

我很喜欢印度歌曲,比如:大篷车等。
可惜,你这么好的帖子,俺没分了。

南无月 发表于 2023-6-10 20:53

红影 发表于 2023-6-10 13:54
@南无月谢谢月儿分享的动图抠图,用你分享的网站去弄了个跳舞的印度美女

上来就听到影子的呼唤,真是意外。
贴子一如既往的技术含量超强,各种效果熟练使用, 代码使用极其熟练。
感谢影子的关注,欣赏影子好贴!{:4_187:}{:4_204:}

焱鑫磊 发表于 2023-6-10 22:01

欣赏学习!{:4_187:}

马黑黑 发表于 2023-6-10 22:30

很精巧的设计

千羽 发表于 2023-6-10 22:30

好亮眼的画面,那个五星播放器好漂亮呀,炫目的小人儿好有趣{:4_187:}

千羽 发表于 2023-6-10 22:33

有点心疼那印度美人儿,会不会累坏了{:4_173:}

千羽 发表于 2023-6-10 22:34

问好无月,收礼开心{:4_185:}
页: [1] 2 3 4
查看完整版本: 印度歌曲 TO南无月 (学习黑黑大地效果)