马黑黑 发表于 2022-4-6 14:16

邓典○极光

<style>
.stage {
        position: relative;
        left: -352px;
        width: 1300px;
        height: 533px;
        background: #000 url('https://638183.freep.cn/638183/Pic/2022/jz.gif') no-repeat center/cover;
        filter: blur(1px);
        cursor: pointer;
}
.stage::before {
        content:attr(data-1);
        position: absolute;
        right: 10px;
        top: 10px;
        font: 900 3em/1em Sans-seirf;
        color: green;
        text-shadow: 2px 2px 4px rgba(0,0,0,.6);
}
.light {
        position: absolute;
        bottom: 0;
        width: 0px;
        height: 0px;
        border: 12px solid;
        border-color: transparent green transparent transparent;
        filter: blur(1px);
        opacity: .6;
        transition: .5s;
        transform-origin: 50% 0;
        transform: scale(80,1.2);
        animation: rot 8s ease infinite alternate;
}
#ufo {
        filter: blur(.5px);
        width: 205px; height: 124px;
        animation:fly 10s ease-in-out infinite alternate;
}
@keyframes fly { to { transform: rotate(20deg) translate(1100px); } }
@keyframes rot {
        to { transform: rotate(-80deg) scale(30,2.5); }
}
</style>

<div class="stage" data-1="邓典·极光">
        <div class="light"></div>
        <img alt="" id="ufo" src="https://638183.freep.cn/638183/Pic/2022/feidie.gif" width="205" height="124" />
</div>

<script>
let stage = document.querySelector('.stage');
let aud = document.createElement('audio');
aud.src = 'http://www.kumeiwp.com/sub/filestores/2022/02/03/38347358be2cf96dcdef7480b313b9c6.mp3';
aud.autoplay = true;
aud.loop = true;
stage.appendChild(aud);
stage.onclick = () => { aud.paused ? aud.play() : aud.pause(); }
</script>

马黑黑 发表于 2022-4-6 14:19

<pre style="font-size: 12px;">
原创代码分享:

&lt;style&gt;
<span style='color: red;'>.stage </span>{
&nbsp; &nbsp;<span style='color: blue;'>position</span>: relative;
&nbsp; &nbsp;<span style='color: blue;'>width</span>: 1300px;
&nbsp; &nbsp;<span style='color: blue;'>height</span>: 533px;
&nbsp; &nbsp;<span style='color: blue;'>background</span>: #000 url(<span style='color: magenta'>'<span style='color: blue;'>https</span>://638183.freep.cn/638183/Pic/2022/jz.gif'</span>) no-repeat center/cover;
&nbsp; &nbsp;<span style='color: blue;'>filter</span>: blur(1px);
&nbsp; &nbsp;<span style='color: blue;'>cursor</span>: pointer;
}
<span style='color: red;'>.<span style='color: blue;'>stage</span>:<span style='color: blue;'></span>:before </span>{
&nbsp; &nbsp;<span style='color: blue;'>content</span>:attr(data-1);
&nbsp; &nbsp;<span style='color: blue;'>position</span>: absolute;
&nbsp; &nbsp;<span style='color: blue;'>right</span>: 10px;
&nbsp; &nbsp;<span style='color: blue;'>top</span>: 10px;
&nbsp; &nbsp;<span style='color: blue;'>font</span>: 900 3em/1em Sans-seirf;
&nbsp; &nbsp;<span style='color: blue;'>color</span>: green;
&nbsp; &nbsp;<span style='color: blue;'>text-shadow</span>: 2px 2px 4px rgba(0,0,0,.6);
}
<span style='color: red;'>.light </span>{
&nbsp; &nbsp;<span style='color: blue;'>position</span>: absolute;
&nbsp; &nbsp;<span style='color: blue;'>bottom</span>: 0;
&nbsp; &nbsp;<span style='color: blue;'>width</span>: 0px;
&nbsp; &nbsp;<span style='color: blue;'>height</span>: 0px;
&nbsp; &nbsp;<span style='color: blue;'>border</span>: 12px solid;
&nbsp; &nbsp;<span style='color: blue;'>border-color</span>: transparent green transparent transparent;
&nbsp; &nbsp;<span style='color: blue;'>filter</span>: blur(1px);
&nbsp; &nbsp;<span style='color: blue;'>opacity</span>: .6;
&nbsp; &nbsp;<span style='color: blue;'>transition</span>: .5s;
&nbsp; &nbsp;<span style='color: blue;'>transform-origin</span>: 50% 0;
&nbsp; &nbsp;<span style='color: blue;'>transform</span>: scale(80,1.2);
&nbsp; &nbsp;<span style='color: blue;'>animation</span>: rot 8s ease infinite alternate;
}
<span style='color: red;'>#ufo </span>{
&nbsp; &nbsp;<span style='color: blue;'>filter</span>: blur(.5px);
&nbsp; &nbsp;<span style='color: blue;'>width</span>: 205px; <span style='color: blue;'>height</span>: 124px;
&nbsp; &nbsp;<span style='color: blue;'>animation</span>:fly 10s ease-in-out infinite alternate;
}
<span style='color: red;'>@keyframes fly </span>{ to { <span style='color: blue;'>transform</span>: rotate(20deg) translate(1100px); } }
<span style='color: red;'>@keyframes rot </span>{
&nbsp; &nbsp;to { <span style='color: blue;'>transform</span>: rotate(-80deg) scale(30,2.5); }
}
&lt;/style&gt;

