CSS3实现鼠标hover的过渡效果
我想让鼠标放在div上就让它旋转变大,离开div后它又恢复本来的样子。
于是我就想写一个JS,监听一个hover事件,当hover发生的时候,触发一个计时器,在计时器里写两个值,一个管角度,一个管宽度,随着时间的变化逐渐增加,不断地重写div的style。当达到我期望的limit的值后让它停止(或者干脆解除计时器)。
再监听一个leave事件,当leave发生后,让一切以它原来的style为limit的方向变化。(所以一开始就要get到这个div最初的style并且保存好)
然而事实上这个用CSS3也能实现吖!
给个容器加个class就好了
<div class="guodu">css3过渡</div>
剩下的全部交给CSS3
.guodu{
width:100px;
height:50px;
margin:0px auto;
margin-top:50px;
background:#6C6;
opacity:0.6;
border:1px solid #fff;
border-radius:15px;
color:#fff;
text-align:center;
line-height:50px;
font-size:16px;
/*善解人意的分割线*/
transition:width 2s, height 2s, background 2s, transform 2s;
-moz-transition:width 2s, height 2s, background 2s, -moz-transform 2s;
-webkit-transition:width 2s, height 2s, background 2s, -webkit-transform 2s;
-o-transition:width 2s, height 2s, line-height 2s, background 2s, -o-transform 2s;
}
在transition里规定好想要变化的属性以及期望经过多少时间能达到最大的效果,时间越长就会越慢咯。
不过如果我要修改时间的话要一个一个改真的很烦,这只是一个test而已,要是一个大工程,改起来肯定会是各种酸爽。
直到我知道了一个东西叫css preprocessor,CSS预处理器,有一种预处理器叫做scss/sass,
这个东西可以对css进行编程,我们可以写一个变量专门存储时间,然后写在css中就好啦,如果想改时间,改变量就好啦!
写好以后是这个样子
$speed : 1s;
.guodu{
width:100px;
height:50px;
margin:0px auto;
margin-top:50px;
background:#6C6;
opacity:0.6;
border:1px solid #fff;
border-radius:15px;
color:#fff;
text-align:center;
line-height:50px;
font-size:16px;
/*善解人意的分割线*/
transition:width $speed, height $speed, background $speed, transform $speed;
-moz-transition:width $speed, height $speed, background $speed, -moz-transform $speed;
-webkit-transition:width $speed, height $speed, background $speed, -webkit-transform $speed;
-o-transition:width $speed, height $speed, line-height $speed, background $speed, -o-transform $speed;
}
然而要让sass生效,我们还得安装Ruby的环境......我最讨厌装环境了,所以我放弃了。
还一个很烦人的事情是不仅transition要写多个浏览器版本,transform也要写多个浏览器的版本。这个也是硬伤,没有办法......
讲真,这件事情还没完,我们目前只是把期望看到变化的属性和时间设定好了,具体期望变化到的目标的limit值还是要在hover伪类上来设置
.guodu:hover{
width:200px;
height:60px;
background:#39F;
line-height:60px;
cursor:pointer;
/*善解人意的分割线*/
transform:rotate(360deg);
-moz-transform:rotate(360deg);
-webkit-transform:rotate(360deg);
-o-transform:rotate(360deg);
}
然后就没有然后了......
依旧是一个很low逼的效果......
CSS3实现鼠标hover的过渡效果的更多相关文章
- 鼠标HOVER时区块动画旋转变色的CSS3样式掩码
鼠标hover时区块动画旋转变色的css3样式掩码<!DOCTYPE html> <html> <head> <meta charset="utf- ...
- 鼠标hover某个元素时其属性表现Css transition 过渡效果(以宽高属性居中放大为例)
<!DOCTYPE html> <html> <head> </head> <body id="body"> <! ...
- 简单的圆形图标鼠标hover效果 | CSS3教程
演示 本教程将和大将分享一些简单的圆形图标在鼠标hover时的动画效果.这种效果在不少时尚的酷站上都有.本教程中的例子主要是利用在a元素的伪元素上使用CSS transitions和animation ...
- CSS3实现鼠标移动到图片上图片变大
CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义 <!DOCTYPE html><html> <head&g ...
- 用css3实现鼠标移进去当前亮其他变灰
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 基于css3的鼠标经过动画显示详情特效
之前为大家分享过一款基于jquery的手风琴显示详情,今天给大家分享基于css3的鼠标经过动画显示详情特效.这款实例鼠标经过的时候基于中间动画放大,效果非常不错,效果图如下: 在线预览 源码下载 ...
- 如何不使用js实现鼠标hover弹出菜单效果
最近看到很多同学在实现鼠标hover弹出菜单的效果时都是用的js代码去实现的,默认给弹出隐藏掉,通过js事件绑定动态的显/隐弹出菜单元素. <ul> <li>主页</li ...
- table 控制单双行颜色以及鼠标hover颜色 table光棒
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Echarts 地图(map)插件之 鼠标HOVER和tooltip自定义提示框
[自行修改 "引号"] 一.鼠标HOVER时的事件: 参照官方文档解释, 可以看出这款插件有丰富的鼠标事件可供选择: 调用鼠标HOVER事件的方法很简单,只需把以下代码放到char ...
随机推荐
- sed条件不修改匹配
sed '/^echo/!s/text/subtext/g' 如果是以echo开始行首的行就不进行替换. 参考sed substitution conditional
- 浅谈 Sql Server 触发器
一.触发器概念 1.1.触发器特征 1.1.1.触发器是在对表进行增.删.改时,自动执行的存储过程.触发器常用于强制业务规则,它是一种高级约束,通过事件进行触发而被执行. ...
- web移动开发最佳实践之js篇
一.js概述 js即JavaScript,是被设计用来验证表单.检测浏览器.创建cookies.改进设计以及更多应用的网络脚本语言,它非常容易使用.在web应用中,它是主要的编程语言,主要用途是进行各 ...
- pyspark在windows中的安装
0.安装python,我用的是python2.7.13 1.安装jdk 一定要安装1.7以上的版本,安装低版本会报下面的错误 java.lang.NoclassDefFoundError 安装后不用手 ...
- wp开发(二)--获取用户篇
本文从个人开发者的角度来谈如何让wp应用获得尽可能多的用户.当然前提是你的app有一定的竞争性,如果不具备竞争力,那再多的用户下载也是白扯,所以最关键的还是要保证app的质量. 一. 程序图标 千万不 ...
- BZOJ4916 神犇和蒟蒻(欧拉函数+杜教筛)
第一问是来搞笑的.由欧拉函数的计算公式容易发现φ(i2)=iφ(i).那么可以发现φ(n2)*id(n)(此处为卷积)=Σd*φ(d)*(n/d)=nΣφ(d)=n2 .这样就有了杜教筛所要求的容易算 ...
- java学习1-环境搭建
1.材料准备 2.配置文档 3.验证java是否安装成功 打开cmd--> java -version 提示以下即成功
- PHP关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题
一.如何选择PHP5.3的VC9版本和VC6版本 VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本. VC9版本是使用 ...
- 【bzoj2893】征服王
Portal -->bzoj2893 Descripiton 给你一个\(n\)个点\(m\)条边的有向图,有一些点是起始点,有一些点是终止点,一次操作可以从一个起始点开始沿着有向图的边走到一个 ...
- 【recording】gdoi2018
怎么说..虽然感觉其实..不太想写游记.. 但是回来看着桌面上的课本还是忍不住了(想想班里进度就..qwq)还是写一下吧 Day x(x<0) 之前大家溜到首都开心集训了一波然后被虐的很开心.. ...