CSS特效——有趣儿的鼠标模糊效果
2017-06-15 21:33
134 查看
最近快毕业了,除了聚餐办离校手续外,空闲时间里想着继续提高一下前端方面的技术,就在百度前端学院里找了个课程学习一下CSS3的一些新特性,这次的成果就是一个有趣儿的鼠标模糊效果。
PS:运行效果和源代码详见jsfiddle.com上我写的有趣儿的鼠标模糊
图片的模糊效果,这个用CSS3 的filter特性就可以实现。
鼠标悬浮时生成边框的效果,考虑用伪元素实现。
文字颜色的渐变和闪烁,用CSS3的渐变效果
这是如何做到的呢?
首先我们定义一个伪元素:before,令其内容为空且仅有左右border,:bofore元素的宽度为100%,则这两条边被撑开,形成两条垂直的边。这里令absolute布局的top为50%,元素的
高为0来实现一开始仅有一个点。
在鼠标移动到元素上方时,改变opacity、height和top,其中top的减小使得边向上生长,height的增加使得边向下延伸,opacity使其出现。
这里还有一点需要申明的是,因为最后浮现出来的文字需要能够被点击,而我们令:before和:after元素为边框后,相当于做了一个中间是透明玻璃的相框,这会使得这个相框下的文字上面无法被直接点击,用flex进行自动布局后可以解决这个问题。
对于彩色的文字变换效果,这里需要用到的就是css3中background-image自定义图像的新特性,具体的解释详见注释。
对含有:before和:after这两个伪元素的布局,flex布局能很快速简单地解决一些其他布局不好解决的问题
对于按照百分比变化width和height的元素,试试border-sizing : border-box
前端效果中有很多很好玩的东西需要再慢慢挖掘……
PS:运行效果和源代码详见jsfiddle.com上我写的有趣儿的鼠标模糊
效果图
需求分析
仔细分析这个效果后可以发现,这个效果由三个部分组成图片的模糊效果,这个用CSS3 的filter特性就可以实现。
鼠标悬浮时生成边框的效果,考虑用伪元素实现。
文字颜色的渐变和闪烁,用CSS3的渐变效果
具体实现
图片的模糊效果没啥好多说的,一句代码搞定就好。这里关于“动画边框”要重点分析下,以垂直的边为例,要注意到这条边是从中点开始生长的。这是如何做到的呢?
首先我们定义一个伪元素:before,令其内容为空且仅有左右border,:bofore元素的宽度为100%,则这两条边被撑开,形成两条垂直的边。这里令absolute布局的top为50%,元素的
高为0来实现一开始仅有一个点。
content: ''; position: absolute; /*控制两条垂直边的间距*/ width: 100%; /*开始时仅有一个点位于垂直边的中点*/ top: 50%; height: 0; left: 0; border: 2px solid #f8bfbf; border-width: 0 2px; box-sizing: border-box;
在鼠标移动到元素上方时,改变opacity、height和top,其中top的减小使得边向上生长,height的增加使得边向下延伸,opacity使其出现。
.container:hover .content:before { opacity: 1; height: 100%; top: 0; }
这里还有一点需要申明的是,因为最后浮现出来的文字需要能够被点击,而我们令:before和:after元素为边框后,相当于做了一个中间是透明玻璃的相框,这会使得这个相框下的文字上面无法被直接点击,用flex进行自动布局后可以解决这个问题。
对于彩色的文字变换效果,这里需要用到的就是css3中background-image自定义图像的新特性,具体的解释详见注释。
.title, .name { color: transparent; /*使用CSS3的渐变特性从左到右绘制图像*/ background-image: linear-gradient(90deg, #A84444 10%, #A86544 20%, #A89844 30%, #88A844 40%, #51A844 50%, #44A865 60%, #44A89A 70%, #4469A8 80%, #6D44A8 90%, #A8447E 100%); /*裁剪背景图:使用文字作为裁剪区域向外裁剪,此时文字颜色仍覆盖背景图*/ -webkit-background-clip: text; /*将背景图宽度拉长至两倍,之前设置background-image的两份相同的颜色组,目的是在拉长后只显示一份颜色组,另外超出的半截颜色组用来实现流光效果*/ background-size: 200% 100%; animation: load 4s infinite linear; }
总结
background-image可以用在文字的变换效果上。对含有:before和:after这两个伪元素的布局,flex布局能很快速简单地解决一些其他布局不好解决的问题
对于按照百分比变化width和height的元素,试试border-sizing : border-box
前端效果中有很多很好玩的东西需要再慢慢挖掘……
相关文章推荐
- css特效:鼠标滑过图片出现一道闪光效果
- css实现鼠标悬浮字体流光背景模糊效果
- [css特效]A标记的经典效果:鼠标放到A的整行上,背景变色(鼠标没在文字上)
- jquery实现隔行变色,点击换色,鼠标悬浮当前行变色效果,div+css 细表格样式
- CSS Repeater - 交错显示行背景色 table行鼠标进入事件特效 禁止文本换行
- 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果
- 1.纯css实现鼠标移动图片切换的效果
- css控制背景图左右对齐 实现鼠标移入移出效果
- 比较酷炫的css鼠标悬浮效果
- android图片特效处理之模糊效果
- 前端特效: 使用CSS生成的闪光照相机效果
- css 横向渐变 图片阴影效果 字体模糊效果
- css效果:鼠标滑过放大图片
- css 鼠标 经过 效果
- 【Html/CSS】CSS鼠标悬停特效实现 仿微信网页版
- JS+CSS实现鼠标滑过时动态翻滚的导航条效果
- CSS实现DIV感应鼠标Hover时的显示隐藏效果
- 从0开始html前端页面开发_CSS实现图像获取鼠标焦点逐渐变大动画效果
- 用CSS实现鼠标单击特效
- 通过CSS效果:隔行变色和鼠标掠过高亮,学习JQuey的css()、hover()方法