今天分享使用html+css3+少量jquery实现鼠标移入移出图片生成随机动画,我们先看最终效果图(截图为静态效果,做出来可是动态的哟)

左右旋转

上下移动

缩放

由于时间关系我就不一步步解析各段代码所代表含义,我这里就给出一些思路及关键代码:

1、首先使用ul li展现4张图片

本示例中不仅使用了图片,在图片表面还放置了一段“WEB”字样文字,用于与图片实现隐藏或显示效果,故html中每张图片上方加入:

<div class="mytext">WEB</div>

2、CSS控制图片及文字透明度

本示例中一组图片与文字同时放在一个li里面,高度与宽度设置与li一样大,并使用绝对定位固定它们的位置:

#myimg ul li a div {
position: absolute;
top:;
left:;
width: 100%;
height: 100%;
text-align: center;
font-size: 40px;
}

默认将隐藏图片,只显示文字,鼠标放入li时显示图片,这里使用opacity透明度属性控制:

#myimg ul li a div.pic {
opacity:;
} #myimg ul li:hover a div.pic {
opacity:;
}

3、CSS3自定义动画

本示例中用css3定义了3种动画:

 @keyframes rot
/*自定义 旋转动画*/ {
0% 20% 40% 60% 80% 100% {
transform-origin: top center;
}
0% {
transform: rotate(0deg)
}
20% {
transform: rotate(-20deg)
}
40% {
transform: rotate(15deg)
}
60% {
transform: rotate(-10deg)
}
80% {
transform: rotate(5deg)
}
100% {
transform: rotate(0deg)
}
} @keyframes top
/*自定义 上下动画*/ {
0% {
top: 0
}
20% {
top: 20px
}
40% {
top: -15px
}
60% {
top: 10px
}
80% {
top: -5px
}
100% {
top: 0px
}
} @keyframes sca
/*自定义 缩放动画*/ {
0% {
transform: scale(1)
}
20% {
transform: scale(1.1)
}
40% {
transform: scale(0.9)
}
60% {
transform: scale(1.05)
}
80% {
transform: scale(0.95)
}
100% {
transform: scale(1)
}
}

使用css执行上述自定义动画:

#myimg ul li.rot {
animation: rot 1s;
} #myimg ul li.top {
animation: top 1s;
} #myimg ul li.sca {
animation: sca 1s;
}

4、Jquery生成随机动画

当鼠标移入ul li时,使用jquery随机产生上述3种自定义动画,这里使用hover事件


HTML代码如下:

<div id="myimg">
<ul>
<li>
<a href="#">
<div class="mytext">WEB</div>
<div class="pic"><img src="img/5.png"></div>
</a>
</li>
<li>
<a href="#">
<div class="mytext">WEB</div>
<div class="pic"><img src="img/5.png"></div>
</a>
</li>
<li>
<a href="#">
<div class="mytext">WEB</div>
<div class="pic"><img src="img/5.png"></div>
</a>
</li>
<li>
<a href="#">
<div class="mytext">WEB</div>
<div class="pic"><img src="img/5.png"></div>
</a>
</li>
</ul> </div>

CSS代码如下:

<style type="text/css">
* {
padding:;
margin:;
} #myimg {
width: 800px;
margin: 20px auto;
} #myimg ul li {
list-style-type: none;
position: relative;
float: left;
width: 350px;
height: 200px;
line-height: 200px;
margin: 20px;
} #myimg ul li.rot {
animation: rot 1s;
} #myimg ul li.top {
animation: top 1s;
} #myimg ul li.sca {
animation: sca 1s;
} #myimg ul li:hover a div.pic {
opacity:;
} #myimg ul li a {
text-decoration: none;
color: white;
} #myimg ul li a div {
position: absolute;
top:;
left:;
width: 100%;
height: 100%;
text-align: center;
font-size: 40px;
} #myimg ul li a div.pic {
opacity:;
} #myimg ul li:nth-child(1) a div.mytext {
background: black;
} #myimg ul li:nth-child(2) a div.mytext {
background: blue;
} #myimg ul li:nth-child(3) a div.mytext {
background: darkred;
} #myimg ul li:nth-child(4) a div.mytext {
background: orange;
} @keyframes rot
/*自定义 旋转动画*/ {
0% 20% 40% 60% 80% 100% {
transform-origin: top center;
}
0% {
transform: rotate(0deg)
}
20% {
transform: rotate(-20deg)
}
40% {
transform: rotate(15deg)
}
60% {
transform: rotate(-10deg)
}
80% {
transform: rotate(5deg)
}
100% {
transform: rotate(0deg)
}
} @keyframes top
/*自定义 上下动画*/ {
0% {
top: 0
}
20% {
top: 20px
}
40% {
top: -15px
}
60% {
top: 10px
}
80% {
top: -5px
}
100% {
top: 0px
}
} @keyframes sca
/*自定义 缩放动画*/ {
0% {
transform: scale(1)
}
20% {
transform: scale(1.1)
}
40% {
transform: scale(0.9)
}
60% {
transform: scale(1.05)
}
80% {
transform: scale(0.95)
}
100% {
transform: scale(1)
}
}
</style>

Jquery代码如下:

<script type="text/javascript">
$(function() {
var anim = ['rot', 'top', 'sca'];
var a, b;
$("#myimg ul li").hover(function() {
//向下取0-2整数
a = anim[Math.floor(Math.random() * 3)];
while (b == a) {
a = anim[Math.floor(Math.random() * 3)];
}
$(this).addClass(a);
b = a;
}, function() {
$(this).removeClass(a);
})
});
</script>

