返回顶部
首页 > 资讯 > 精选 >CSS如何判断鼠标进入的方向
  • 157
分享到

CSS如何判断鼠标进入的方向

2023-06-08 04:06:23 157人浏览 独家记忆
摘要

这篇文章给大家分享的是有关CSS如何判断鼠标进入的方向的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在之前某一个前端技术群里,有一个群友说他面试的时候遇到了一个问题,就是面试官让他用纯 CSS 来实现一个根据鼠标

这篇文章给大家分享的是有关CSS如何判断鼠标进入的方向的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在之前某一个前端技术群里,有一个群友说他面试的时候遇到了一个问题,就是面试官让他用纯 CSS 来实现一个根据鼠标移动位置觉得物体移动方向的 DEMO。

给出的初始结构如下:

<style>body {    padding: 2em;    text-align: center;}.block {    position: relative;    display: inline-block;    width: 10em;    height: 10em;    vertical-align: middle;}.block_content {    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    text-align: center;    line-height: 10em;    background: #333;    color: #FFF;}</style><p class="text">从不同方向使鼠标指针移过下面的内容</p><p>&darr;</p><span>&rarr; </span><div class="block">    <div class="block_content">        Hover me!    </div></div><span> &larr;</span><p>&uarr;</p>

效果图如下:

CSS如何判断鼠标进入的方向 

实现

净会问这种不实用又跟业务没啥关系的问题,气抖冷,中国前端什么时候才能真正的站起来。 谢谢面试官提出的好问题,我会努力实现出来的。

所以这个功能真的能用纯 CSS 实现吗?

答案是可以的,首先我们来分解下思路。

CSS 鼠标事件

首先根据题干,我们知道这题是需要用到鼠标操作的,js 里我们有各种 mouse 事件,但同样的,CSS 我们也有 :hover

这题我们需要利用到的选择器就是 :hover

判断方向

判断方向的功能便是本题的核心。

从题图上来看,其实已经给了我们方向的指引,就是告诉我们鼠标要通过四个箭头的方向进入。

然后就是如果要纯 CSS 来实现,就是我们的鼠标必须要触碰到某个关键节点,而且这个节点的某个表现一定是可以代表这个方位的。

这就是题目给出的两个隐藏条件。

所以我们来尝试下实现。

首先要通过 :hover 来触碰到这个关键节点,而且是要在箭头指向的方向下触碰触发,那么我们可以在箭头所指的方向都加上一个能被触碰到的物体,例如这样:

<style>.block_hoverer {    position: absolute;    width: 100%;    height: 100%;    z-index: 1;}.block_hoverer:nth-child(1) {    background: red;}.block_hoverer:nth-child(2) {    background: lime;}.block_hoverer:nth-child(3) {    background: orange;}.block_hoverer:nth-child(4) {    background: blue;}</style><div class="block">    <div class="block_hoverer">上</div>    <div class="block_hoverer">下</div>    <div class="block_hoverer">左</div>    <div class="block_hoverer">右</div>    <div class="block_content">        Hover me!    </div></div>

效果如下:

CSS如何判断鼠标进入的方向

我们可以发现,除了 右块 之外,都被遮住了,嗯,正常现象。

接下来我们只需要让这几个块退到边缘即可。

代码如下:

.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%;}

效果如下:

CSS如何判断鼠标进入的方向

然后我们加上过渡:

.block_hoverer {  transition: all 0.3s ease;}.block_hoverer:hover {  opacity: 1;  top: 0;  left: 0;}

效果如下:

CSS如何判断鼠标进入的方向

一步就是隐藏起来:

.block {  position: relative;  display: inline-block;  overflow: hidden;  width: 10em;  height: 10em;  vertical-align: middle;}.block_hoverer {  opacity: 0;}.block_hoverer:hover {  opacity: 1;}

效果如下:

CSS如何判断鼠标进入的方向

所以我们有完整代码如下:

