南无月 发表于 2024-5-20 20:02

【黑师代码】五月的天空(学习黑师20240410《家乡的绿》背景小播&旋转字效果)

本帖最后由 南无月 于 2024-5-20 20:05 编辑 <br /><br /><style>
        #papa { margin: 130px 0 20px calc(50% - 931px); width: 1700px; height: 900px; background: #f1f1f1 url('https://642303.freep.cn/642303/tu/5y06.webp') no-repeat center/cover; box-shadow: 3px 4px 8px #000; overflow: hidden; z-index: 1; position: relative; --x: 0; --y: 0; }
        #papa:hover #mplay { opacity: .5; }
        #mplay { position: absolute; width: 120px; height: 120px; left: var(--x); top: var(--y); border: 1px solid #eee; border-radius: 50%; background: url('https://pic.imgdb.cn/item/65b11e61871b83018a790510.webp') no-repeat -10px -10px; opacity: 0; cursor: pointer; transition: 1s; animation: rot 5s linear infinite var(--state); display: grid; place-items: center; font-weight: bold; color: red; text-shadow: 1px 1px 2px white; }
        #vid { position: absolute; left: 0; bottom: 0;width: 100%; height: calc(100% + 80px); object-fit: cover; mix-blend-mode: screen; pointer-events: none; }
        #canv { position: absolute; mix-blend-mode: screen; opacity: .5; z-index: 2;}
        @keyframes rot { to { transform: rotate(360deg); } }
</style>

<div id="papa">
        <audio id="aud" src="https://music.163.com/song/media/outer/url?id=28699996" loop autoplay></audio>
        <canvas id="mycanv" width="1700" height="900" style="border:0px solid gray"></canvas>
        <video id="vid" src="https://img.tukuppt.com/video_show/2418175/00/18/94/5ef7a50c397ff.mp4" loop muted></video>
        <div id="mplay">5·20</div>
</div>

<script>

var ww = mycanv.width, hh = mycanv.height, deg = -90, raf = null;
var ctx = mycanv.getContext('2d');

class ccText {
    constructor(text) {
      this.chars = text.split('');
      this.colors = this.chars.map(color => `#${Math.random().toString(16).substr(4,4)}`);
    };
    draw(context) {
      context.font = 'bold 40px sans-serif';
      context.textAlign = 'center';
      context.textBaseline = 'middle';
      context.shadowOffsetX = -2;
      context.shadowOffsetY = 2;
      context.shadowColor = '#000';
      context.shadowBlur = 4;
      var a = 360 / this.chars.length, r1 = ww/2 - 620, r2 = hh/2 - 360;
      this.chars.forEach((char,key) => {
            var rad = (a * key + deg) * Math.PI / 180;
            var x = ww/1.6 + r1 * Math.cos(rad), y = hh/1.25 + r2 * Math.sin(rad);
            context.fillStyle = this.colors;
            context.fillText(char, x, y);
      });
    };
};

var cc = new ccText('花潮论坛朋友们五二〇快乐');

var render = () => {
    aud.paused ? cancelAnimationFrame(raf) : raf = requestAnimationFrame(render);
    ctx.clearRect(0, 0, ww, hh);
    deg = (deg + 0.5) % 360;
    cc.draw(ctx);
};

papa.onmousemove = (e) => {
        if(e.target.id === 'mplay') return;
        var x = e.offsetX, y = e.offsetY;
        if(x < 60) x = 60;
        if(x > papa.offsetWidth - 60) x = papa.offsetWidth - 60;
        if(y < 60) y = 60;
        if(y > papa.offsetHeight - 60) y = papa.offsetHeight - 60;
        papa.style.setProperty('--x', `${x - 60}px`);
        papa.style.setProperty('--y', `${y - 60}px`);
        mplay.style.backgroundPosition = `-${x - 60}px -${y - 60}px`;
};
   
mplay.onclick = () => aud.paused ? aud.play() : aud.pause();

aud.onplaying = aud.onpause = () => mState();
aud.onseeked = () => cancelAnimationFrame(raf);

var mState = () => aud.paused ?
        (papa.style.setProperty('--state', 'paused'), vid.pause(), cancelAnimationFrame(raf)) :
        (papa.style.setProperty('--state', 'running'), vid.play(), render());

</script>
<BR><BR><BR><BR><BR><BR>

南无月 发表于 2024-5-20 20:04

@马黑黑 老师就是大救星~~人又帅心灵又美创意也超好。。{:4_173:}

南无月 发表于 2024-5-20 20:06

