我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CSS3动画特效在活动页中的应用示例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CSS3动画特效在活动页中的应用示例

这篇文章给大家分享的是有关CSS3动画特效在活动页中的应用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

背景

在不知不觉中,忙碌的一年将要结束,又到了一年一度的活动期了,为了展现喜庆的节日气氛,活动页面动态效果必不可少。

先上效果图:

CSS3动画特效在活动页中的应用示例

一、整体分析

从图中可 以看到主要的动态效果有动态指示箭头和漫天飘雪效果,如果偷懒的话并直接使用这张效果图作为背景的话很不可取,因为张图片大小足有 3M多,这对于服务器和用户体验来说简直就是灾难,由于是活动页面访问量自然少不了,在并发量较高的情况下服务器自然不堪重负、同时也心疼用户的流量和用户等待响应的时间,作为一个精益求精的人,我们的原则是能用程序实现的效果坚决不用 gif ,能节省多少资源就节省多少资源。

二、动态指示箭头

从程序实现角度来看,我们首先要做的是封装变化点,将变与不变相分离,图中的五个关卡形式大体一致,每个关卡都有底座和箭头,将关卡封装好后再用数据驱动每个关卡的位置和箭头指示方向。

相关数据如下:

[    {        state: 0,        left: 9,        top: -2,        direction: { rotateZ: 290, color: "#d26754" }    },    {        state: 0,        left: 66,        top: 10,        direction: { rotateZ: 24, color: "#f58351" }    },    {        state: 0,        left: 18,        top: 20,        direction: { rotateZ: 30, color: "#f78351" }    },    {        state: 0,        left: -2,        top: 36.5,        direction: { rotateZ: 295, color: "#e19d47" }    },    {        state: 0,        left: 52,        top: 49.5,        direction: { rotateZ: 293, color: "#e19d47" }    }]

1.动态效果分析

仔细观察效果图后发现,整体是有一个 3D 透视效果,视角并非垂直俯视,而像是 45 °角俯视。首先想到的是强大的 css3 的 3D 旋转,箭头效果可分为运行轨道 + 箭头运行效果。这样只需要对轨道做 3D 透视,箭头沿着外层轨道做重复运动就可以了。
 

CSS3动画特效在活动页中的应用示例

具体实现

