js文字提示层案例分析

news2024/11/23 2:35:28

前言

💖js文字提示层在项目中比较常见,今天初次学习记录一下

 

功能介绍

在一段文本中鼠标触及红色字体,下方显示一个文字提示信息,鼠标离开红色字体区域,文字提示层消失。

知识点

onmouseover:鼠标指针移动到元素或它的子元素上时执行js事件

onmouseout:当鼠标指针移出元素或其子元素之一时,执行js事件

offsetLeft :一个只读属性,返回当前元素相对于 offsetParent 节点左边界的偏移像素值。

返回值包含:

  • 元素向左偏移的像素值,元素的外边距(margin)
  • offsetParent 元素的左侧内边距(padding)、边框(border)及滚动条

offsetTop:一个指向最近的(指包含层级上的最近)包含该元素的定位元素或者最近的元素。

innerHTML:.innerHTML 属性设置或获取 HTML 语法表示的元素的后代。

 代码

页面布局html

    <body>
        <div id="text">
            <strong>JavaScript</strong>一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为<strong>JavaScript</strong>引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在<strong>HTML</strong>(标准通用标记语言下的一个应用)网页上使用,用来给<strong>HTML</strong>网页增加动态功能。
        </div>
        <div id="tips"></div>
    </body>

#tips用来显示文字提示层

样式css

    <style>
        body {
            margin: 0;
        }

        #text {
            margin: 100px auto 0;
            padding: 10px;
            width: 500px;
            line-height: 40px;
            font-size: 24px;
            border: 1px solid #000;

        }

        #text strong {
            color: red;
            cursor: pointer;
        }

        #tips {
            position: absolute;
            padding: 10px;
            border: 1px solid #000;
            line-height: 28px;
            font-size: 16px;
            display: none;
            left: 0;
            top: 0;
            background: white;
            max-width: 200px;

        }
    </style>

鉴于这是js学习记录,我就不巴拉巴拉css了,简单说一下,文字的强调字体设置成了红色(就是我在功能介绍里说的红色字体)

功能实现js

    <script>
        window.onload = function () {
            var strongs = document.querySelectorAll("strong");
            var tips = document.getElementById("tips");
            var arr = [
                'JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。',
                'JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。',
                '超文本标记语言,标准通用标记语言下的一个应用。',
                '超文本标记语言,标准通用标记语言下的一个应用。'
            ];
            for (var i = 0; i < strongs.length; i++) {
                strongs[i].index = i;
                strongs[i].onmouseover = function () {
                    tips.style.display = 'block';
                    tips.innerHTML = arr[this.index];

                    tips.style.left = this.offsetLeft + 'px';
                    tips.style.top = this.offsetTop + 30 + 'px';
                }

                strongs[i].onmouseout = function () {
                    tips.style.display = 'none';
                }
            }
        }

    </script>

如果你不想你的代码没有错误但是功能却没有生效的话,请不要忘记把代码写进window.onload功能函数里面

使用querySelectorAll静态获取strong标签,使用getElementById动态获取tips标签

静态获取和动态获取标签的区别

静态获取时,选出的所有元素的数组,不会随着文档操作而改变;

动态获取时,选出的所有元素的数组,会随着文档的操作而发生变化;

使用for循环操作所有strong元素

            for (var i = 0; i < strongs.length; i++) {

            }

使用索引值的办法,获取每个数组对象,因为arr数组中的数据和strong标签是一一对应的,给每个strong标签赋予onmouseover功能函数。

strongs[i].index = i;

设置文字提示层的display为block,即显示,再插入数组的当前索引。

                strongs[i].onmouseover = function () {

                    tips.style.display = 'block';

                    tips.innerHTML = arr[this.index];

                }

使用offset设置文字提示层的位置

                    tips.style.left = this.offsetLeft + 'px';

                    tips.style.top = this.offsetTop + 30 + 'px';

当鼠标移开数组中当前数据时候 

                strongs[i].onmouseout = function () {

                    tips.style.display = 'none';

                }

