CSS3实现提示工具的渐入渐出效果及CSS3动画简介

上一篇文章用CSS3实现了一个提示工具,本文介绍如何利用CSS3实现提示工具以渐入的方式呈现,以渐出的方式消失。

CSS3主要可以通过两个样式来实现动画效果:animation和transition。

其中,animation需要自己定义一组关键帧从而实现动画,例如:

@keyframes fadein {from { opacity: 0;}to { opacity: 1;visibility: visible;}
}
@keyframes fadeout {from { opacity: 1;visibility: visible;}to {opacity: 0;visibility: hidden;}
}
.tooltip .tooltiptext {visibility: hidden;animation:fade 1s infinite;
}
.tooltip:hover .tooltiptext {animation: fadein 2s 1;
}

上面的css中fadein和fadeout定义了两组动画关键帧(其中每组关键帧中样式组的名称“from”、“to”其实是可以自己随便写的,只要不违反CSS命名规则即可),每一组关键帧实际上就是一个动画,fadein和fadeout就是动画的名称。完成动画定义后,在需要播放动画的元素的CSS中用样式animation即可播放,它的参数包括要播放的关键组(动画)名称、持续时间和重播次数(infinite表示无限循环播放)。如上面的定义就可以在鼠标进入工具元素区域时让提示文本渐入,鼠标移出工具元素区域时让提示文本渐出。还可以通过“,”分隔在animation样式中播放多个动画。

animation动画可以精确控制动画的关键帧,但是编写CSS比较复杂。在提示工具这个用例中显然没必要弄得这么复杂,因此,可以用自动生成关键帧的transition样式来编写。

在上文中的animation动画中,我们使用了visibility和opacity两个属性来控制tooltiptext的显示与隐藏。这主要是由于visibility样式在hidden和visible之间没有过渡状态,因此,无法通过transition产生平滑渐入渐出式动画,也无法在关键帧组中自己定义出一个中间状态,它只会在到了播放时间时突然出现或者消失,而opacity则从0到1之间有无限个可用的连续值作为中间状态。

使用transition样式来实现tooltiptext的渐入渐出可以按如下方式定义:

.tooltip .tooltiptext {visibility: hidden;opacity: 0;transition: opacity 2s linear,visibility 2s;
}.tooltip:hover .tooltiptext {visibility: visible;opacity: 1;transition: opacity 2s linear;
}

可以看出来transition比animation的CSS定义要简洁得多,但是与animation对tooltiptext的visibility和opacity的初始定义要求并不严格不同的是,transition则必须要严格定义好tooltiptext的visibility和opacity的初始值。完整演示页面如下:

