怎么用css的方法将门打开后展示灯笼自上而下的动画?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用css的方法将门打开后展示灯笼自上而下的动画?相关的知识,希望对你有一定的参考价值。

您可以使用 CSS 动画来实现门打开后展示灯笼自上而下的动画效果。具体步骤如下:

1. 在 html 中创建门和灯笼的元素,并给这些元素添加类名。例如:

<div class="door">门</div>
<div class="lantern">灯笼</div>

2. 在 CSS 中为门添加打开的样式。例如,可以使用 transform 属性来旋转门:

.door
transform: rotate(90deg);


3. 为灯笼添加动画样式。可以使用 CSS 的 animation 属性来实现动画效果。例如,可以使用以下样式来使灯笼从上方移动到下方:

.lantern
animation: moveDown 1s ease-in-out;


@keyframes moveDown
from
top: -100px;

to
top: 100px;



4. 使用 javascript 来控制动画的播放。可以在门打开后调用灯笼元素的 classList.add 方法,来添加动画类名,从而触发动画的播放。

    例如:

    document.querySelector('.door').addEventListener('click', function()
    document.querySelector('.lantern').classList.add('lantern-animation');
    );

    希望这些信息能帮助到您!



参考技术A 如果你使用了我上面提供的css代码,那么当你在门打开的事件中添加类'lantern-animation'时,灯笼将从上到下运动。
例如,你可以使用以下JavaScript代码来触发动画:
document.getElementById('door').addEventListener('click', function()
document.getElementById('lantern').classList.add('lantern-animation');
);
在这段代码中,当用户点击门的时候,灯笼的类别将添加'lantern-animation',从而触发动画。
注意:在这种情况下,灯笼动画只会执行一次。如果你想让它循环执行,你可以在css代码中设置animation-iteration-count属性。
例如:
.lantern
animation: lantern-animation 1s linear;
transform: translateY(-100%);
animation-iteration-count: infinite;

这样,灯笼动画就会无限循环执行。
参考技术B 要使用CSS制作一个门打开后展示灯笼自上而下的动画,你可以使用CSS的过渡效果和变换效果。
具体来说,你可以在门的HTML元素上添加一个类,并使用CSS的过渡效果使门打开的动画更平滑。然后,你可以使用变换效果将灯笼的位置从上方移动到下方。
下面是一个示例代码,展示了如何使用CSS的过渡效果和变换效果制作门打开后展示灯笼自上而下的动画:
HTML代码:
<div class="door">
<div class="lantern"></div>
</div>
CSS代码:

.door
transition: all 0.5s ease;

.door.open
transform: rotateY(90deg);

.lantern
transition: all 0.5s ease;
transform: translateY(-100%);

.door.open .lantern
transform: translateY(0%);

在上面的代码中,我们使用了CSS的过渡效果来使门打开的动画更平滑,并使用变换效果将灯笼的位置从上方移动到下方。
参考技术C 方法/步骤
首先,先在<body></body>中加入门

然后写好大门的css,如下:[由于本人设计不好,所以这里的门都是用颜色块代替的,大家在用的时候可以换成各种门的背景]

css字体设置为rem后,手机横竖屏切换的时候,字体变化会有个动画效果怎么办?

手机站里面做了响应式控制后,字体用大小rem,实现不同尺寸的手机显示不一样大小的字体,但是有个问题就是,在手机从竖屏切换到横屏的时候,字体不是一次变大,而是动画效果一般慢慢变大,要怎么调整?
没有设置transition
代码是这样的
@media only screen and (min-width: 320px) and (max-width:374px)
html,bodyfont-size:87.5%;

@media only screen and (min-width: 375px) and (max-width:479px)
html,bodyfont-size:100%;

@media only screen and (min-width: 414px) and (max-width:479px)
html,bodyfont-size:100%;


@media only screen and (min-width: 480px)
html,bodyfont-size:150%;
.tool ul li afont-size:16px;

<style>.scalefont-size:1.2rem;</style>
<div class='scale'>这是放大的字体</div>

参考技术A 首先,rem是根据根元素的字体大小来调整的。所以不管横屏还是竖屏,只要根元素的字体大小没有变,就不会变。
然后你说的,慢慢变大的问题,你看看是不是有哪里设置了transition。追问

没有设置transition
就是全局做了一个@media 字体大小控制,然后调用的时候用的rem
这是放大的字体
然后第一次打开是没有问题的,只是当把手机屏幕翻转的时候,他会自动响应字体大小, 这时候,字体会有一个慢慢变化的过程,就像你说的transition效果,而不是一下就切换大小。但是我并没有用transition

追答

根元素html的字体大小不要变,调整不同media下的.scale的字体大小。
你现在是固定了.scale相对于根文档的大小,反过来了。
还有,你把每行的min-width去掉,多此一举了。only也可以去掉。

追问

哈,还是你前面说对了,确实是被transition影响了,因为网页里面我没做内容,偏偏引用了一个插件。谢了。

本回答被提问者采纳

以上是关于怎么用css的方法将门打开后展示灯笼自上而下的动画?的主要内容,如果未能解决你的问题,请参考以下文章

jquery的animate怎么获取动画的CSS属性呢?

脱离文档流是啥意思

html+css设计两个摆动的大灯笼

html+css设计两个摆动的大灯笼

html+css设计两个摆动的大灯笼

css字体设置为rem后,手机横竖屏切换的时候,字体变化会有个动画效果怎么办?