热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

纯CSS实现图像鼠标悬停效果

前端开发whqet,csdn,王海庆,whqet,前端开发专家今天来看一组纯CSS实现的鼠标悬停效果,在线研究代码点效果一、效果二、效果三,下载收藏点这里,效果预览点这里。效果1
前端开发whqet,csdn,王海庆,whqet,前端开发专家

今天来看一组纯CSS实现的鼠标悬停效果,在线研究代码点效果一、效果二、效果三,下载收藏点这里,效果预览点这里。

效果1

效果1的html文件

这里是个标题呀
css文件中我们主要实现定位和hover动画。

/* 图片盒子的样式,宽高、边框、阴影、位置、鼠标样式、溢出 */
.pic{
	width: 500px;
	height: 500px;
	border: 10px solid #333;
	box-shadow: 0 0 10px rgba(0,0,0,.6);
	margin: 50px auto;
	position: relative;
	overflow: hidden;
	cursor: pointer;
}
/* 图片标题的样式,宽高、背景色、水平垂直居中、定位,透明度 */
.pic span{
	position: absolute;
	left: 0;
	bottom: 0;
	width: 500px;
	height: 50px;
	background: rgba(0,0,0,.5);
	color: #fff;
	font-size: 24px;
	line-height: 50px;
	text-align: center;
	opacity: 0;
}
/* 给需要动画的元素加过渡属性 */
.pic img,.pic span{
	transition: all .5s;
}
/* hover之后透明动画 */
.pic:hover span{
	opacity: 1;
}
/* hover之后图片放大的效果 */
.pic:hover img{
	transform: scale(2);
}

效果2

下面看效果2,上下滑动打开的实现过程。首先看html文件,我们需要两个图片元素,一个显示上半部分,一个显示下半部分。

top bottom OK,You can see it.
css文件如下,我们把实现原理写到注释里,就不一一解释了。

/* 图像盒子的样式设置,宽高、边框、阴影、溢出、位置 */
div.pic{
	width: 500px;
	height: 500px;
	cursor: pointer;
	margin: 50px auto;
	position: relative;
	overflow: hidden;
	border: 10px solid #333;
	box-shadow: 0 0 10px rgba(0,0,0,.8);
}
/* 上下两半部分的统一设置,绝对定位和过渡 */
div.pic img{
	position: absolute;
	left: 0;
	transition: all 1s;
}
/* 上半部分图像的裁剪和定位 */
div.pic img.top{
	top: 0;
	clip: rect(0px,500px,250px,0px);
}
/* 下半部分图像的裁剪和定位 */
div.pic img.bottom{
	bottom: 0;
	clip: rect(250px,500px,500px,0px);
}
/* hover之后图像的定位改变 */
div.pic:hover img.top{
	top: -50px;
}
div.pic:hover img.bottom{
	bottom: -50px;
}
/* 图像标题的样式设置,文字颜色、水平居中、垂直居中 */
div.pic span{
	display: inline-block;;
	width: 100%;
	text-align: center;
	line-height: 500px;
	font-size: 24px;
}
重点解释下CSS Clip的裁剪原理。

clip: rect(, , , );
这里的top、right、bottom、left指的是裁剪之后的矩形的上右下左四个边到原始边的距离,如下图所示


大家可以看看张鑫旭大牛的《CSS clip:rect矩形剪裁功能及一些应用介绍》了解详情,或者通过在线体会案例体验裁剪效果。

大家也可以利用Codrops上的《Expanding Overlay Effect》学习clip属性的超酷应用。

效果3