&lt;<span style='color:darkred'>div</span> <span style='color: red'>class</span><span style='color: blue'>=</span><span style='color: magenta'>"stage"</span> data-1="邓典·极光"&gt;
&nbsp; &nbsp;&lt;<span style='color:darkred'>div</span> <span style='color: red'>class</span><span style='color: blue'>=</span><span style='color: magenta'>"light"</span>&gt;&lt;<span style='color: darkred'>/div</span>&gt;
&nbsp; &nbsp;&lt;<span style='color:darkred'>img</span> alt="" <span style='color: red'>id</span><span style='color: blue'>=</span><span style='color: magenta'>"ufo"</span> <span style='color: red'>src</span><span style='color: blue'>=</span><span style='color: magenta'>"https://638183.freep.cn/638183/Pic/2022/feidie.gif"</span> <span style='color: red'>width</span><span style='color: blue'>=</span><span style='color: magenta'>"205"</span> <span style='color: red'>height</span><span style='color: blue'>=</span><span style='color: magenta'>"124"</span> /&gt;
&lt;<span style='color: darkred'>/div</span>&gt;

&lt;script&gt;
<span style='color: blue'>let</span> stage = <span style='color: red'>document</span>.querySelector(<span style='color: magenta'>'.stage'</span>);
<span style='color: blue'>let</span> aud = <span style='color: red'>document</span>.createElement(<span style='color: magenta'>'audio'</span>);
aud.src = <span style='color: magenta'>'http:<span style='color: green'>//www.kumeiwp.com/sub/filestores/2022/02/03/38347358be2cf96dcdef7480b313b9c6.mp3'</span>;
</span>
aud.autoplay = true;
aud.loop = true;
stage.appendChild(aud);
stage.onclick = () =&gt; { aud.paused ? aud.play() : aud.pause(); }
&lt;/script&gt;
</pre>

红影 发表于 2022-4-6 14:45

原来那个ufo是不动的,被你填了动画呢。{:4_173:}

红影 发表于 2022-4-6 14:45

很玄幻的制作,漂亮{:4_199:}

红影 发表于 2022-4-6 14:56

原来动图还能用放大尺寸,嗯,这样就不用因为传大的动图无处传而麻烦了。{:4_173:}

红影 发表于 2022-4-6 14:59

ufo和音乐相关联,可以控制音乐的播放呢。

马黑黑 发表于 2022-4-6 14:59

红影 发表于 2022-4-6 14:56
原来动图还能用放大尺寸,嗯,这样就不用因为传大的动图无处传而麻烦了。

也要看图片的质量。如果是矢量图片,那最好,怎么放大都不会失真;不是的话,质量好的也可以适当放大,然后加点模糊滤镜,大概还可以的。

马黑黑 发表于 2022-4-6 15:01

红影 发表于 2022-4-6 14:59
ufo和音乐相关联,可以控制音乐的播放呢。

可以的。我现在是用整个舞台的点击来控制音乐,免得去追那个ufo追不上{:5_117:}

马黑黑 发表于 2022-4-6 15:08

红影 发表于 2022-4-6 14:45
原来那个ufo是不动的,被你填了动画呢。

它只有顶部的灯是动态的

红影 发表于 2022-4-6 15:14

马黑黑 发表于 2022-4-6 15:01
可以的。我现在是用整个舞台的点击来控制音乐,免得去追那个ufo追不上

