mask属性是css3的吗_使用CSS3 mask(蒙版,遮罩)属性实现超酷按钮悬停动画

CSS

语言:

CSSSCSS

确定

@import url("https://fonts.googleapis.com/css?family=Lato:100,300,400");

@import url("https://fonts.googleapis.com/css?family=Roboto:100");

* {

margin: 0;

padding: 0;

box-sizing: border-box;

}

.header {

text-align: center;

font-family: 'Roboto', sans-serif;

font-size: 34px;

margin-top: 12vh;

}

.footer {

text-align: center;

font-family: 'Lato', sans-serif;

font-weight: 300;

font-size: 20px;

margin-top: 15vh;

}

.button-container-1 {

position: relative;

width: 100px;

height: 50px;

margin-left: auto;

margin-right: auto;

margin-top: 6vh;

overflow: hidden;

border: 1px solid;

font-family: 'Lato', sans-serif;

font-weight: 300;

font-size: 20px;

transition: 0.5s;

letter-spacing: 1px;

}

.button-container-1 button {

width: 101%;

height: 100%;

font-family: 'Lato', sans-serif;

font-weight: 300;

font-size: 20px;

letter-spacing: 1px;

background: #000;

-webkit-mask: url("/uploads/1705/nature-sprite.png");

mask: url("/uploads/1705/nature-sprite.png");

-webkit-mask-size: 2300% 100%;

mask-size: 2300% 100%;

border: none;

color: #fff;

cursor: pointer;

-webkit-animation: ani2 0.7s steps(22) forwards;

animation: ani2 0.7s steps(22) forwards;

}

.button-container-1 button:hover {

-webkit-animation: ani 0.7s steps(22) forwards;

animation: ani 0.7s steps(22) forwards;

}

.button-container-2 {

position: relative;

width: 100px;

height: 50px;

margin-left: auto;

margin-right: auto;

margin-top: 7vh;

overflow: hidden;

border: 1px solid #000;

font-family: 'Lato', sans-serif;

font-weight: 300;

transition: 0.5s;

letter-spacing: 1px;

}

.button-container-2 button {

width: 101%;

height: 100%;

font-family: 'Lato', sans-serif;

font-weight: 300;

font-size: 20px;

letter-spacing: 1px;

background: #000;

-webkit-mask: url("/uploads/1705/urban-sprite.png");

mask: url("/uploads/1705/urban-sprite.png");

-webkit-mask-size: 3000% 100%;

mask-size: 3000% 100%;

border: none;

color: #fff;

cursor: pointer;

-webkit-animation: ani2 0.7s steps(29) forwards;

animation: ani2 0.7s steps(29) forwards;

}

.button-container-2 button:hover {

-webkit-animation: ani 0.7s steps(29) forwards;

animation: ani 0.7s steps(29) forwards;

}

.button-container-3 {

position: relative;

width: 100px;

height: 50px;

margin-left: auto;

margin-right: auto;

margin-top: 8vh;

overflow: hidden;

border: 1px solid #000;

font-family: 'Lato', sans-serif;

font-weight: 300;

transition: 0.5s;

letter-spacing: 1px;

}

.button-container-3 button {

width: 101%;

height: 100%;

font-family: 'Lato', sans-serif;

font-weight: 300;

font-size: 20px;

letter-spacing: 1px;

background: #000;

-webkit-mask: url("/uploads/1705/nature-sprite-2.png");

mask: url("/uploads/1705/nature-sprite-2.png");

-webkit-mask-size: 7100% 100%;

mask-size: 7100% 100%;

border: none;

color: #fff;

cursor: pointer;

-webkit-animation: ani2 0.7s steps(70) forwards;

animation: ani2 0.7s steps(70) forwards;

}

.button-container-3 button:hover {

-webkit-animation: ani 0.7s steps(70) forwards;

animation: ani 0.7s steps(70) forwards;

}

.mas {

position: absolute;

color: #000;

text-align: center;

width: 101%;

font-family: 'Lato', sans-serif;

font-weight: 300;

position: absolute;

font-size: 20px;

margin-top: 12px;

overflow: hidden;

}

@-webkit-keyframes ani {

from {

-webkit-mask-position: 0 0;

mask-position: 0 0;

}

to {

-webkit-mask-position: 100% 0;

mask-position: 100% 0;

}

}

@keyframes ani {

from {

-webkit-mask-position: 0 0;

mask-position: 0 0;

}

to {

-webkit-mask-position: 100% 0;

mask-position: 100% 0;

}

}

@-webkit-keyframes ani2 {

from {

-webkit-mask-position: 100% 0;

mask-position: 100% 0;

}

to {

-webkit-mask-position: 0 0;

mask-position: 0 0;

}

}

@keyframes ani2 {

from {

-webkit-mask-position: 100% 0;

mask-position: 100% 0;

}

to {

-webkit-mask-position: 0 0;

mask-position: 0 0;

}

}

a {

color: #00ff95;

}

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

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

相关文章

Java核心API需要掌握的程度

Java的核心API是非常庞大的,这给开发者来说带来了很大的方便,经常人有评论,java让程序员变傻。 但是一些内容我认为是必须掌握的,否则不可以熟练运用java,也不会使用就很难办了。 1、java.lang包下的80%以上的类的功能的灵活运用。…

主成分分析(Principal Component Analysis,PCA)

