首页 > 其他分享 >css 实现弹窗缩放出现,从小放大

css 实现弹窗缩放出现,从小放大

时间:2024-08-06 14:39:42浏览次数:7  
标签:opacity 动画 scale 缩放 transform css 弹窗

在CSS中,实现弹窗从小放大的动画效果,可以使用transform属性和transition属性或者@keyframes动画。以下是几种实现方式:

使用transition

当弹窗元素的类被添加或移除时,可以使用transition来实现平滑的缩放效果。

.modal {
  opacity: 0;
  transform: scale(0.5); /* 初始缩放比例较小 */
  transition: transform 0.5s ease, opacity 0.5s ease; /* 动画持续时间和缓动函数 */
}

.modal.open {
  opacity: 1;
  transform: scale(1); /* 打开时的缩放比例为正常大小 */
}

然后在JavaScript中切换类来控制弹窗的显示和隐藏:

const modalElement = document.querySelector('.modal');
// 显示弹窗
modalElement.classList.add('open');
// 隐藏弹窗
// modalElement.classList.remove('open');

使用@keyframes

如果需要更复杂的动画效果,可以使用@keyframes来定义。

@keyframes modalFadeIn {
  from {
    opacity: 0;
    transform: scale(0.5);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.modal {
  animation: modalFadeIn 0.5s ease forwards; /* 动画持续时间,缓动函数和填充模式 */
}

/* 如果需要在隐藏时也使用动画 */
@keyframes modalFadeOut {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0);
  }
}

.modal.close {
  animation: modalFadeOut 0.5s ease forwards;
}

在JavaScript中控制动画的播放:

const modalElement = document.querySelector('.modal');
// 显示弹窗
modalElement.classList.remove('close');
// 隐藏弹窗
// modalElement.classList.add('close');

注意事项:

  • 使用transform: scale()可以实现元素的缩放效果,scale(1)是原始大小,scale(0)是完全缩小到看不见。
  • opacity属性用来控制元素的透明度,从0(完全透明)到1(完全不透明)。
  • transitionanimation属性可以让元素的变换更加平滑。
  • forwards填充模式确保动画完成后,元素保持在最后一帧的状态。
  • 您可以根据需要调整动画的持续时间和缓动函数。

使用这些CSS技术,您可以创建吸引人的弹窗动画效果,增强用户体验。

标签:opacity,动画,scale,缩放,transform,css,弹窗
From: https://www.cnblogs.com/yoona-lin/p/18345093

相关文章

  • CSS中span元素垂直居中【解决span元素内基线对齐问题】
    CSS中span元素垂直居中【解决span元素内基线对齐问题】在样式的书写中,我们常常使用以下方式实现垂直居中,若span元素内例外,解决办法看文章最后<divclass="parent"><spanclass="child">text</span></div>1.flex布局方式垂直居中.parent{display:flex;align-ite......
  • 爬虫:xpath高级使用,bs4使用,bs4-css选择器
    xpath高级使用fromlxmlimportetree#由于本次要格式化的内容是一个文件,所以用parse,如果是一个html格式的字符串就用HTMLhtml=etree.parse('02_xpath.html')#可以连接多个但是每两个之间要用一个管道符来连接#print(html.xpath('//ol/li[@data="one"]/text()|......
  • CSS书写模式 Writing Mode text-combine-upright
     writing-mode属性定义了文本在水平或垂直方向上如何排布。语法格式如下:writing-mode:horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lrhorizontal-tb:水平方向自上而下的书写方式。即left-right-top-bottomvertical-rl:垂直方向自右而左的书写方式。......
  • 【Vitepress系列】-- 自定义组件及布局,配置tailwindcss、配置Markdown
    Vitepress自定义页面,以及配置tailwindcssvitepress中,除了使用一些配置项目,还可以通过写vue代码,来做一个定制化的UI。下面这个UI主页便是vue组件+tailwindcss做的一.自定义vitepress中,如果内置的home、doc、page不满足需求,还可以自己写vue代码进行自定义1.1自定义布......
  • css实现el-select右侧箭头向上向下动画
    css实现el-select右侧箭头向上向下动画<divclass="chooseTag-tip"><i:class="['el-icon-arrow-up',tipFlag?'chooseTag-tip-up':'chooseTag-tip-down']"></i></div><script>tipFla......
  • CSS学习:flex布局
    flex意为“弹性布局”,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。当我们为父盒子设为flex布局以后,子元素的float、clear和vertical-align属性将失效。伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局flex布局原理采用Flex布局的元素,称为Flex容器......
  • CSS学习:继承、权重关系、伪类选择器、媒体查询
    1、具有继承性质的样式(可以被子元素继承)color文字颜色 ;font-family字体族;font-size字体大小; font-weight字体粗细;line-height行高;text-align文本对齐方式;visibility可见性;cursor鼠标指针样式。2、不具有继承性质的样式(不能被子元素继承)background-color背景颜色;border......
  • css手撕奥运五环
    巴黎奥运会正如火如荼地进行,本文来使用CSS来画一个奥运五环。奥运五环是相互连接的,因此在视觉上会产生重叠效果,这也是实现五环最有挑战性的部分。接下来,将利用CSS的伪元素,巧妙地实现环环相扣的效果! 根据五环的位置特点,可以将中间的黑色环设置为HTML的父元素,而将其他颜色......
  • 3.初识CSS与文本背景样式
    目录1.上节回顾2.CSS定义3.CSS选择器4.CSS样式的三种写法5.div盒子标签(division)6.文本样式(font)7.背景样式(background)1.上节回顾超链接a标签:<ahref='地址'>超链接文本</a> 也可以用id属性来超链接文本里面的内容<imgsrc='图片地址'alt='图片描述'>列表分为有序,无序,自定......
  • html+css 实现hover边框彩色流动
    前言:哈喽,大家好,今天给大家分享html+css绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......