红影 发表于 2022-8-7 20:34

太空流浪(学着用黑黑的两个效果)

<style>
#papa { left: -302px; top:120px;width: 1200px; height: 675px; background: blue url('https://pic.imgdb.cn/item/62ef681e16f2c2beb11ab0e0.jpg')

no-repeat center/cover; box-shadow: 3px 3px 24px #000; position: relative; overflow: hidden;}
#ball { position: absolute; width: 480px; height: 350px; cursor: pointer; z-index: 100;}
#tit { position: absolute; padding: 0; margin: 0; left: 20px; top: 20px; font: bold 2em sans-serif; color: #6795ac; text-shadow:

1px 1px 2px rgba(0,0,0,.75); }
.mpic{ position: absolute; width: 100px; height: 100px; right: -100px; top: -675px; }
@keyframes shot { from {transform: translate(1024px, 0px); } to { transform: translate(-1200px,1280px); }}
</style>

<div id="papa">
      <span id="tit">Far from Home电影《外星人》主题音乐</span>
      <img id="ball" src="https://pic.imgdb.cn/item/62efaf7716f2c2beb160f90b.png" alt="" />
</div><br><br><br><br><br><br>

<script>

let moveX = 0, moveY = 0, stepX = 1, stepY = 1, canMove = true, aud = new Audio(), timer;

aud.src = 'https://music.163.com/song/media/outer/url?id=1394017237.mp3';
aud.loop = true;
aud.autoplay = true;

timer = requestAnimationFrame(motion);

function motion() {
      moveX += stepX;
      moveY += stepY;
      ball.style.left = moveX + 'px';
      ball.style.top = moveY + 'px';
      timer = requestAnimationFrame(motion);
      if(moveX < 0 || moveX > papa.offsetWidth - ball.offsetWidth) stepX = -stepX;
      if(moveY < 0 || moveY > papa.offsetHeight - ball.offsetHeight) stepY = -stepY;
}

ball.onclick = () => aud.paused ? (aud.play(), requestAnimationFrame(motion)) : (aud.pause(), cancelAnimationFrame(timer));

let arr = ;
for(x of arr) {
      let ele = document.createElement('img');
      ele.className = 'mpic';
      ele.src = 'https://pic.imgdb.cn/item/62ef637d16f2c2beb1077177.png';
      ele.alt = '';      
      ele.style.animation = 'shot 4s linear ' + x * .6 + 's infinite';
      papa.appendChild(ele);
}
</script>

红影 发表于 2022-8-7 20:35

外星人因为病毒的侵袭,被迫太空流浪{:4_173:}

小辣椒 发表于 2022-8-7 20:35

沙发我的{:4_174:}

小辣椒 发表于 2022-8-7 20:36

欣赏亲爱的精美的制作{:4_178:}

小辣椒 发表于 2022-8-7 20:36

左右开弓,厉害{:4_170:}

红影 发表于 2022-8-7 20:36

@马黑黑怎样让那个飘浮的球在病毒前面?{:4_204:}
原来宽度变一下,对角线也变了,感觉弄代码坑真多啊{:4_173:}

红影 发表于 2022-8-7 20:45

试着调整一下病毒出来的方向,原来数据不是简单地翻倍就可以了。本来用的1024的宽,觉得效果不太好,调成了1200,发现病毒又一次无法在对角线上了,调了一下,还差点,就这样吧,不调了{:4_173:}

红影 发表于 2022-8-7 20:47

小辣椒 发表于 2022-8-7 20:35
沙发我的

亲爱的真快,我正想着怎样让病毒完全在对角线上呢,刚想再调一下,发现亲爱的已经回复了{:4_173:}

马黑黑 发表于 2022-8-7 20:47

本帖最后由 马黑黑 于 2022-8-7 20:51 编辑

红影 发表于 2022-8-7 20:36
@马黑黑怎样让那个飘浮的球在病毒前面?
你把漂浮器限制在左下区域就行。具体做法是:

步骤一:更改 moveY = 0 为 moveY = 300(300是个大约数,一般是父框高度的一半);

步骤二:更改 motion 函数:

      if(moveX < 0 || moveX > (papa.offsetWidth - ball.offsetWidth) / 2) stepX = -stepX;
      if(moveY < 300 || moveY > papa.offsetHeight - ball.offsetHeight) stepY = -stepY;

红影 发表于 2022-8-7 20:48

小辣椒 发表于 2022-8-7 20:36
欣赏亲爱的精美的制作

想把两个效果放在一起,前面不知道什么地方弄错了,一直弄不出来。

马黑黑 发表于 2022-8-7 20:48

创意不错,但是没分给了{:4_173:}

红影 发表于 2022-8-7 20:49

小辣椒 发表于 2022-8-7 20:36
左右开弓,厉害

换了个方向,感觉往斜下跑比较好,结果简单的换方向却折腾半天,代码太不熟了{:4_173:}

马黑黑 发表于 2022-8-7 20:52

红影 发表于 2022-8-7 20:36
@马黑黑怎样让那个飘浮的球在病毒前面?
原来宽度变一下,对角线也变了,感觉弄代码坑真多啊{: ...

看 9 #

红影 发表于 2022-8-7 20:55

马黑黑 发表于 2022-8-7 20:47
你把漂浮器限制在左下区域就行。具体做法是:

步骤一:更改 moveY = 0 为 moveY = 300(300是个大约数 ...

可是,我想让它满世界跑啊,还想让它在病毒前面{:4_173:}

好吧,听你的,我去调一下试试{:4_187:}

红影 发表于 2022-8-7 21:02

马黑黑 发表于 2022-8-7 20:52
看 9 #

不行呢,在本地试了一下,改后好怪异,漂浮球在下部走波浪线了。算了,还是这样吧,不改了{:4_204:}

马黑黑 发表于 2022-8-7 21:05

红影 发表于 2022-8-7 21:02
不行呢,在本地试了一下,改后好怪异,漂浮球在下部走波浪线了。算了,还是这样吧,不改了

也许我回帖时手写的代码不准确,现在把测试过的放在这里:

        if(moveX < 0 || moveX > (papa.offsetWidth - ball.offsetWidth) / 2) stepX = -stepX;
        if(moveY < 300 || moveY > papa.offsetHeight - ball.offsetHeight) stepY = -stepY;

前面提到的 moveY = 0 要改为 moveY = 300

马黑黑 发表于 2022-8-7 21:08

红影 发表于 2022-8-7 20:55
可是,我想让它满世界跑啊,还想让它在病毒前面

好吧,听你的,我去调一下试试
满世界跑又要在病毒图片的前面那不行,即使行也是很大的编程,毕竟一个是无向性的,一个是单向的

加林森 发表于 2022-8-7 21:35

挺好玩的。

马黑黑 发表于 2022-8-7 21:42

加林森 发表于 2022-8-7 21:35
挺好玩的。

这个创意好,值得学习

加林森 发表于 2022-8-7 22:06

马黑黑 发表于 2022-8-7 21:42
这个创意好,值得学习

嗯嗯。
页: [1] 2 3 4 5
查看完整版本: 太空流浪(学着用黑黑的两个效果)