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 ...
随机推荐
- erlang init:stop()不起效
http://blog.equanimity.nl/blog/2015/03/15/erlang-one-weird-trick-goodiebag/ http://erlang.org/piperm ...
- 【week9】psp
本周psp 项目 内容 开始时间 结束时间 中断时间 净时间 2016/11/14 看论文 蛋白质甲基化位点预测 9:30 13:00 15 195 讨论班 组内讨论班 13:30 17:00 0 2 ...
- Git(未完待续)
Git的历史咱们就不多说来,我还是喜欢直白点,直接来干货吧 在Linux上安装Git 不同的系统不同的安装命令,基础的就不说来,centos直接yum就ok. 安装完成后,还需要最后一步设置,在命令行 ...
- Redis 备份数据的两种方式
既然是数据库,那就一定有数据备份方式了,而且 Redis 是内存形式的数据库,更需要数据备份了,要不然断电数据就全都丢失了. Redis 数据备份有两种方式: RDB(数据快照) AOF(记录操作日志 ...
- npm 安装 不快的解决办法
npm config list 查看配置 npm config set prefix “c:\dev\nvm\npm”(配置用npm下载包时全局安装的包路径) npm install npm -g ...
- Web模块:spring-boot-starter-web
spring-boot-autoconfigure-1.5.1.RELEASE.jar!/org/springframework/boot/autoconfigure/web 上述jar的web包下, ...
- 【bzoj5147】casino 区间dp
题目描述 赌城拉斯维加斯的米高梅大赌场最近推出了一种新式赌法.它的玩法是由庄家设局(所用赌具是一批五颜六色的筹码),赌徒只要交付一定数额的赌资即可入局.开赌前庄家将手中的筹码依次排开铺成一排构成一局, ...
- 【JavaScript】checkBox的多选行<tr>信息获取
页面的列表table显示(后台model.addAttribute("page", page);传来page信息,page通过foreach标签迭代展示表格数据): <!-- ...
- Mac OS X 10.11.1下搭建Python3.4 + PyQt5.5.1 +Eric6.1.1开发平台
由于Python易学.开源.面向对象.可移植性高.库丰富的特点,近期开始学习Python.百度了解了各款Python IDE后,还是认为Eric比较适合我,所以踏上了安装Eric坎坷之路,从选定工具到 ...
- 【刷题】BZOJ 3365 [Usaco2004 Feb]Distance Statistics 路程统计
Description 在得知了自己农场的完整地图后(地图形式如前三题所述),约翰又有了新的问题.他提供 一个整数K(1≤K≤109),希望你输出有多少对农场之间的距离是不超过K的. Input 第1 ...