CSS3实战开发: 手把手教大家实战开发鼠标划过图片动画特效

各位网友大家好,我是陌上花会开,当然大家也可以叫我陌陌。今天这篇文章,我将手把手带领大家实战开发一个鼠标划过图片时的动画特效。在这里我不会给大家提供案例的源码下载,但是本人可以保证,只要大家跟着我的思路,一步步将代码复制到本地,一定会得到同样的运行效果。希望大家明白我的用心。好了不废话,直接进入今天的主题吧。

在今天这个案例里,我准备3个素材,一张背景图,两张风景图片。这个大家可以到网上自行下载。

在写代码之前,我先给大家展示一下,动画特效的效果图。

鼠标花过前:

当鼠标划过图片时,图片将逐渐变亮:

大家从上面的两幅比较图片大概也可以看出来,特效是:当鼠标划过图片时,由内而外逐渐变量。

好了,开始今天的实战之旅吧。

首先我们先编写html代码,下面高亮的样式名就是我们今天着重实现的:

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″>

<link rel=”stylesheet” href=”styles_2014080702.css”>

<meta name=”keywords” content=”css,css3,鼠标划过动画效果,css3实战开发,css3案例“ />

<title>css3实现鼠标划过图片时效果(1)</title>

</head>

<body>

<div class=”container”>

<div class=”photowall“>

<div class=”photoview“>

<a href=”http://www.itdriver.cn”><img src=”img01.jpg” width=”320″ height=”200″ /></a>

<div class=”mask“></div>

</div>

<div class=”photoview“>

<a href=”http://www.itdriver.cn”><img src=”img02.jpg” width=”320″ height=”200″ /></a>

<div class=”mask“></div>

</div>

</div>

</div>

</body>

</html>

我们根据上面的效果图,大概可以知道要对哪几个div应用样式:

1. 给墙按上背景纸;

2.给照片应用样式,实现内边距补白;

3.设置一遮盖层;

好了,既然知道需要做哪些样式了,直接进入样式编码吧!

我们首先给container设置样式,使容器居中显示,代码如下:

*{ /* 清空所有元素内外边距*/
  margin:0;
  padding:0;
}

html,body,.container{ /*设置container高度浏览器自适应*/
  height:100%;
}

.container { /*设置container容器样式*/
  width:80%;
  margin:auto;
  padding:10px;
}

紧接着,我们给照片墙应用样式,给它贴上壁纸,同时设置它的高度为500px,代码如下:

.photowall{
    background:url(bg.png); /*设置照片墙背景*/
    background-size:cover;  /*设置背景以最小值填充*/
    height:500px; /*设置照片墙的高度*/
}

我们先看一下此时页面的运行效果:

现在我们应用CSS3的盒模型属性,将照片在垂直和水平方向上都居中显示,代码如下:

.photowall{
    background:url(bg.png); /*设置照片墙背景*/
    background-size:cover;  /*设置背景以最小值填充*/
    height:500px; /*设置照片墙的高度*/

    display:-webkit-box; /*应用盒子模型*/
    display:-moz-box;
    display:-o-box;
    display:box;

    -webkit-box-pack:center; /*使盒子内元素水平居中*/
    -moz-box-pack:center;
    -o-box-pack:center;
    box-pack:center;

    -webkit-box-align:center; /* 设置盒子内元素垂直方向上居中分配空间*/
    -moz-box-align:center;
    -o-box-align:center;
    box-align:center;
}

紧接着,我们给照片加上阴影效果,同时设置照片的内边框,代码如下:

.photowall .photoview { /*给照片框应用样式*/
    padding:6px;
    background:#FFFFFF;
    margin:0 10px;
    position:relative;
    overflow:hidden; /*将溢出的内容隐藏*/
    box-shadow:2px 2px 6px black; /*给照片框应用阴影效果*/
}

那此时的运行效果如何呢?

好了,整个样子已经出来的,现在我们给照片增加效果吧!

