html 图片选中效果,使用html5 svg和css3制作神奇的图片hover效果

本文介绍了如何使用HTML5 SVG和CSS3来制作类似Christmas Experiments网站上的图片悬停效果。通过创建SVG背景并在鼠标hover时变形,文章详细讲解了HTML结构、CSS样式以及如何使用Snap.svg库进行JavaScript交互。三种不同的效果展示了SVG在响应式布局中的灵活性,并提供了适应不同屏幕尺寸的解决方案。
摘要由CSDN通过智能技术生成

如果你曾经访问过新版的Christmas Experiments网站,那么你一定被网站上的日历效果所吸引。今天我们将和大家一起来研究如何使用SVG和Snap.svg来实现这种效果。思路是用svg创建一个带标题的背景,然后在鼠标hover的时候使它变形为另一种形状。有很多可行的方案来制作它,今天我们将创建三种不同的效果。利用SVG的好处是,我们可以任意调整它在父容器中的大小,将它们做成流式布局。

HTML结构:

我们要做的第一件事是什么呢?应该先用矢量软件制作一个矢量图形。可以用Adobe Illustrator或者Inkscape。每个图形都包含一条路径,我们需要使用它四个角的坐标来完成svg。这里我们将一个矩形转换为路径,如果你使用Inkscape,你可以将整个图形选中,然后选择Path > Object to Path,点的坐标可以在Edit > XML Editor中得到...,可以参考下面的截图:

347b83bb835f93b6bee5105e8d23327a.png

html结构我们使用一个section,给它加上class grid,然后在其下放置a标签,并在a标签中放入figure,这里你也可以使用无序列表,但会多写一些代码。

figure中将包含一张图片、我们制作的图形和一个figcaption。

每个SVG将有自己的viewBox值,并将preserveAspectRatio设置为none。

这将使我们能够将形状调整和拉伸到我们想要的尺寸。我们将在样式表中定义它的宽度和高度。鼠标hover时图形的信息将保存在data-path-hover中。

CSS样式:

注意:下面的css没有包含各个厂商的前缀。

这些样式将被三种效果使用。首先写通用样式,然后在为每种效果写自己的样式。

先从grid开始,让它居中,并给它一个max-width和一个百分比的宽度,使它具有响应性。

.grid {

margin: 40px auto 120px;

max-width: 1000px;

width: 90%;

}

a元素要左浮动,我们给它一个最大宽度250px,并给它一个25%的实际宽度,这样一行能放4张图片,并且是响应式的。我们后面还要处理小屏幕(平板和手机)的问题。

.grid a {

float: left;

max-width: 250px;

width: 25%;

color: #333;

}

为了给奇数的图片一些偏移,我们设置顶部的margin 30px,底部的amrgin -30px,这将做出一个很好看的网格,就像Christmas Experiments网站上的那样。

.grid a:nth-child(odd) {

margin: 30px 0 -30px 0;

}

figure要设置为相对定位,因为我们需要设置它的一些子元素为绝对定位。由于鼠标悬停效果可能会导致一些溢出,所以我们要设置overflow为“hidd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值