当前位置: 首页 > news >正文

掀开图片显示介绍的css效果

概述

主要运用到CSS3的3D transform等变换

详细

代码下载:http://www.demodashi.com/demo/10575.html

一、概述

1、主要运用到CSS3的3D transform等变换

  • transform:向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜

描述测试
none定义不进行转换。测试
matrix(n,n,n,n,n,n)定义 2D 转换,使用六个值的矩阵。测试
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)定义 3D 转换,使用 16 个值的 4x4 矩阵。 
translate(x,y)定义 2D 转换。测试
translate3d(x,y,z)定义 3D 转换。 
translateX(x)定义转换,只是用 X 轴的值。测试
translateY(y)定义转换,只是用 Y 轴的值。测试
translateZ(z)定义 3D 转换,只是用 Z 轴的值。 
scale(x,y)定义 2D 缩放转换。测试
scale3d(x,y,z)定义 3D 缩放转换。 
scaleX(x)通过设置 X 轴的值来定义缩放转换。测试
scaleY(y)通过设置 Y 轴的值来定义缩放转换。测试
scaleZ(z)通过设置 Z 轴的值来定义 3D 缩放转换。 
rotate(angle)定义 2D 旋转,在参数中规定角度。测试
rotate3d(x,y,z,angle)定义 3D 旋转。 
rotateX(angle)定义沿着 X 轴的 3D 旋转。测试
rotateY(angle)定义沿着 Y 轴的 3D 旋转。测试
rotateZ(angle)定义沿着 Z 轴的 3D 旋转。测试
skew(x-angle,y-angle)定义沿着 X 和 Y 轴的 2D 倾斜转换。测试
skewX(angle)定义沿着 X 轴的 2D 倾斜转换。测试
skewY(angle)定义沿着 Y 轴的 2D 倾斜转换。测试
perspective(n)为 3D 转换元素定义透视视图。测试

2、做的时候遇到了两个问题:

  • 图片掀开的效果

  • 鼠标hover效果的稳定

二、图片掀开的效果

把动画拆开来看,感觉应该是有一个沿着X轴的旋转,设置一下transform效果

img{
            transform: rotateX(90deg);
        }

但是这样看起来更像是图片收缩了,并没有在视觉上产生旋转的效果。此时,需要在img的父元素上添加perspective属性,更改它的透视位置。

.picBox{
    perspective:1000px;
    }

这时候再看,效果已经差不多了,只要img再同时增加一个向上的移动效果即可。所以最后img的transform设置为

img{
    transform: translateY(-320px) rotateX(90deg);
}

这样掀开图片的效果基本上就搞定了。但是,由于最开始把hover设置在了img自己身上,要同时设置描述文本.overLayer,就要写成

img:hover +.overLayer

(按惯性写空格就不会起效果。因为img和.overLayer是同级元素)这时最明显的问题在于hover效果不稳定。

三、鼠标hover效果的稳定

因为img在做变化,鼠标保持不动的时候,img可能已经不在鼠标的范围里面,就会产生晃晃荡荡忽上忽下的颤抖效果,看起来很不舒服。最好的解决方法就是把hover设置在img和.overLayer共同的父元素.picBox身上,然后分别给他们设置样式。

.picBox
    &:hover img{
        transform: translateY(-320px) rotateX(90deg);
        opacity: 0;
    }
    
    &:hover .overLayer{
        opacity: 1;
    }    

}

(使用的scss)这样效果就能稳定了。

 

四、html代码

html代码如下:

<div class="picBox">
        <img src="../img/1.jpg" alt="">
        <div class="overLayer">
            <h3 class="title">title here</h3>
            <p class="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reiciendis labore molestiae magni, consequatur nesciunt expedita. Dicta placeat minus sint, culpa.</p>
        </div>
    </div>
    
    <div class="picBox">
        <img src="../img/2.jpg" alt="">
        <div class="overLayer">
            <h3 class="title">title here</h3>
            <p class="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut pariatur excepturi, voluptatum consectetur facere commodi at distinctio iste sapiente necessitatibus.</p>
        </div>
    </div>

 

五、运行与文件截图

1、文件截图

blob.png

2、运行:

双击try文件夹里面的index_try.html文件即可看到效果

3、运行时的截图

1.gif

六、其他补充

总结:样式写死了尺寸,导致整体缩放时很多地方都要重写,下次要注意改成百分比的形式,或者设置变量,便于修改。

 

代码下载:http://www.demodashi.com/demo/10575.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

 

转载于:https://www.cnblogs.com/demodashi/p/8481555.html

相关文章:

  • JS判断某变量是否为某数组中的一个值的3种方法
  • Hook技术--Activity的启动过程的拦截
  • AR和VR持续升温,2020年市场规模将达1500亿美元
  • 【转】给Java说句公道话
  • 你可能不知道的Shell
  • Nginx 调优经验记录
  • 怎样解题表
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • 如何克服解决Git冲突的恐惧症?(序)
  • [BZOJ3223]文艺平衡树
  • ccf-20171203 Crontab问题
  • schtasks命令
  • 聚类分析——Kmeans
  • 元素外边距溢出(塌陷)
  • TCP/IP学习(29)——kernel如何选择socket接收数据
  • @jsonView过滤属性
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • android 一些 utils
  • co.js - 让异步代码同步化
  • Cookie 在前端中的实践
  • Java IO学习笔记一
  • Linux各目录及每个目录的详细介绍
  • linux学习笔记
  • MySQL数据库运维之数据恢复
  • NSTimer学习笔记
  • passportjs 源码分析
  • PermissionScope Swift4 兼容问题
  • Redis字符串类型内部编码剖析
  • spring boot下thymeleaf全局静态变量配置
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 盘点那些不知名却常用的 Git 操作
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 试着探索高并发下的系统架构面貌
  • 手写一个CommonJS打包工具(一)
  • 自制字幕遮挡器
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​ubuntu下安装kvm虚拟机
  • #《AI中文版》V3 第 1 章 概述
  • #NOIP 2014# day.1 T2 联合权值
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #数学建模# 线性规划问题的Matlab求解
  • #图像处理
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $refs 、$nextTic、动态组件、name的使用
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net core 控制台应用程序读取配置文件app.config
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 服务 ServiceController