这字透明度也是随机的?随意改的,这样的效果好象还挺好看{:4_187:}

马黑黑 发表于 2024-5-20 21:00

南无月 发表于 2024-5-20 20:04
@马黑黑 老师就是大救星~~人又帅心灵又美创意也超好。。

主要是长得白

红影 发表于 2024-5-20 21:03

月儿的制作厉害了,把几种效果都集中了起来,还加上了椭圆形环绕文本,给月儿点赞{:4_199:}

红影 发表于 2024-5-20 21:04

这个帖子很应景啊,今天是520,借月儿好帖,同祝论坛的朋友们520快乐{:4_187:}

红影 发表于 2024-5-20 21:05

环绕字的设计很巧妙,正好在底图的图案上。底图的制作也好美,字体设计很漂亮。
月儿太厉害了{:4_199:}

小辣椒 发表于 2024-5-20 21:18

欣赏月月的精彩制作,效果好美,送上鲜花,掌声{:4_204:}{:4_199:}

南无月 发表于 2024-5-20 21:49

小辣椒 发表于 2024-5-20 21:18
欣赏月月的精彩制作,效果好美,送上鲜花,掌声

{:4_170:}跟的黑黑的家乡的绿的效果,觉得这个视频很好看
都没改啥,字的控制也是央求黑老师给控制住了。。
我碰到JS控制 就抓瞎

南无月 发表于 2024-5-20 21:51

红影 发表于 2024-5-20 21:05
环绕字的设计很巧妙,正好在底图的图案上。底图的制作也好美,字体设计很漂亮。
月儿太厉害了

这个字的位置我真的整不明白,老师在另一个贴子里回说LEFT和TOP就可以实现,可我用了它真不行。
这个在JS里调了半天才到位的。
{:4_170:}好晕

南无月 发表于 2024-5-20 21:52

红影 发表于 2024-5-20 21:04
这个帖子很应景啊,今天是520,借月儿好帖,同祝论坛的朋友们520快乐

{:4_173:}这个真是被炒出来的日子

南无月 发表于 2024-5-20 21:53

红影 发表于 2024-5-20 21:03
月儿的制作厉害了,把几种效果都集中了起来,还加上了椭圆形环绕文本,给月儿点赞

家乡的绿是直接跟的,视频都没变。文本是看花束下方位置空着,放上去试看看,感觉黑黑这个文本效果挺好

南无月 发表于 2024-5-20 21:55

马黑黑 发表于 2024-5-20 21:00
主要是长得白

你白你白,你有晒不黑的白~~这个你到一点也不谦虚。。。{:4_170:}

马黑黑 发表于 2024-5-20 22:15

南无月 发表于 2024-5-20 21:55
你白你白,你有晒不黑的白~~这个你到一点也不谦虚。。。

应该的

红影 发表于 2024-5-20 23:08

南无月 发表于 2024-5-20 21:51
这个字的位置我真的整不明白,老师在另一个贴子里回说LEFT和TOP就可以实现,可我用了它真不行。
这个在J ...

我之前本来也想玩这个,没玩明白,也是定位的问题造成的{:4_173:}

红影 发表于 2024-5-20 23:10

南无月 发表于 2024-5-20 21:52
这个真是被炒出来的日子

今天的日子很巧,是网络情人节,又是小满,还是同济117周年校庆,三喜临门呢。

红影 发表于 2024-5-20 23:11

南无月 发表于 2024-5-20 21:53
家乡的绿是直接跟的,视频都没变。文本是看花束下方位置空着,放上去试看看,感觉黑黑这个文本效果挺好

是的,以前我记得黑黑也有个旋转文本,是另一种方式实现的。

南无月 发表于 2024-5-21 17:44

红影 发表于 2024-5-20 23:11
是的,以前我记得黑黑也有个旋转文本,是另一种方式实现的。

记得,我还用那个旋转的整了个红梅赞的贴子{:4_187:}{:4_173:}

南无月 发表于 2024-5-21 17:45

红影 发表于 2024-5-20 23:10
今天的日子很巧,是网络情人节,又是小满,还是同济117周年校庆,三喜临门呢。

非常难得啊{:4_187:}

南无月 发表于 2024-5-21 17:45

红影 发表于 2024-5-20 23:08
我之前本来也想玩这个,没玩明白,也是定位的问题造成的

奇怪的是常规定位不管用,不知道哪里的问题{:4_170:}
页: [1] 2 3
查看完整版本: 【黑师代码】五月的天空(学习黑师20240410《家乡的绿》背景小播&旋转字效果)