我想让鼠标放在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的过渡效果的更多相关文章

  1. 鼠标HOVER时区块动画旋转变色的CSS3样式掩码

    鼠标hover时区块动画旋转变色的css3样式掩码<!DOCTYPE html> <html> <head> <meta charset="utf- ...

  2. 鼠标hover某个元素时其属性表现Css transition 过渡效果(以宽高属性居中放大为例)

    <!DOCTYPE html> <html> <head> </head> <body id="body"> <! ...

  3. 简单的圆形图标鼠标hover效果 | CSS3教程

    演示 本教程将和大将分享一些简单的圆形图标在鼠标hover时的动画效果.这种效果在不少时尚的酷站上都有.本教程中的例子主要是利用在a元素的伪元素上使用CSS transitions和animation ...

  4. CSS3实现鼠标移动到图片上图片变大

    CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义 <!DOCTYPE html><html> <head&g ...

  5. 用css3实现鼠标移进去当前亮其他变灰

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  6. 基于css3的鼠标经过动画显示详情特效

    之前为大家分享过一款基于jquery的手风琴显示详情,今天给大家分享基于css3的鼠标经过动画显示详情特效.这款实例鼠标经过的时候基于中间动画放大,效果非常不错,效果图如下: 在线预览   源码下载 ...

  7. 如何不使用js实现鼠标hover弹出菜单效果

    最近看到很多同学在实现鼠标hover弹出菜单的效果时都是用的js代码去实现的,默认给弹出隐藏掉,通过js事件绑定动态的显/隐弹出菜单元素. <ul> <li>主页</li ...

  8. table 控制单双行颜色以及鼠标hover颜色 table光棒

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Echarts 地图(map)插件之 鼠标HOVER和tooltip自定义提示框

    [自行修改 "引号"] 一.鼠标HOVER时的事件: 参照官方文档解释, 可以看出这款插件有丰富的鼠标事件可供选择: 调用鼠标HOVER事件的方法很简单,只需把以下代码放到char ...

随机推荐

  1. HDU 1257 最少拦截系统(最长递减子序列的条数)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1257 题解: #include<iostream> #include<cstdio ...

  2. HTML5 <meta> 标签属性,所有meta用法

    基本标签 声明文档使用的字符编码:<meta charset="utf-8" /> 声明文档的兼容模式:<meta http-equiv="X-UA-C ...

  3. L1正则化与L2正则化的理解

    1. 为什么要使用正则化   我们先回顾一下房价预测的例子.以下是使用多项式回归来拟合房价预测的数据:   可以看出,左图拟合较为合适,而右图过拟合.如果想要解决右图中的过拟合问题,需要能够使得 $ ...

  4. 在pycharm中使用scrapy爬虫

    目标在Win7上建立一个Scrapy爬虫项目,以及对其进行基本操作.运行环境:电脑上已经安装了python(环境变量path已经设置好), 以及scrapy模块,IDE为Pycharm .操作如下: ...

  5. MDL

    1 先是mdl的数据结构. 2 下面根据用法逐步的讲解mdl数据结构的含义:一般用法,先是 IoAllocateMdl :原型为: 最常用的是VirtualAddress和Length.把自己的Non ...

  6. 【BioCode】删除未算出PSSM与SS的蛋白质序列

    代码说明: 由于一些原因(氨基酸序列过长),没有算出PSSM与SS,按照整理出来的未算出特征的文件,删除原来的蛋白质序列: 需删除的氨基酸文件732.txt(共732条氨基酸): 删除前 氨基酸共25 ...

  7. 框架整合小小总结【SSH】注解式

    Spring 注解式注册 bean: 大致分为以下几步: 开启 context 空间支持 开启自动扫描功能,指定扫描包路径 使用注解配置 bean (使用@Component 注解) 给 bean 注 ...

  8. 零拷贝Zero-Copy(NIO)

    介绍 Java 的zero copy多在网络应用程序中使用.Java的libaries在linux和unix中支持zero copy,关键的api是java.nio.channel.FileChann ...

  9. 第77天:jQuery事件绑定触发

    一.元素操作 1. 高度和宽度 $(“div”).height(); // 高度 $(“div”).width(); // 宽度 .height()方法和.css(“height”)的区别: 返回值不 ...

  10. angularjs 指令间相互调用

    <div ng-app="app"> <div ng-controller="myctl"> <button superman s ...