您现在的位置是:网站首页> 编程资料编程资料
基于CSS 判断鼠标进入的方向CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2021-09-03
899人已围观
简介 这篇文章主要介绍了基于CSS 判断鼠标进入的方向的实现代码,代码简单易懂,非常不错,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
在之前某一个前端技术群里,有一个群友说他面试的时候遇到了一个问题,就是面试官让他用纯 CSS 来实现一个根据鼠标移动位置觉得物体移动方向的 DEMO。
给出的初始结构如下:
从不同方向使鼠标指针移过下面的内容
↓
→←Hover me!↑
效果图如下:
实现
净会问这种不实用又跟业务没啥关系的问题,气抖冷,中国前端什么时候才能真正的站起来。 谢谢面试官提出的好问题,我会努力实现出来的。
所以这个功能真的能用纯 CSS 实现吗?
答案是可以的,首先我们来分解下思路。
CSS 鼠标事件
首先根据题干,我们知道这题是需要用到鼠标操作的,JS 里我们有各种 mouse 事件,但同样的,CSS 我们也有 :hover 。
这题我们需要利用到的选择器就是 :hover 了
判断方向
判断方向的功能便是本题的核心。
从题图上来看,其实已经给了我们方向的指引,就是告诉我们鼠标要通过四个箭头的方向进入。
然后就是如果要纯 CSS 来实现,就是我们的鼠标必须要触碰到某个关键节点,而且这个节点的某个表现一定是可以代表这个方位的。
这就是题目给出的两个隐藏条件。
所以我们来尝试下实现。
首先要通过 :hover 来触碰到这个关键节点,而且是要在箭头指向的方向下触碰触发,那么我们可以在箭头所指的方向都加上一个能被触碰到的物体,例如这样:
上下左右Hover me!
效果如下:

我们可以发现,除了 右块 之外,都被遮住了,嗯,正常现象。
接下来我们只需要让这几个块退到边缘即可。
代码如下:
.block_hoverer { position: absolute; z-index: 1; width: 100%; height: 100%; transition: all 0.3s ease; } .block_hoverer:nth-child(1) { background: red; top: -90%; } .block_hoverer:nth-child(2) { background: lime; top: 90%; } .block_hoverer:nth-child(3) { background: orange; left: -90%; } .block_hoverer:nth-child(4) { background: blue; left: 90%; }效果如下:

然后我们加上过渡:
.block_hoverer { transition: all 0.3s ease; } .block_hoverer:hover { opacity: 1; top: 0; left: 0; }效果如下:

一步就是隐藏起来:
.block { position: relative; display: inline-block; overflow: hidden; width: 10em; height: 10em; vertical-align: middle; } .block_hoverer { opacity: 0; } .block_hoverer:hover { opacity: 1; }效果如下:

所以我们有完整代码如下:
从不同方向使鼠标指针移过下面的内容
↓
→←1234Hover me!↑
完整效果可以查看鱼头的codepen
到此这篇关于基于CSS 判断鼠标进入的方向的文章就介绍到这了,更多相关css 鼠标进入方向内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 深入浅析CSS3中的Flex布局整理CSS实现动态图片的九宫格布局的实例代码css之display属性之inline-block布局实现详解详解CSS中的flex布局css用Flex布局制作简易柱状图的实现使用CSS和Java来构建管理仪表盘布局的实例代码
- CSS中层叠上下文的具体使用css3+svg实现创意图片层叠音乐播放样式代码css 层叠与z-index的示例代码css样式层叠规则详解CSS 中重要的层叠概念详解详解CSS中的特指度和层叠问题
- 纯CSS3实现移动端展开和收起效果的示例代码HTML5给汉字加拼音收起展开组件的实现代码纯CSS3实现炫酷圆形主菜单动画展开收起特效源码CSS3 实现侧边栏展开收起动画
- CSS实现聊天气泡效果CSS3 仿微信聊天小气泡实例代码纯CSS实现聊天框小尖角、气泡效果
- css3 实现元素弧线运动的示例代码css3实现画半圆弧线的示例代码
- css3中less实现文字长阴影(long shadow)
- 解决css中的匹配问题CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS实现底部tapbar栏功能css实现网页栏目左侧固定当滚动到底部时自动调整位置
- 用CSS播放声音的几种技巧方法CSS3动画之利用requestAnimationFrame触发重新播放功能巧用CSS滤镜制作绚丽图片播放效果-CSS教程-网页制作-网页教学网
- 利用CSS中的 outline-offset 属性实现加号css中filter属性和backdrop-filter的应用与区别详解详解HTML5中CSS外观属性CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)CSS字体、文本、列表属性详细介绍奇妙的 CSS 属性 MASK详解CSS 继承 inherit属性的方法css一些不常见但很有用的属性操作大全