我还满世界去追着点,以为我点中了飞碟呢{:4_173:}
这飞碟为什么只定义了translate(1100px)的轨迹却能走出弧形呢,是和transform: rotate(20deg) 这个相关吧,这个原以为是让飞碟自身旋转呢。

马黑黑 发表于 2022-4-6 15:14

本帖最后由 马黑黑 于 2022-4-6 15:16 编辑

红影 发表于 2022-4-6 14:45
很玄幻的制作,漂亮
这里比较值得深究的问题是飞碟的运行轨迹,为什么是这个路线。记得探讨过rotate的怪异行为,我在这里巧妙利用这一点,让它来给出一个半椭圆的运行轨迹,方法是与 translate 结合。

rotate 与 translate 放在一起的时候,translate的运行路线会受到影响。本帖,translate本来是令飞碟沿水平方向行进的,因为有rotate(20deg)在前面,基点已经不是飞碟图片的中心,而是因着rotate的作用产生不是人为定义的变化,故而有这个弧线路径。

马黑黑 发表于 2022-4-6 15:17

红影 发表于 2022-4-6 15:14
我还满世界去追着点,以为我点中了飞碟呢
这飞碟为什么只定义了translate(1100px)的轨迹却能走 ...

你的理解是正确的。恰好我再11楼也给出了解释。

红影 发表于 2022-4-6 15:25

马黑黑 发表于 2022-4-6 14:59
也要看图片的质量。如果是矢量图片,那最好,怎么放大都不会失真;不是的话,质量好的也可以适当放大,然 ...

高度方向你取的值小了,貌似多余的自动被切了。

光柱里有几个不懂。transition: .5s是控制什么的,转动和比例看到动态里有。
还有它的定位,bottom: 0;这个是什么,不带px的么。transform-origin: 50% 0;不是意味着是横向中么,怎么会在底左?

红影 发表于 2022-4-6 15:26

马黑黑 发表于 2022-4-6 15:14
这里比较值得深究的问题是飞碟的运行轨迹,为什么是这个路线。记得探讨过rotate的怪异行为,我在这里巧妙 ...

巧了,正好对这点不理解呢。谢谢黑黑解答{:4_187:}

红影 发表于 2022-4-6 15:28

马黑黑 发表于 2022-4-6 15:17
你的理解是正确的。恰好我再11楼也给出了解释。

现在ufo都理解了,光柱还有些疑问,看13楼{:4_173:}

马黑黑 发表于 2022-4-6 15:30

红影 发表于 2022-4-6 15:28
现在ufo都理解了,光柱还有些疑问,看13楼

我看看

红影 发表于 2022-4-6 15:30

马黑黑 发表于 2022-4-6 15:08
它只有顶部的灯是动态的

光柱的模糊滤镜正好在顶端?倒是巧了呢,这样看起来更真实{:4_187:}

马黑黑 发表于 2022-4-6 15:38

红影 发表于 2022-4-6 15:25
高度方向你取的值小了,貌似多余的自动被切了。

光柱里有几个不懂。transition: .5s是控制什么的,转 ...

图片被剪裁问题:如果总体不受影响,没啥问题。

transition: .5s : 主要是定义一下过渡的时律,为避免物件在运动时出锯齿,我也不知道管不管用。这句没有也行,大咖们都用。

bottom: 0 :定位光柱在底部。当数值是0时,可以不要单位和百分比符号。

transform-origin: 50% 0; :这是光柱运动基点,位于 x 50%、y 0 的坐标点。光柱的运动围绕那个基点。

马黑黑 发表于 2022-4-6 15:40

红影 发表于 2022-4-6 15:30
光柱的模糊滤镜正好在顶端?倒是巧了呢,这样看起来更真实

模糊滤镜是针对整体的,至于产生的效果如何,鬼知道

红影 发表于 2022-4-6 15:48

马黑黑 发表于 2022-4-6 15:38
图片被剪裁问题:如果总体不受影响,没啥问题。

transition: .5s : 主要是定义一下过渡的时律,为避免 ...
transform-origin: 50% 0; :这是光柱运动基点,位于 x 50%、y 0 的坐标点。光柱的运动围绕那个基点。
这个挺难理解,它的50%正好在灯柱的顶点?
bottom: 0 :定位光柱在底部。为什么是底部的左边?而不是中间或者右边。
页: [1] 2 3 4
查看完整版本: 邓典○极光