<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><title>tooltip的渐入与渐出</title><style>.tooltip {position: relative;display: inline-block;background-color: aqua;}.tooltip .tooltiptext {width: 140%;background-color: gray;text-align: left;text-indent: 2em;border-radius: 0.5em;padding: 0.2em 0.1em;color: #ff0;top: 1.5em;left: 1em;/* 定位 */position: absolute;z-index: 1;/*动画效果*/visibility: hidden;transition: opacity 2s linear, visibility 2s;opacity: 0;}.tooltip:hover .tooltiptext {visibility: visible;opacity: 1;transition: opacity 2s linear;}</style>
</head><body><div class="tooltip">工具元素<span class="tooltiptext">搜索后如有匹配内容高亮,请清空搜索框消除高亮,以免高亮标记被笔记保存。</span><input type="text" placeholder="搜索..."></div><span>相邻元素</span><br><div>下方的元素</div></body></html>

页面效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu22.04安装CUDA+CUDNN+Conda+PyTorch

步骤&#xff1a; 1、安装显卡驱动&#xff1b; 2、安装CUDA&#xff1b; 3、安装CUDNN&#xff1b; 4、安装Conda&#xff1b; 5、安装Pytorch。 一、系统和硬件信息 1、Ubuntu 22.04 2、显卡&#xff1a;4060Ti 二、安装显卡驱动 &#xff08;已经安装的可以跳过&a…

mac M1 创建Mysql8.0容器

MySLQ8.0 拉取m1镜像 docker pull mysql:8.0创建挂载文件夹并且赋予权限 sudo chmod 777 /Users/zhao/software/dockerLocalData/mysql 创建容器并且挂载 docker run --name mysql_8 \-e MYSQL_ROOT_PASSWORDadmin \-v /Users/zhao/software/dockerLocalData/mysql/:/var/l…

BiLSTM 实现股票多变量时间序列预测(PyTorch版)

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

【MATLAB第106期】#源码分享 | 基于MATLAB的有限差分算法的全局敏感性分析模型

【MATLAB第106期】#源码分享 | 基于MATLAB的有限差分法的全局敏感性分析模型 一、原理 有限差分法是一种数值方法&#xff0c;用于估计函数对输入参数的敏感性。在全局敏感性分析中&#xff0c;这种方法特别有用&#xff0c;因为它可以评估模型输出对所有输入参数变化的整体响…

vscode+SSH连接Ubuntu

目录 问题引入 基本思路 Permission denied, please try again 修改用户名与密码 新建用户 最终成功方案 问题引入 ssh 用户名ip地址。用户名是远端服务器的用户名&#xff0c;ip地址也是远端服务器的地址。linux虚拟机的ip地址与windous主体不一样&#xff0c;所以还需要…

2024年对网络安全专业的观点解析

就业前景广阔 网络空间安全专业的就业前景非常广阔。随着信息时代的到来&#xff0c;各类企业和组织对网络安全的需求越来越大&#xff0c;使得该专业的毕业生在市场上拥有很大的需求量。 据统计&#xff0c;近几年网络空间安全行业的就业市场持续增长&#xff0c;职位空缺率…

【BUG】已解决:AttributeError: ‘NoneType‘ object has no attribute ‘split‘

已解决&#xff1a;AttributeError: ‘NoneType‘ object has no attribute ‘split‘ 英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;…

yarn的安装和配置以及更新总结,npm的对照使用差异

1. Yarn简介 Yarn 是一个由 Facebook 开发的现代 JavaScript 包管理器&#xff0c;旨在提供更快、更安全、更可靠的包管理体验。 1.1 什么是Yarn Yarn 是一个快速、可靠和安全的 JavaScript 包管理器&#xff0c;它通过并行化操作和智能缓存机制&#xff0c;显著提升了依赖安…

【React】事件绑定、React组件、useState、基础样式

React 教程 目录 事件绑定 1.1. 基础实现 1.2. 使用事件参数 1.3. 传递自定义参数 1.4. 同时传递事件对象和自定义参数 React 组件 2.1. 组件是什么 2.2. 组件基础使用 useState&#xff1a;状态管理 3.1. 基础使用 3.2. 状态的修改规则 3.3. 修改对象状态 基础样式 4.1. 行…

基于Web的特产美食销售系统的设计与实现

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

HardeningMeter:一款针对二进制文件和系统安全强度的开源工具

关于HardeningMeter HardeningMeter是一款针对二进制文件和系统安全强度的开源工具&#xff0c;该工具基于纯Python开发&#xff0c;经过了开发人员的精心设计&#xff0c;可以帮助广大研究人员全面评估二进制文件和系统的安全强化程度。 功能特性 其强大的功能包括全面检查各…

抖音seo短视频账号矩阵系统源码-SaaS开源部署流程开发者技术分享

抖音seo账号矩阵系统&#xff0c;短视频矩阵系统源码&#xff0c; 短视频矩阵是一种常见的视频编码标准&#xff0c;通过多账号一键授权管理的方式&#xff0c;为运营人员打造功能强大及全面的“矩阵式“管理平台。使用矩阵系统也能保证账号的稳定性&#xff0c;降低账号的风险…

客户端与服务器通讯详解(3):如何选择合适的通讯方式

上篇文章中&#xff0c;我们讲解了客户端与服务器通讯详解&#xff08;2&#xff09;&#xff1a;12种常见通讯方式&#xff0c;重点讲解了http、websocket和RESTful API三种&#xff0c;本文我们继续讲解如何依据场景选择最合适的通讯方式。欢迎友友们点赞评论。 一、客户端服…

基于 asp.net家庭财务管理系统设计与实现

博主介绍&#xff1a;专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用感兴趣的可以先…

Linux 下 ElasticSearch 集群部署

目录 1. ElasticSearch下载 2. 环境准备 3. ElasticSearch部署 3.1 修改系统配置 3.2 开放端口 3.3 安装 ElasticSearch 4. 验证 本文将以三台服务器为例&#xff0c;介绍在 linux 系统下ElasticSearch的部署方式。 1. ElasticSearch下载 下载地址&#xff1a;Past Rel…

vue3+ts+vite项目中使用vite-plugin-pwa搭建 PWA 项目

参考官方github地址&#xff1a; https://github.com/vite-pwa/vite-plugin-pwa 官方文档地址&#xff1a; https://vite-pwa-org.netlify.app/guide MDN地址&#xff1a; https://developer.mozilla.org/zh-CN/docs/Web/Progressive_web_apps 前提概要 最近项目更新需求中&am…

资源管理大师:如何在Gradle中配置资源目录

资源管理大师&#xff1a;如何在Gradle中配置资源目录 在软件开发中&#xff0c;资源管理是项目构建过程中的一个重要环节。资源通常包括配置文件、图片、样式表、本地化文件等&#xff0c;它们对于应用程序的运行至关重要。Gradle作为一个灵活且功能强大的构建工具&#xff0…

【C++】类和对象·this指针

C中的类与C语言中的结构体有很多的相似的地方&#xff0c;可以说本质上除了结构体只能定义成员变量&#xff0c;以及结构体默认的访问控制权限是public之外与class没啥区别。但是结构体变量每次调用函数的时候需要指针&#xff0c;而类中的成员函数明明被保存在公共代码段&…

php 方法追踪其被调用的踪迹

一、遇到的问题 一个公共方法&#xff0c;有多个调用入口&#xff0c;快速排查到其被调用的入口 二、解决 使用debug_backtrace()&#xff0c;其记录了调用方法的所有上层方法&#xff0c;如下为打印的debug_backtrace()的数据&#xff0c;从键值0开始&#xff0c;依次往上一…

Hive第三天

1. 后台启动HIVE的JDBC连接 0 表示标准输入 1 表示标准输出 2 表示标准错误输出 nohup 表示挂起 最后的 & 表示 后台启动 nohup hive -service hiveserver2 > /usr/local/soft/hive-3.1.2/log/hiveserver2.log 2>&1 & jps 查看 Runj…