注意事项:需要引入jquery文件,可以自行选择jquery版本

好了,今天分享就到这里,以后还有更多哟,请大家一起来交流下

CSS3鼠标移入移出图片生成随机动画的更多相关文章

  1. CSS3 - 鼠标移入移出时改变样式

    1,使用伪类实现样式切换伪类是CSS2.1时出现的新特性,让许多原本需要JavaScript才能做出来的效果使用CSS就能实现.比如实现下面的鼠标悬停效果,只要为:hover伪类应用一组新样式即可.当 ...

  2. CSS3鼠标滑过图片3D旋转动画

    在线演示       本地下载

  3. onmouseover和onmouseout鼠标移入移出切换图片的几种实现方法

    鼠标移入移出图片切换很常见的,那我们就来说说他的写法 第一种方法,也是最简单的一种,在html:里就可实现 <img class="img" src="img/do ...

  4. 函数传参,改变Div任意属性的值&&图片列表:鼠标移入/移出改变图片透明度

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

  5. jquery事件一 ---鼠标移入移出

    比较一下几个jquery事件的区别 mouseover() 鼠标进入(进入子元素也触发) mouseout() 鼠标离开(离开子元素也触发) mouseenter() 鼠标进入(进入子元素不触发) m ...

  6. echarts+百度地图+vue 填坑记(一)(百度地图、鼠标移入移出标注,信息框会产生闪烁)

    大概七月底开始实习,到现在经历了两个完整的项目(c2b). 因为开发时间紧,任务重,所以在开发过程踩到的坑都没时间去记录. 现在在开发一个某链运输监控系统,到了收尾阶段,有时间写博客了!开心! 一.鼠 ...

  7. # li鼠标移入移出,点击,变背景色,变checkbox选中状态

    移入移出背景色改变和点击背景色改变,两者是否相互覆盖? 若移出背景色恢复,影响点击事件的背景色改变,会产生效果为: 点击时,背景色改变,并且checkbox选中 鼠标移开后,checkbox仍选中,但 ...

  8. js鼠标移入移出事件会被子元素触发解决方法

    问题:js写了一个鼠标移入移出事件,但是发现会被内部子元素不断的触发 解决方法:建立一个空的div定位到需要触发的位置,然后设置大小和触发范围一样,最后将事件写在空的div上.

  9. jQuery鼠标移入移出(冒泡版和无冒泡版)

    带冒泡事件的鼠标移入移出(默认的):mouseover和mouseout事件 没有冒泡事件的鼠标移入移出:mouseenter和mouseleave事件

随机推荐

  1. Centos6.3建立FTP

    2014年2月22日 16:54:20 1. 安装ftp     yum install vsftpd ftp 2. 编辑/etc/vsftpd/vsftpd.conf     chroot_list ...

  2. kali linux 之 DNS信息收集

    [dig]命令的使用: dig是linux中的域名解析工具,功能比nslookup强很多,使用也很方便. windows系统下使用dig须下载安装一下. 使用方法: root@kali:~# dig ...

  3. 有关UIImageView+AFNetworking 下载图片的线程问题

    今天写了一个demo,从服务器获取图片,然后显示在cell上,大家都知道cell的重用机制,当往下拉的时候,上面的cell遮住了,下面的cell就会重用被遮住的cell, 贴代码: NSString ...

  4. WinDbug抓取进程dump

    安装WinDbug(包含在 Windows Kits-debugger 中)后,运行如下命令将会在 explorer.exe进程发生崩溃后抓取相应的内存数据到D盘根目录下的一个文件夹中 adplus. ...

  5. TOMCAT 集群之 PERSISTENT SESSION

    tomcat的session保存在数据库中,不是很复杂,写下来供大家参考. 准备工作: 两架Ubuntu Server 12.04 64位,确定两级服务器可以互相ping的通并属于同一个网段 安装jd ...

  6. Effective C# Chapter1-Language Elements

    <EffectiveC#>这本书讲了一些关于C#语言的使用技巧和经验. 该系列文章是备忘录和自己的一些见解.程序猿们最喜欢这类问题了,欢迎讨论~ 菜单 Item 1 使用属性取代公共成员变 ...

  7. Java基础知识强化之IO流笔记55:IO流练习之 自定义类模拟LineNumberReader的获取行号功能案例

    1. 自定义类模拟LineNumberReader的获取行号功能案例 2. 代码实现: (1)MyBufferedReader.java: package cn.itcast_08; import j ...

  8. 并发与多版本:update重启动问题

    以下演示重启动问题,请注意 before触发器和after触发器的行为区别,因为before触发器会触发两次而导致重启动问题,因此使用after触发器更加高效,应该尽量避免在所有触发器中使用自治事务 ...

  9. 【排障】使用DiskGenius修复0扇区损坏

    用PE引导启动进入PE后打开DiskGenius软件 "硬盘"图形菜单------选择驱动器符号(例如C) 主界面中显示该硬盘的分区格式为FAT32,起始柱面0,起始磁头65. 在 ...

  10. php session_id()函数介绍及代码实例

    session_id()功能: 获取设置当前回话ID. 函数说明: string session_id ([ string $id ] ) 参数: 如果指定了参数$id,那么函数会替换当前的回话id. ...