文章目录1. 总体主成分分析2. 样本主成分分析3. 主成分分析方法3.1 相关矩阵的特征值分解算法3.2 矩阵奇异值分解算法4. sklearn.decomposition.PCA主成分分析(Principal Component Analysis,PCA)是一种常用的无监督学习方法利用正交变换把由…

【DKN】(二)config.py

class BaseConfig():"""General configurations appiled to all models"""num_epochs 2 #迭代次数num_batches_show_loss 100 # Number of batchs to show lossnum_batches_validate 1000 # Number of batchs to check metrics on valid…

log4net异步写入日志_微信支付万亿日志在Hermes中的实践

导语 | 微信支付日志系统利用 Hermes 来实现日志的全文检索功能,自从接入以来,日志量持续增长。目前单日入库日志量已经突破万亿级,单集群日入库规模也已经突破了万亿,存储规模达 PB 级。本文将介绍微信支付日志系统在 Hermes 上的…

使用Axis2调用Web Service

本文作为使用Axis2创建Web Service的后篇,主要介绍如何使用Axis2调用Web Service。有关准备工作详情请参考前篇的内容。 在Eclipse的Packge Explorer中右键点击New,选择Other项,新建一个Axis2 Code Genrateor向导。点击Next,打开向…

LeetCode 旋转数组 系列

旋转数组系列,多数是排序数组进行了旋转,可以使用二分查找。做一个集合,如还有缺失的,可以留言指出,一起加油! LeetCode 33. 搜索旋转排序数组(二分查找) LeetCode 81. 搜索旋转排…

如何并行运行程序

参考了官方文档, torch.nn.parallel.DataParallel 以及https://zhuanlan.zhihu.com/p/102697821 在运行此DataParallel模块之前,并行化模块必须在device_ids [0]上具有其参数和缓冲区。在执行DataParallel之前,会首先把其模型的参数放在devi…

matlab打开笔记本摄像头_matlab窗口调用摄像头

更改”.m“文件:function varargout untitled1(varargin)% UNTITLED1 MATLAB code for untitled1.fig% UNTITLED1, by itself, creates a new UNTITLED1 or raises the existing% singleton*.%% H UNTITLED1 returns the handle to a new UNTITLED…

session过期后登陆页面跳出iframe页面问题

登陆页面增加javascript:function window.onload(){if(window.parent.length>0)window.parent.locationlocation;}转载于:https://www.cnblogs.com/shenyunjun420/archive/2009/09/29/1576400.html

LeetCode 1143. 最长公共子序列(动态规划)

1. 题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新…

【DKN】(四)train.py

内容 try: #不用多言, 获得该模块下的model_name函数Model getattr(importlib.import_module(f"model.{model_name}"), model_name)config getattr(importlib.import_module(config), f"{model_name}Config") except AttributeError:print(…

用promise封装ajax_ES6-promise封装AJAX请求

【摘要】ES6-promise封装AJAX请求考必过小编为大家整理了关于ES6-promise封装AJAX请求的信息,希望可以帮助到大家!ES6-promise封装AJAX请求标签:const状态码setreject对象响应状态ISErequest// 接口地址:https://api.apiopen.top/getJoke// 1…

REST和SOAP Web Service的比较(写得非常清晰易懂,转载于此)

本文转载自他人的博客,ArcGIS Server 推出了 对 SOAP 和 REST两种接口(用接口类型也许并不准确)类型的支持,本文非常清晰的比较了SOAP和Rest的区别联系!REST似乎在一夜间兴起了,这可能引起一些争议,反对者可…

LeetCode 1249. 移除无效的括号(栈+set / deque)

1. 题目 给你一个由 (、) 和小写字母组成的字符串 s。 你需要从字符串中删除最少数目的 ‘(’ 或者 ‘)’ (可以删除任意位置的括号),使得剩下的「括号字符串」有效。 请返回任意一个合法字符串。 有效「括号字符串」应当符合以下 任意一条 要求&…

【DKN】(七)dataset.py【未完】

内容 里面有的函数在这里https://blog.csdn.net/qq_35222729/article/details/119882362 try:config getattr(importlib.import_module(config), f"{model_name}Config") except AttributeError:print(f"{model_name} not included!")exit()class BaseDa…

php raabitmq中间件_rabbitMQ消息中间件环境配置及原理了解

视频教程一、Docker 入门Docker是什么?Docker 是一个开源的应用容器引擎,你可以将其理解为一个轻量级的虚拟机,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任 何流行的 Linux 机器上。为什么要使用 Docke…

CSS 中的定位:relative,absolute

今天碰到一个定位问题,问题解决不好,于是花了大量的时间,调试了好久,得出了一些结果:1、如果有两个不交叉的盒子位于一个大盒子里面,位于上边的盒子的定位为relative,而下边的那个盒子的定位则是…

【DKN】(六)KCNN.py

内容 import torch import torch.nn as nn import torch.nn.functional as F from src.model.general.attention.additive import AdditiveAttentiondevice torch.device("cuda:0" if torch.cuda.is_available() else "cpu")class KCNN(torch.nn.Module):…

北京精雕现状_6秒精密加工,日本走下神坛,北京精雕也做了一个!

各位社友还记得吗,机械社区之前分享过——日本6秒的精密加工火遍制造业圈子~▲点击上图 查看日本怎么用6s让世界惊奇在一阵惊呼赞叹中,一部分人也表示不服!比如,国内一位牛人也展示了他的产品。一起看看视频介绍吧——而近日&…

LeetCode 859. 亲密字符串

1. 题目 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 示例 1: 输入: A "ab", B "ba" 输出&#xff1a…