<style>    body {        padding: 2em;        text-align: center;    }    .block {        position: relative;        display: inline-block;        overflow:hidden;        width: 10em;        height: 10em;        vertical-align: middle;        transfORM: translateZ(0);    }    .block_hoverer {        position: absolute;        z-index: 1;        width: 100%;        height: 100%;        opacity: 0;        transition: all .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:hover {        opacity: 1;        top: 0;        left: 0;    }    .block_content {        position: absolute;        top: 0;        left: 0;        width: 100%;        height: 100%;        text-align: center;        line-height: 10em;        background: #333;        color: #FFF;    }</style><body>    <p class="text">从不同方向使鼠标指针移过下面的内容</p>    <p>&darr;</p>    <span>&rarr; </span>    <div class="block">        <div class="block_hoverer">1</div>        <div class="block_hoverer">2</div>        <div class="block_hoverer">3</div>        <div class="block_hoverer">4</div>        <div class="block_content">            Hover me!        </div>    </div>    <span> &larr;</span>    <p>&uarr;</p></body>

完整效果可以查看鱼头的codepen

感谢各位的阅读!关于“CSS如何判断鼠标进入的方向”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: CSS如何判断鼠标进入的方向

本文链接: https://lsjlt.com/news/251636.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CSS如何判断鼠标进入的方向
    这篇文章给大家分享的是有关CSS如何判断鼠标进入的方向的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在之前某一个前端技术群里,有一个群友说他面试的时候遇到了一个问题,就是面试官让他用纯 CSS 来实现一个根据鼠标...
    99+
    2023-06-08
  • 如何用纯CSS判断鼠标进入的方向
    本篇内容主要讲解“如何用纯CSS判断鼠标进入的方向”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用纯CSS判断鼠标进入的方向”吧!   面试的时候遇到了一...
    99+
    2024-04-02
  • 怎么用纯CSS判断鼠标进入的方向
    这篇文章主要讲解了“怎么用纯CSS判断鼠标进入的方向”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用纯CSS判断鼠标进入的方向”吧!前言用纯 CSS 来...
    99+
    2024-04-02
  • 如何使用jQuery判断鼠标的左右键点击
    这篇文章主要介绍如何使用jQuery判断鼠标的左右键点击,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用jQuery判断鼠标的左右键点击$("#someelement").live('c...
    99+
    2023-06-27
  • unity 如何判断鼠标是否在哪个UI上(两种方法)
    第一种 可以得到UI,再根据名字判断是不是自己自己要点击的UI 其中参数canvas拖入此UI的canvas /// <summary> /// 获...
    99+
    2024-04-02
  • 利用ViewPager如何判断划动方向
    本篇文章给大家分享的是有关利用ViewPager如何判断划动方向,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实例如下://记录上一次滑动的positionOffsetPixe...
    99+
    2023-05-31
    viewpager age pager
  • JS如何判断滚动条的滚动方向
    小编给大家分享一下JS如何判断滚动条的滚动方向,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以下代码实现判断页面的滚动条的滚动方...
    99+
    2024-04-02
  • Js如何判断H5上下滑动方向
    这篇文章主要介绍Js如何判断H5上下滑动方向,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!向上滑动隐藏底部悬浮框,向下滑动显示悬浮框。使用pc端浏览器查看请把浏览器设置为手机浏览器模...
    99+
    2024-04-02
  • win7鼠标左右方向反了如何处理
    要修复 Windows 7 中鼠标左右方向反了的问题,您可以按照以下步骤进行操作:1. 进入控制面板:点击开始菜单,然后选择 "控制...
    99+
    2023-09-04
    win7
  • CSS如何实现鼠标悬浮无限向下级展示
    这篇文章主要介绍CSS如何实现鼠标悬浮无限向下级展示,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体代码如下所示;*{        ...
    99+
    2023-06-08
  • 如何判断Linux系统是否被非法进入
    如何判断Linux系统是否被非法进入,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。对于在线运行的业务系统,安全性是一个至关重要的问题。服务器被非法进入最常见的表...
    99+
    2023-06-16
  • 如何实现导入css文件使用判断条件
    这篇文章主要为大家展示了“如何实现导入css文件使用判断条件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现导入css文件使用判断条件”这篇文章吧。方案一: 在HTML文档中使用条件导入,...
    99+
    2023-06-08
  • win10黑屏无法进入桌面鼠标能动如何解决
    这篇文章主要讲解了“win10黑屏无法进入桌面鼠标能动如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win10黑屏无法进入桌面鼠标能动如何解决”吧!方法一: 按住Shift键单击“重...
    99+
    2023-07-01
  • 详解Python Selenium如何获取鼠标指向的元素
    有一个同学在Gne的群里面咨询如何通过Selenium获取当前鼠标指向的元素,在我讲了方法以后,他过了两天又来问: 那么,我今天就来写一篇文章,具体说说应该怎么操作。 这个方法的核...
    99+
    2024-04-02
  • 如何使用css的filter写鼠标滑过效果
    这篇文章主要为大家展示了如何使用css的filter写鼠标滑过效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“如何使用css的filter写鼠标滑过效果”这篇文章吧。使用css的filter写鼠...
    99+
    2023-06-08
  • Win10鼠标指针如何修改?Win10鼠标指针改动的方式
    坚信许多应用Win10系统软件的小伙伴们鼠标指针款式全是应用默认设置,有一些同学便会感觉较为太简单,要想变更却不知怎样实际操作,那麼面对这样的状况要怎么办呢?下边就和小编一起来看一下有哪些操作步骤吧。Win10鼠标指针改动的方式鼠标单击逐渐...
    99+
    2023-07-17
  • php如何判断输入的是否是数字
    在PHP中,可以使用`is_numeric()`函数来判断输入是否是数字。该函数会返回一个布尔值,如果输入是数字,则返回`true`,否则返回`false`。以下是一个示例:```$input = "1234";if (is_numer...
    99+
    2023-08-11
    php
  • css如何改变鼠标正常选择时的样式
    这篇文章给大家分享的是有关css如何改变鼠标正常选择时的样式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在css中,可以利用cursor属性来改变...
    99+
    2024-04-02
  • 如何使用CSS content的attr实现鼠标悬浮提示
    这篇文章主要介绍了如何使用CSS content的attr实现鼠标悬浮提示,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需要那么大的插件库,其实就一两个地方需要做一些提示(t...
    99+
    2023-06-08
  • css3+伪元素如何实现鼠标移入时下划线向两边展开的效果
    这篇文章主要介绍了css3+伪元素如何实现鼠标移入时下划线向两边展开的效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先来看看效果图:实现...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作