结果我们要做的就是先设置遮盖物,由于我们已经给照片类设置了position:relative;属性,现在我们可以轻易的通过绝对定位来改变样式为.mask的元素位置了。我们应该知道,当元素设置了position后,则代表它已经脱离了标准的文档流而悬浮起来,所以我们可以轻易的调整.mask元素的位置来达到遮盖物的效果。现在我们给遮盖物.mask应用效果吧:

.photoview .mask{
position:absolute; /*由于父容器设置了position:relative,所以子元素可以相对父容器做绝对定位*/
top:60px;
left:120px;

height: 120px; /*设置遮盖物的宽高*/
width: 120px;

cursor:pointer;
border-radius: 60px; /*给遮盖物设置圆角效果,如果radius=元素宽度*1/2 ,则此时元素就成一个圆形*/
border-width: 60px;
display: inline-block;
border: 60px solid rgba(0, 0, 0, 0.7);
-moz-box-sizing:border-box; /*以border-box方式计算容器的宽高*/
-webkit-box-sizing:border-box;
box-sizing:border-box;

opacity:1; /*设置遮盖物为不透明的*/
visibility:visible; /*设置遮盖物是可见的*/

-moz-transform:scale(4); /*将遮盖物放大4倍尺寸*/
-webkit-transform:scale(4);
-o-transform:scale(4);
-ms-transform:scale(4);
transform:scale(4);

-moz-transition:all 0.4s ease-in-out; /*一旦遮盖物属性发生变化时,进行平滑动画过度*/
-webkit-transition:all 0.4s ease-in-out;
-o-transition:all 0.4s ease-in-out;
-ms-transition:all 0.4s ease-in-out;
transition:all 0.4s ease-in-out;

}

如果大家对上面这些属性不是太了解的话,可以关注我的其他博文,里面会有详细讲解。此时我们再看一下运行效果:

遮盖物已经呈现半透明状态,并且已经完全遮盖住照片,在上面的样式中我们定义了 transition:all 0.4s ease-in-out; 这个是什么意思呢?

它其实是说,当.mask元素的样式发生变化时,以先快后慢的动画效果实现.mask样式属性的变化。

好了,当鼠标划过照片时,我们重新调整.mask属性样式:

.photoview:hover .mask { /*当鼠标划过照片时,将遮盖物设为透明,且border设为0,将遮盖物隐藏*/
opacity: 0;
border:0px solid rgba(0,0,0,0.7);
visibility:hidden;
}

至此,代码编写完了,现在我们看一下划过的效果吧:

欢迎大家加入互联网技术交流群:62329335 

个人申明:所分享博文,绝对原创,并力争每一个知识点都通过实战演示来进行验证。

CSS3实战开发: 手把手教大家实战开发鼠标划过图片动画特效

时间: 2024-10-13 23:27:38

CSS3实战开发: 手把手教大家实战开发鼠标划过图片动画特效的相关文章

CSS3实战开发:手把手教你鼠标滑动特效开发

各位网友,如果你已经看过我的CSS3实战开发系列教程,我相信你对CSS3已经有了非常全面深刻的了解.有些人可能CSS3语法掌握了不少,但是真正实际用起来还有点生疏,甚至无从下手.请别担心,我会不断更新一系列实战开发案例,我会为大家分步骤剖析特效开发过程. 今天我将手把手带领大家开发一个鼠标滑动的特效案例,废话不多说,直接上效果动画: 你有没有觉得上面的这个特效很棒呢! 好,现在咱们就开始分步骤实战开发这个动画特效吧: 首先,我们先准备好html页面代码: <!DOCTYPE html> <

CSS3实战开发:手把手教你照片墙实战开发

在<CSS3 2D转换技术之translate实战开发>文章中,我给大家列出了CSS3中的2D转换方法: 1.    translate() 2.    rotate() 3.    scale() 4.    skew() 5.    matrix() 同时对第一个方法 translate()做了非常详尽的介绍,并带领大家实战开发了一个导航条.如果你对translate不了解或不是太熟悉,请阅读我的博文 <CSS3 2D转换技术之translate实战开发> . 在讲解知识点之前

