概述

之前觉得2个效果很叼,一个是3D翻转效果,另一个是视差效果。今天好好的研究一下,把心得记录下来,供以后开发时参考,相信对其他人也有用。

3D翻转

3D翻转效果其实非常简单,其实就是perspective属性的一个运用。perspective属性就是视距的意思。下面是一个鼠标放上去图片就会翻转的小示例,看看就会了:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>div {margin: 200px 0 0 200px;width: 200px;height: 200px;}i {display: block;width: 100%;height: 100%;box-shadow: 10px 10px 150px #5fbdff;transition: all 2s;-webkit-transform: perspective(800px);-ms-transform: perspective(800px);-o-transform: perspective(800px);transform: perspective(800px);}div:hover i {-webkit-transform: perspective(800px) rotateY(180deg);-ms-transform: perspective(800px) rotateY(180deg);-o-transform: perspective(800px) rotateY(180deg);transform: perspective(800px) rotateY(180deg);}</style>
</head>
<body><div><i></i></div>
</body>
</html>

这里有一个更加好看的开门效果例子。

视差效果

所谓的视差效果,就是在鼠标或滚轮进行移动的时候,多层次的背景进行不同程度的变换(有的是位移,有的是翻转等)。

这里有一个鼠标位移进行翻转视差的例子,主要是监听鼠标进入元素并移动的事件,检查鼠标在元素内部的位置,从而进行不同程度的翻转

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>html, body {height: 100%;margin: 0;overflow: hidden;}body {color: white;font-family: sans-serif;font-size: 1.8em;display: flex;align-items: center;justify-content: center;}.content {margin: 1px;width: 140px;height: 140px;display: flex;align-items: center;justify-content: center;box-shadow: 0px 0px 10px rgba(0,0,0,0.3);transition: all 0.4s cubic-bezier(0.39, 0.575, 0.565, 1);}</style>
</head>
<body><div class="wowpanel"><div class="content">move</div></div><div class="wowpanel"><div class="content">your</div></div><div class="wowpanel"><div class="content">cursor</div></div><div class="wowpanel"><div class="content">over</div></div><script>const ANGLE = 45;let wowpanels = document.querySelectorAll(".wowpanel");let colors = ['#4975FB', '#924DE6', '#EF5252', '#F59500'];wowpanels.forEach((element, i) => {floatable(element, colors[i]);});function floatable (panel, color) {let content = panel.querySelector(".content");content.style.backgroundColor = color;panel.addEventListener('mouseout', e => {content.style.transform = `perspective(300px)rotateX(0deg)rotateY(0deg)rotateZ(0deg)`;});panel.addEventListener('mousemove', e => {let w = panel.clientWidth;let h = panel.clientHeight;let y = (e.offsetX - w * 0.5) / w * ANGLE;let x = (1 - (e.offsetY - h * 0.5)) / h * ANGLE;content.style.transform = `perspective(300px)rotateX(${x}deg)rotateY(${y}deg)`;});}</script>
</body>
</html>

类似地,我们也可以不用翻转,而是用位移。当鼠标向左移动的时候,图片向右移动;当鼠标向右移动的时候,图片向左移动;当鼠标向上移动的时候,图片向下移动等等,这样就能做出比较好看的位移视差效果了。

这里有2篇关于视差效果的文章,很有启发性:

视差滚动效果原理解析和效果实现
小tip: 纯CSS实现视差滚动效果

转载于:https://www.cnblogs.com/yangzhou33/p/9375137.html

css中的视距perspective和视差效果相关推荐

  1. css中图片有缩放和转动效果

    现在html中利用div来包裹住一张图片. <div class="xuanzhuan"><img src="images/top.png" ...

  2. Css中图片局部放大,将图片中局部放大效果

    刚毅87 我不清楚你的 bug, 我自己写了一份,你可以参考一下html> *{ margin: 0; padding: 0; } #wrap{ /*此处尺寸改为你图片的大小,画板也是如此 wi ...

  3. css中在图片上加透明,css 给图片添加滤镜效果,透明层毛玻璃效果

    我们用的第一个滤镜是sepia(),他会给图片增加一整降饱和度的橙色染色效果 原图 添加sepia滤镜的效果 img{ width:100%; transition: .5s filter; filt ...

  4. HTML文本下划线效果,聊聊CSS中文本下划线_CSS, SVG, masking, clip-path, 会员专栏, text-decoration 教程_W3cplus...

    在Web中给文本添加下划线常常出现在链接的文本上,早期一般使用text-decoration属性给文本添加下划线.删除线等.除了text-decoration之外,CSS还有很多技术方案可以给文本添加 ...

  5. css 选座,纯html+css中实现静态选座位效果技巧(input+label使用小技巧)

    很多时候,我们想通过html+css的方式实现排列在后方的代码在选中状态下,能控制排列在前的代码的样式.那么要怎么实现呢?在这里我就要用1个小技巧来完成. 众所周知的,我们css中的选择器通常只能向下 ...

  6. 我可以在CSS中使用onclick效果吗?

    本文翻译自:Can I have an onclick effect in CSS? I have an image element that I want to change on click. 我 ...

  7. CSS中如何实现背景图片透明并且固定和文字不透明效果

    设置背景图片的透明度,并且该背景图片不随鼠标滚动而移动,我们可以使用滤镜filter中的透明度设置opacity,并使用伪类before和定位 至于opacity的作用:转化图像的透明程度.值定义转换 ...

  8. 在CSS中实现父选择器效果

    为何CSS不支持父选择器? 这个问题的答案和"为何CSS相邻兄弟选择器只支持后面的元素,而不支持前面的兄弟元素?"是一样的. 浏览器解析HTML文档,是从前往后,由外及里的.所以, ...

  9. html怎么设置凹陷效果,如何在css中实现圆角内凹效果

    如何在css中实现圆角内凹效果 发布时间:2020-07-22 09:22:57 来源:亿速云 阅读:122 作者:Leah 这期内容当中小编将会给大家带来有关如何在css中实现圆角内凹效果,文章内容 ...

  10. 仿知乎列表广告栏:在RecyclerView中实现大图片完整展示的视差效果(优雅地插入全屏广告图)

    github地址:https://github.com/wsj1024/RvParallaxImageView 欢迎star 一,前言 在知乎和花生地铁app上看到过类似如下的效果: ​ 在recyc ...

最新文章

  1. 消息称中国商务部已批准高通收购恩智浦
  2. 用 IDEA 看源码的正确姿势!你掌握了吗?
  3. boost库在window下的编译
  4. 类加载过程(加载+验证+准备+解析+初始化)
  5. linux网卡点灯命令,LINUX下SHELL GPIO点灯
  6. 在c#.net通用权限管理系统组件里的 部门经理,分管副总 的管理方法参考
  7. 交互式计算机图形学总结:第四章 观察
  8. shell 命令详解
  9. golang实现聊天室(四)
  10. [剑指offer][JAVA]面试题第[31]题[栈的压入、弹出序列][栈]
  11. storm日志bebug问题
  12. 学习日记之单例模式和Effective C++
  13. 电脑音箱有电流声_你以为音响就是音箱?音响≠音箱
  14. 当心:您可能会使用免费的Web辅助功能插件获得不需要付费的东西
  15. Selenium之浏览器驱动下载和配置使用
  16. Windows10安装韩语输入法详细教程(图文)
  17. java生成生日贺卡代码_【5号课堂】scratch制作电子生日贺卡
  18. IT行业十大热门职位
  19. 06-----the inferior stopped because it triggered an exception
  20. C# AO/ArcEngine 栅格数据总结

热门文章

  1. Linux进程调度原理【转】
  2. 光伏发电设备被淹或浸水时的相关注意事项
  3. Flexbox弹性布局,更优雅的布局
  4. CentOS 6.5 x64安装svn
  5. LoadRunner 常用C语言函数使用举例说明
  6. [转]设置修改CentOS系统时区
  7. 每日英语:How to say No to other people
  8. iOS GBK转换为Utf8
  9. 傻傻分不清之 Cookie、Session、Token、JWT这次让你彻底搞懂,还不懂你来找我
  10. solr5.3.1 mysql_Solr-5.3.1 dataimport 导入mysql数据