关键帧动画需要设置的css,如何防止CSS加载关键帧动画?

CSS悬停动画优化
本文介绍了三种改进CSS悬停动画效果的方法:通过监听首次悬停添加动画、预先隐藏并播放动画后再显示元素、直接使用CSS过渡实现动画效果。每种方法都有其优缺点,适用于不同的场景。

解决方案1 ​​ – 在第一个悬停上添加动画

可能最好的选择是不要放下下来的动画,直到用户首次盘旋在容器上。

这涉及监听鼠标悬停事件,然后在该点添加具有动画的类,并删除事件侦听器。主要(潜在的)缺点是它依赖于Javascript。

;(function(){

var c = document.getElementById('container');

function addAnim() {

c.classList.add('animated')

// remove the listener,no longer needed

c.removeEventListener('mouSEOver',addAnim);

};

// listen to mouSEOver for the container

c.addEventListener('mouSEOver',addAnim);

})();

#container {

position:relative;

width:100px;

height:100px;

border-style:inset;

}

#content {

position:absolute;

top:100px;

width:100%;

height:100%;

background-color:lightgreen;

opacity:0;

}

/* This gets added on first mouSEOver */

#container.animated #content {

-webkit-animation:animDown 1s ease;

}

#container:hover #content {

-webkit-animation:animUp 1s ease;

animation-fill-mode:forwards;

-webkit-animation-fill-mode:forwards;

}

@-webkit-keyframes animUp {

0% {

-webkit-transform:translateY(0);

opacity:0;

}

100% {

-webkit-transform:translateY(-100%);

opacity:1;

}

}

@-webkit-keyframes animDown {

0% {

-webkit-transform:translateY(-100%);

opacity:1;

}

100% {

-webkit-transform:translateY(0);

opacity:0;

}

}

解决方案2 – 播放动画隐藏

另一种方法是最初隐藏元素,确保动画在隐藏时播放,然后使其可见。这样做的缺点是,时机可能会稍微偏离,并且显得太早了,而且悬停也不可用。

这需要一些等待动画长度的Javascript,然后使#内容可见。这意味着您还需要将初始不透明度设置为0,因此它不会显示在加载中,并且还会从关键帧中删除可见性 – 这些操作无效:

// wait for the animation length,plus a bit,then make the element visible

window.setTimeout(function() {

document.getElementById('content').style.visibility = 'visible';

},1100);

#container {

position:relative;

width:100px;

height:100px;

border-style:inset;

}

#content {

visibility:hidden;

-webkit-animation:animDown 1s ease;

position:absolute;

top:100px;

width:100%;

height:100%;

background-color:lightgreen;

opacity:0;

}

#container:hover #content {

-webkit-animation:animUp 1s ease;

animation-fill-mode:forwards;

-webkit-animation-fill-mode:forwards;

}

@-webkit-keyframes animUp {

0% {

-webkit-transform:translateY(0);

opacity:0;

}

100% {

-webkit-transform:translateY(-100%);

opacity:1;

}

}

@-webkit-keyframes animDown {

0% {

-webkit-transform:translateY(-100%);

opacity:1;

}

100% {

-webkit-transform:translateY(0);

opacity:0;

}

}

解决方案3 – 使用转换

在您的情况下,您可以通过替换关键帧来替代这个CSS,因此它以不透明度开始:0,只是悬停在不透明度和变换中有变化:

#container {

position:relative;

width:100px;

height:100px;

border-style:inset;

}

#content {

position:absolute;

top:100px;

width:100%;

height:100%;

background-color:lightgreen;

/* initial state - hidden */

opacity:0;

/* set properties to animate - applies to hover and revert */

transition:opacity 1s,transform 1s;

}

#container:hover #content {

/* Just set properties to change - no need to change visibility */

opacity:1;

-webkit-transform:translateY(-100%);

transform:translateY(-100%);

}

本资源为黑龙江省 2023 年水系分布数据,涵盖河流、沟渠、支流等线状要素,以及湖泊、水库、湿地等面状水体,提供完整的二维水文地理框架。数据以标准 GIS 格式发布,包含可编辑 MXD 工程文件、Shapefile 数据以及标准制图 TIF,适用于科研、规划设计、生态评估与地图制图等多类应用场景。 【数据内容】 1、水系线状要素(.shp) 包括主要河流、支流、人工渠道等 属性字段涵盖:名称、类别等 线要素拓扑规范,无断裂与悬挂节点 2、水体面状要素(.shp) 覆盖湖泊、水库、池塘、湿地等面状水体 属性包含:名称、类型等信息 几何边界经过平滑与精修,保证面积统计可靠 3、可编辑 MXD 工程文件(.mxd) 预设图层渲染、图例、比例尺、指北针与布局 支持用户根据自身制图需求快速调整样式、色带及标注规则 博主使用的 ArcMap 10.8 环境 4、标准成图 TIF(.tif) 专业级地图输出,含必要图廓与标注,可直接用于报告、论文与展示 输出分辨率高,适合印刷与电子稿应用 【数据技术说明】 坐标系统:WGS 84 地理坐标系 数据年份:2023 年 制作流程:基于卫星影像、水利普查数据和地理编码信息进行提取 → 几何校正 → 拓扑审查 → 分类整理 → 成图渲染 质量控制措施:保证线状与面状水体不重叠、不缺失;对水库与湖泊边界进行了人工校核,提高空间精度 【应用价值】 地表水资源调查与监测,水利、水文模型的空间输入,城市与农村规划中的水系布局分析,生态修复、水环境治理与湿地保护研究,教学、制图与地理信息可视化应用 【使用说明】 首次打开 MXD 文件前,请确保 Shapefile 和栅格文件均已解压至同一目录,以免出现路径丢失。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值