作品展示

 

 

 参考文献:

用js实现文字提示层 ---总结 - hxiuping - 博客园 (cnblogs.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

平衡搜索树——B-树小记

文章目录B- 树系列定义插入规则代码B-树结点定义查找key在结点哪个子树插入分裂B- 树系列 定义 B-树是一棵多叉 平衡 搜索树(不是二叉树&#xff0c;B-树中每个结点中可以有多个key&#xff0c;也有多个孩子) B-树中每个结点在实现时人为规定一个key的上限(KEY_LIMIT 4) B-…

Mysql语法五:idea连接数据库和jdbc

目录 1.连接数据库 1.1.下载驱动包 1.2&#xff1a;连接数据库 2.jdbc编程 2.1&#xff1a;何为jdbc 2.2&#xff1a;jdbc的使用。 2.2.1&#xff1a;直接插入操作 2.2.2&#xff1a;利用&#xff1f;进行插入 2.2.3&#xff1a;修改操作 2.2.4&#xff1a;删除操作 …

算法基础:动态规划

目录 动态规划之禅 多种纬度解决Fibonacci 数列 什么是Fibonacci数列 朴素递归方案 朴素递归的问题 Fib自上而下、备忘录方案 Fib自下而上法 动态规划之禅 动态规划是算法基础部分中最有趣的一个了&#xff0c;我想了很多天&#xff0c;怎么用很短的一些话把动态规划像之…

onnx删除无用属性

这里写自定义目录标题在推理onnx模型时&#xff0c;报了一个错&#xff0c;如下&#xff1a;InvalidGraph: [ONNXRuntimeError] : 10 : INVALID_GRAPH : This is an invalid model. In Node, ("Conv_0", Conv, "", -1) : ("x": tensor(float),&q…

DPVS时间轮移植

DPDK自带的定时器采用跳表实现&#xff0c;时间复杂度是O(logn)&#xff0c;当有大量事件要定时触发时&#xff0c;比如会话session老化&#xff0c;效率并不高。因此DPVS采用了O(1)复杂度的时间轮。0. 概述 a. 添加定时器事件的核心是 static int __dpvs_timer_sched(struct…

为何 SPARK 在应用 GPU 后表现更出色

什么是 APACHE SPARK&#xff1f; 伴随数据的巨量增长&#xff0c;Apache Spark 已成为分布式横向扩展数据处理的热门框架之一&#xff0c;可以在本地和云端数以百万计的服务器上运行。 Apache Spark 是应用于大型数据处理的快速通用分析引擎&#xff0c;可在 YARN、Apache Mes…

程序员还在为变量取名苦恼,那是因为你不知道,这个变量命名神器

作为程序员&#xff0c;变量命名应该是我们编程的开端&#xff0c;也是我们每天都必须需要做的事情。变量命名规范的重要性&#xff0c;相信大家都知道非常重要&#xff0c;良好的代码风格&#xff0c;带来好处有&#xff1a; 1、具有良好的可读性&#xff1b; 2、维护代码时…

【独立篇】React UI组件库

文章目录1、React UI组件库1.1、material-ui&#xff08;国外&#xff09;1.2、ant-design&#xff08;国内蚂蚁金服-antd&#xff09;2、AntD的简单使用2.1、CODE2.2、Result1、React UI组件库 1.1、material-ui&#xff08;国外&#xff09; 官网: http://www.material-ui.…

硬件定义软件?还是,软件定义硬件?

文章目录**1 软件和硬件****1.1 软件和硬件的定义****1.2 “硬件定义软件”和“软件定义硬件”的定义****1.3 CPU&#xff0c;软件和硬件解耦****1.4 CPU的软硬件定义****2 硬件定义软件****2.1 系统从软件逐步到硬件****2.2 硬件架构决定了软件设计****2.2.1 ASIC的硬件定义**…

【车辆配送】基于模拟退火 (SA)求解车辆配送 (VPR) (Matlab代码实现)

目录 1 车辆配送问题 2 模拟退火法 3 实现结果 4 参考文献 5 Matlab代码实现 1 车辆配送问题 式(9)~( 12)中, 为配送车辆到达需求点i的时间;为需求点i到需求点j的运输成本;、分别为配送车辆提前到达需求点i的或者滞后到达需求点i的单位时间内的等待成本以及惩罚成本。该数…

基于vue项目的代码优化

前言 项目上线后其整体性能的优良是用户也是研发人员所关注的。项目优化非常重要&#xff0c;一丝一毫的提升都是对用户的负责。因此我们在开发中就应该注重细节&#xff0c;优化工作从日常开发做起。本篇文章就分享一些在日常开发中代码层面的优化手段。 开发常用优化手段 …

04-Docker-容器数据卷

目录 一、坑&#xff01;&#xff01;&#xff01;&#xff01; 二、什么是容器卷 三、容器卷的作用 四、容器卷案例 1、宿主vs容器之间映射添加容器卷 五、容器卷ro和rw规则 一、坑&#xff01;&#xff01;&#xff01;&#xff01; 容器卷记得加入 --privilegedtrue …

2022-11-30 Github Forking 工作流模式

Forking 工作流 fork 操作是在个人远程仓库新建一份目标远程仓库的副本&#xff0c;流程如下&#xff1a; 比如在 GitHub 上操作时&#xff0c;在项目的主页点击 fork 按钮&#xff08;页面右上角&#xff09;&#xff0c;即可拷贝该目标远程仓库。 假设开发者 A 拥有一个远程仓…

HTML网页设计制作大作业(游戏主题)---电竞

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游戏官网 | 游戏网站 | 电竞游戏 | 游戏介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 HTML&#xff1a;结构 …

《MongoDB》Mongo Shell中的基本操作-文档查询

前端博主&#xff0c;热衷各种前端向的骚操作&#xff0c;经常想到哪就写到哪&#xff0c;如果有感兴趣的技术和前端效果可以留言&#xff5e;博主看到后会去代替大家踩坑的&#xff5e; 主页: oliver尹的主页 格言: 跌倒了爬起来就好&#xff5e; 来个关注吧&#xff0c;点个赞…

在Word、WPS中插入AxMath公式导致行间距异常的解决办法

引言 我最近需要写一些文章&#xff0c;在排版时发现AxMath插入的公式竟然会导致行间距异常&#xff0c;如下图所示&#xff1a; 查遍互联网&#xff0c;最有效的办法竟然要取消文档网格对齐&#xff0c;这对于一些严格要求的场合是非常不利的&#xff0c;经过我的尝试&#…

xss-labs/level15

因为前一关打不开了 所以直接跳到15关来 查看源代码 他的输出点位于属性值处 所以要想通过<script></script>实现弹窗效果的话 那么就要逃离属性值 那么势必要闭合引号 根据以上的分析 我们做出如下构造 "><script>alert(xss)</script>// …

使用 Mason 创建自己的 Flutter brick

使用 Mason 创建自己的 Flutter brick 原文 https://medium.com/gytworkz/create-your-own-flutter-brick-using-mason-7abc70d0324e 前言 谁不喜欢用最少的努力完成大部分事情呢&#xff1f;我当然知道! &#xff01;Mason 帮我完成了几个简单的步骤。 在本文中&#xff0c;我…

观察者(订阅)模式

文章目录思考观察者模式1.观察者模式的本质2.何时选用观察者模式3.优缺点4.实现手写观察者模式JDK观察者模式思考观察者模式 观察者模式是典型的发布订阅模式&#xff0c;当一个东西有变化了&#xff0c;就通知所有订阅他的人 1.观察者模式的本质 观察者模式的本质:触发联动。 …

什么是等保

等保的全称是信息安全等级保护&#xff0c;是《网络安全法》规定的必须强制执行的&#xff0c;保障公民、社会、国家利益的重要工作。以下是一些有关等保的基本知识&#xff0c;希望通过这些知识能让大家更深刻地认识到等级保护的重要性。 等级保护定义 信息安全等级保护是指…