background-image 不支持CSS3 transition ,而CSS3 gradient渐变作为背景图片存在的时候,下面的CSS设置是不会有过渡效果的。
.gradient {
background-image: linear-gradient(to right, olive, green)
transition: background-image 0.5s linear
}
.gradient:hover {
background-image: linear-gradient(to right, green, purple)
}
鼠标hover会发现渐变的变化是很唐突的,一点过渡效果也没有。
下面问题来了,如果我们希望实现渐变hover时候有过渡变化的效果,该如何实现呢?我这里罗列的几种可行的方法。
二、借助background-position实现渐变过渡
background-image 虽然不支持CSS3 transition 过渡,但是 background-position 支持啊,于是,通过控制背景位置,我们是可以实现渐变过渡效果的。
实现效果如下(鼠标hover):
相关代码如下:
.box {
max-width: 400px
height: 200px
background: linear-gradient(to right, olive, green, purple)
background-size: 200%
transition: background-position .5s
}
.box:hover {
background-position: 100% 0
}
三、借助background-color实现渐变过渡
background-image 虽然不支持CSS3 transition 过渡,但是 background-color 支持啊,于是,通过控制背景颜色,和一个颜色呈现技巧,我们也是可以实现渐变过渡效果的。
鼠标hover前后效果对比:
相关代码如下:
.box {
max-width: 400px
height: 200px
background: olive linear-gradient(to right, rgba(0,255,0,0), rgba(0,255,0,.5))
transition: background-color .5s
}
.box:hover {
background-color: purple
}
四、借助伪元素和opacity实现渐变过渡
借助伪元素创建变换后的渐变效果,通过改变覆盖的渐变的opacity透明度变化实现渐变过渡效果。
下图为hover之后的效果:
相关代码如下:
.box {
max-width: 400pxheight: 200px
background: linear-gradient(to right, olive, green)
position: relative
z-index: 0
}
.box::before {
content: ''
position: absolute
left: 0top: 0right: 0bottom: 0
background: linear-gradient(to right, green, purple)
opacity: 0
transition: opacity .5s
z-index: -1
}
.box:hover::before {
opacity: 1
}
五、结束语
以上就是我所知道的几个方法,当然,肯定还有其他更好的实现,欢迎补充。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
html 图片的过渡效果
京东年货节特惠来袭!精华礼盒现购超值
京东
广告
《风尚坐火箭学习vue》-- 第十二章:Vue中的动画transition
174阅读·0评论·1点赞
2021年11月26日
image target behaviour 和image target的关系_CSS3中用background-image实现粒子动画效果
26阅读·0评论·0点赞
2020年11月20日
background-image的用法
13.8W阅读·2评论·33点赞
2016年9月9日
background-image 详解
1.0W阅读·1评论·7点赞
2014年11月17日
html文字图片过度效果,如何在图片上应用css3过渡属性?
510阅读·0评论·0点赞
2021年6月11日
HTML CSS 动画 实现图片过渡与变换(图片不超过边框范围局部放大)
1499阅读·1评论·4点赞
2021年11月25日
京东年货节,小年狂欢开启!酵素饮料现购超划算,速戳~
京东
广告
html 图片的过渡效果,3个CSS3图片过渡动画特效
1880阅读·0评论·1点赞
2021年6月11日
在web设计中使用js可以实现很多的页面特效,然而很多人却忽视了HTML标签中META标签的强大功效,其实meta标签也可以实现很多漂亮的页面过渡效果。META标签是HTML语言HEAD区的一个辅助性标签,Meta 标签放在每个网页的<head>...</head>
中间,我们大家比较熟悉的如:
<meta name="GENERATOR" content="Microsoft FrontPage
3.0">//说明编辑工具;
<meta name="KEYWORDS" content="...">//说明关键词;
<meta name="DESCRIPTION" content="...">//说明主页描述;
它提供用户不可见的信息。meta标签通常用来为搜索引擎robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以
根据你定义的时间间隔刷新自己,以及设置RASC内容等级,等等
用法:
<Meta http-equiv="Page-Enter" Content="blendTrans(Duration=0.5)">
<Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)">
blendTrans是css动态滤镜的一种,产生渐隐效果。另一种动态滤镜RevealTrans也可以用于页面进入与退出效果:
动态滤镜可以为页面添加动人的淡入淡出、图象转化效果,它可以分为两种blend(混合)和reveal(显示),
前者可以使对象渐渐消失或出现,后者提供了24种图象转化的效果......
<Meta http-equiv="Page-Enter"
Content="revealTrans(duration=x, transition=y)">
<Meta
http-equiv="Page-Exit" Content="revealTrans(duration=x, transition=y)">
Duration:表示滤镜特效的持续时间(单位:秒)
Transition:滤镜类型。表示使用哪种特效,取值为0-23。
1、过渡效果:在meta里加
<meta http-equiv="Page-Enter" content="revealTrans(Duration=1.0,Transition=2)">
<meta http-equiv="Page-Exit" content="revealTrans(Duration=1.0,Transition=3)">
“meta”是每个网页的一个标签,“http-equiv=”表示不同的事件名,“Page-Enter”表示进入网页,“Page-Exit”表示离开网页,而content后面表示的就是各个不同的过渡效果和周期的参数。
2、为保护您的安全,Internet Explorer已经此文件显示可能访问您的计算机的活动内容。单击此处查看选项:
这是因为你的网页里加了JS的原因,这个不影响浏览,到了服务器上就看不到了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)