<div class="item" flex="main:center cross:center":style="{left:item.left+'%',top:item.top+'%'}"v-for="item in items" @click="showReceive(item)">    <div class="bottom" flex="main:center cross:center">        <div class="direction" flex="dir:top" :style="{transform:`rotateX(34deg) rotateY(0deg) rotateZ(${item.direction.rotateZ}deg)`}">            <div class="half"></div>            <div class="half track">                <div class="arrow"                :style="{transform: `rotate(${item.direction.rotate}deg`,                right:`${item.direction.right}px`,                'border-color': `${item.direction.color} transparent transparent`                }"></div>            </div>        </div>    </div></div>  .direction {    position: absolute;    width: 20px;    height: 260%;    .half {      flex: 1;    }    .track {      position: relative;      // margin-top: 90px;      margin-top: 2em;      .arrow {        position: absolute;        width: 0;        height: 0;        border: 10px solid;        border-color: red transparent transparent;        animation: dynamicArrow 3000ms infinite linear;      }    }  }@keyframes dynamicArrow {  0% {    opacity: 1;    bottom: 100%;  }  70% {    opacity: 1;  }  90% {    opacity: 0.1;    bottom: -20px;  }  100% {    opacity: 0;  }}

三、漫天飘雪

仔细观察效果图,雪花有大有小、速度有快有慢、位置有近有远、颜色有深有浅雪花整体飘动的方向是从上往下从左到右,并且要下的很均匀。

实现思路

雪花飘动轨道 +雪花飘动效果,将轨道倾斜一定角度后平铺整个屏幕,用数据控制每条轨道的位置、层级、轨道内雪花的大小、运行延迟、运行速度、颜色深浅。为了更直观的看到实现效果,将轨道设置背景色如下图:

CSS3动画特效在活动页中的应用示例

具体实现

<div class="snows">  <div class="s_track" :style="{transform:`rotate(45deg) translate(${snow.deviation}px,${-snow.deviation}px)`,'z-index':snow.zindex}" v-for="snow in snows">      <img class="snow" class="lazy" data-src="/static/original/img/DoubleDenierActivies/cbp_snow.png" :style="{opacity:snow.opacity,animation: `dynamicSnow ${snow.speed}ms ${snow.delay}ms infinite linear`,width:snow.size*1.14+'px',height:snow.size+'px'}"/>  </div></div>.s_track {  position: absolute;  width: 220%;  // height: 10px;  top: -10px;  transform-origin: 0 0 0;  .snow {    visibility: hidden;    position: absolute;    z-index: 2;    animation: dynamicSnow 2000ms infinite linear;  }}@keyframes dynamicSnow {  0% {    visibility: visible;    top: 0;    left: 0;    transform: rotate(0);  }  100% {    visibility: visible;    top: 100%;    left: 100%;    transform: rotate(360deg);  }}let snows = [],  initCount = 16;for (let i = 0; i < initCount; i++) {  let unit = i - 8,    speed = i > 3 ? i % 3 : i,    size = 0;  speed++;  if (i % 5 == 0) {    size = 10;  } else if (i % 8 == 0) {    size = 20;  } else {    size = Math.random() * 10;  }  snows.push({    deviation: unit * 40, //位置    delay: Math.random() * 1000, //延迟    speed: speed * 3000, //速度    opacity: speed / 4,    size: size,    zindex: size >= 10 ? 4 : 0  });}let snows2 = [];snows.forEach(f => {  snows2.push({    ...f,    deviation: snows[parseInt(Math.random() * initCount)].deviation - 10,    delay: f.delay + 1000 //延迟  });});let snows3 = [];snows.forEach(f => {  snows3.push({    ...f,    deviation: snows[parseInt(Math.random() * initCount)].deviation - 20,    delay: f.delay + 2000 //延迟  });});snows = snows.concat(snows2);snows = snows.concat(snows3);snows.sort((a, b) => a.deviation - b.deviation);this.snows = snows;

感谢各位的阅读!关于“CSS3动画特效在活动页中的应用示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CSS3动画特效在活动页中的应用示例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

CSS3动画特效在活动页中的应用示例

这篇文章给大家分享的是有关CSS3动画特效在活动页中的应用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。背景在不知不觉中,忙碌的一年将要结束,又到了一年一度的活动期了,为了展现喜庆的节日气氛,活动页面动态效果
2023-06-08

实例解析如何在Android应用中实现弹幕动画效果

在B站或者其他视频网站看视频时,常常会打开弹幕效果,边看节目边看大家的吐槽。弹幕看起来很有意思,今天我们就来实现一个简单的弹幕效果。 从直观上,弹幕效果就是在一个ViewGroup上增加一些View,然后让这些View移动起来。所以,整体的
2022-06-06

Android应用中利用ViewPager实现多页面滑动切换效果示例

1、添加android support包 因为上面的几个类都是在android support包中才提供,我们先添加包。 在Eclipse->Window->Android SDK Manager,选择列表中Extras->Android
2022-06-06

Android编程仿Iphone拖动相片特效Gallery的简单应用示例

本文实例讲述了Android编程仿Iphone拖动相片特效Gallery的简单应用。分享给大家供大家参考,具体如下: Step 1:准备图片素材. 将icon2,icon3,icon4,icon5,icon6五张图片导入res/drawab
2022-06-06

如何在Android应用中利用popupwindow实现一个进入与退出的动画效果

这篇文章将为大家详细讲解有关如何在Android应用中利用popupwindow实现一个进入与退出的动画效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体代码如下所示:
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录