CSS3实战开发:手把手教大家折角效果实战开发

各位网友,大家好,我是陌上花会开,今天这篇文章,我将手把手教大家如何开发一套纯CSS的折角效果.一如往常,我不提供代码下载,但是我可以保证,只要将教程中的代码复制到本地,绝对百分百获得与我演示的效果一样,希望各位明白我的用意. 好了,直接开始今天的教程吧.首先,我先给大家演示一下今天实战案例的效果: 有人会说这是什么?这就是我们今天的实战开发,我将带领大家开发上图中的右上角折叠效果. 在我讲解完之前,有些人可能觉得很难,不可思议.我想跟你们说:真的so easy.下面就请跟着我的分解步骤一步步学

深入理解iPhone数据持久化(手把手教你iphone开发 – 基础篇)

在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保存在相应的磁盘目录中和数据库中.symbian中因为权限认证的原因,在3rd上大多数只能访问应用程序的private目录或其它系统共享目录.在iphone中,apple博采众长,提供了多种数据持久化的方法,下面笔者会逐个进行详细的讲解. iphone提供的数据持久化的方法,从数据保存的方式上讲可以分为三大部分:属性列表.对象归档.嵌入式数据库(SQLite3).其他方法. 一.属

9种jQuery和css3图片动画特效代码演示

1.自由旋转的jQuery图片 演示和下载地址 2.css3阴影动画效果 演示和下载地址 3.拉窗帘特效图片 演示和下载地址 4.css3文字特效动画 演示和下载地址 5.css3时钟代码 演示和下载地址 6.css3图片放大动画 演示和下载地址 7.jQuery滑块图片展开效果 演示和下载地址 8.css3文字阴影 演示和下载地址 9.jQuery 3d图片旋转特效 演示和下载地址

分享十个CSS3鼠标滑过文字动画特效

介绍10组基于CSS3的鼠标滑过文字动画特效,有上凸.下凹等文字动画.这些炫酷的CSS3文字效果可以让网页变得更加绚丽.效果图如下: 在线预览   源码下载 实现的代码. html代码: <h2 class="headingOuter"> Push down (shadow effect)</h2> <div class="headingWrapper color-bright"> <a href=""

[swift实战入门]手把手教你编写2048(三)

上篇地址:swift实战入门之手把手教你编写2048(二) github地址:https://github.com/scarlettbai/2048.git. 今天给大家带来2048最后一篇,之前已经实现了向游戏区域中随机插入数字块,接下来要做的,就是当我们滑动屏幕时移动及合并数字块以及插入一个新的数字块.本篇的难点就是移动时的算法问题,首先来给大家讲一下算法. 2048的算法实现其实很简单,假如我们当前数字格的格式如下: | |4| | | | | |4| | |2| |2|2| |2| |

[swift实战入门]手把手教你编写2048(二)

上篇地址:swift实战入门之手把手教你编写2048(一) github地址:https://github.com/scarlettbai/2048.git. 上篇文章已经中已经把2048的游戏区块画好了,这篇来加入计分板以及往游戏面板中插入数字块 计分板同样作为一个view,我们新建一个ScoreView.swift文件,代码如下: import UIKit //这里协议的作用是方便别的类中调用计分板的scoreChanged方法 protocol ScoreProtocol{ func sc

[swift实战入门]手把手教你编写2048(一)

苹果设备越来越普及,拿着个手机就想捣鼓点啥,于是乎就有了这个系列,会一步一步教大家学习swift编程,学会自己做一个自己的app,github地址:https://github.com/scarlettbai/2048.git. 这篇文章需要大家了解一些swift基本语法,这里注重实践,就不讲太多基本语法了,不懂的大家可以Google一下,swift开发环境也很简单,直接在mac上安装一个XCode即可,首先我们来看下最终我们要实现的效果: 当然你也可以将其中的数字换成文字给你女票安手机上,还可