效果3的难点在于三角线图像的实现,我们这里主要利用skew()实现。html文件是这样的,我们需要分别在两个图像上加容器,然后分别对图像容器和图像设置相反方向的斜切。
OK,You can see it.
效果css文件
/* 图像盒子的样式,与前两个效果无异 */
.pic {
    width: 500px;
    height: 500px;
    overflow: hidden;
    cursor: pointer;
    border: 10px solid #333;
    box-shadow: 0 0 10px rgba(0, 0, 0, .8);
    margin: 50px auto;
    position: relative;
}
/* 两个图像的小容器的定位、斜切、溢出,因为图像宽高相同,所以斜切45度 */
.pic .top, .pic .bottom {
    width: 500px;
    height: 500px;
    overflow: hidden;
    position: absolute;
    transform: skew(-45deg);
}
/* 上下两个图像小容器分别设置不同的位置,变换原点 */
.pic .top {
    left: 0;
    top: 0;
    transform-origin: 100% 0;
    transition:all 1s, transform 0s;
}
.pic .bottom {
    right: 0;
    bottom: 0;
    transform-origin: 0 100%;
    transition:all 1s, transform 0s;
}
/* 上下两个图像向相反方向斜切 */
.pic .top img, .pic .bottom img {
    width: 100%;
    height: 100%;
    transform-origin: inherit;
    transform: skew(45deg);
}
/* hover之后图像小容器的变化 */
.pic:hover .top {
    left: -20px;
    top: -20px;
}
.pic:hover .bottom {
    right: -20px;
    bottom: -20px;
}
/* 图像标题的设置 */
.pic span {
    transform: rotate(-45deg);
    transform-origin: 0 100%;
    position: absolute;
    font-size:20px;
    bottom:-.5em;
    opacity: 0;
    transition: all 1s ease-in .2s;
}
.pic:hover span {
    opacity: 1;
    text-indent: 15em;
}

实现原理如下图所示,蓝色线框代表图像盒子.top,我们分别给图像和图像盒子不同方向相同角度的斜切实现效果,只有线框内的图像显示。


这样我们可以实现图像的三角形裁切效果,根据这样的原理大家可以尝试不同形状的实现。欢迎大家提供不同的实现思路。

That's all. 迎接鼓励,欢迎拍砖。

---------------------------------------------------------------

前端开发whqet,关注web前端开发技术,分享网页相关资源。
---------------------------------------------------------------


推荐阅读
  • 网站前端开发的核心理念与必备技能解析 ... [详细]
  • 精通jQuery:深入解析事件处理机制与应用技巧
    本文详细探讨了jQuery的事件处理机制及其应用技巧,通过具体的代码示例,逐一解析了每个jQuery代码片段与其对应的HTML结构。文章以标记为基准,CSS作为通用样式,确保每段代码都能独立运行。HTML和CSS代码统一放置在文章末尾,方便读者参考和实践。 ... [详细]
  • 期末Web开发综合实践项目:运用前端技术打造趣味小游戏体验
    期末Web开发综合实践项目中,学生通过运用HTML、CSS和JavaScript等前端技术,设计并实现了一款趣味性十足的小游戏。该项目不仅检验了学生对前端基础知识的掌握情况,还提升了他们的实际操作能力和创意设计水平。视频链接展示了项目的最终成果,直观呈现了游戏的互动性和视觉效果。 ... [详细]
  • 通过 CSS 中的 transition 属性,可以轻松实现元素状态变化时的平滑过渡效果。本文将详细介绍如何使用 transition 属性,并提供一个具体的示例。 ... [详细]
  • 本文详细介绍了如何利用CSS技术对链接下划线进行个性化定制和美化,涵盖了多种实用技巧和方法。通过对CSS属性的灵活运用,可以实现不同风格的下划线效果,提升网页的视觉体验。文中不仅提供了基础的代码示例,还结合实际案例进行了深入解析,帮助读者更好地理解和应用这些技巧。此外,文章还引用了《CSS2.0中文手册》中的相关内容,增加了技术的权威性和实用性。 ... [详细]
  • 使用React与Ant Design 3.x构建IP地址输入组件
    本文深入探讨了利用React框架结合Ant Design 3.x版本开发IP地址输入组件的方法。通过详细的代码示例,展示了如何高效地创建具备良好用户体验的IP输入框,对于前端开发者而言具有较高的实践指导意义。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 通过纯CSS技术,可以轻松创建精致的小圆点和三角形图形。本文详细介绍了如何利用CSS的伪元素、边框和背景属性,实现这些图形的高效绘制,并提供了多种应用场景和示例代码,帮助开发者在网页设计中增添更多视觉效果。 ... [详细]
  • 织梦系统多条件联动筛选功能详细教程及删除操作指南
    多条件联动筛选功能广泛应用于图片展示、装修设计、机械设备和在线商城等场景,通常筛选条件应聚焦于用户最关心的要素,而非涵盖所有可能的选项。在DedeCMS中,多条件筛选的PHP开发并未内置删除已选条件的功能,但通过理解PHP筛选与JS筛选的不同机制,实现这一功能相对简单且易于操作。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • 深入理解 CSS 盒模型、box-sizing 属性及定位元素的水平和垂直居中技巧
    深入理解 CSS 盒模型、box-sizing 属性及定位元素的水平和垂直居中技巧 ... [详细]
author-avatar
阳_光shine
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有