用js实现文字提示层 ---总结
文字提示层在项目中应该是比较常见的,我工作中项目中就用到了,原理是一样,只不过形式不一样,今天通过看视频学习,学会了,总结下:
首先,页面效果如下:
需求:
当鼠标移入到红色字体是,提示框会显示在下方,当鼠标离开是,提示框将隐藏
知识点:
onmouseover 与 onmouseout,offsetLeft 与 offsetTop、innerHTML
接下来看代码:
页面布局:
<body>
<div id="text">
<strong>JavaScript</strong>一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为<strong>JavaScript</strong>引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在<strong>HTML</strong>(标准通用标记语言下的一个应用)网页上使用,用来给<strong>HTML</strong>网页增加动态功能。
</div>
<div id="tips"></div>
</body>
css代码样式如下:
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; }
接下来是脚本部分,获取页面元素
var strongs = document.querySelectorAll("strong");
var tips = document.getElementById("tips");
var arr = [
'JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。',
'JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。',
'超文本标记语言,标准通用标记语言下的一个应用。',
'超文本标记语言,标准通用标记语言下的一个应用。'
];
因为我们要操作的是所有的 strong 元素,所以这里需要用到 for 循环
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';
}
}
注意:
难点①:
strongs[i].index = i;
这里在前面学习时,有点迷糊,现在是理解了,内容放在 arr 数组当中,我们要取到对应的某一条数据时,因为strong标签跟 arr 数组中的数据是一一对应的关系,我们要通过strong 取到 arr 对应的某一条数据,用索引值的方法即可。
tips.innerHTML = arr[this.index];
难点②:
tips.style.left = this.offsetLeft + 'px';
tips.style.top = this.offsetTop + 30 + 'px';
其实这里也很好理解,因为 strong 的父级没有定位,tips 也没有父级,offsetLeft 与 offsetTop 如果没有定位的父级,那默认是到html的距离
补充:要用到这个offset的属性的话,父级要给个定位
tips.style.left = this.offsetLeft + 'px';
tips.style.top = this.offsetTop + 30 + 'px';
作者:白开水
出处:http://www.cnblogs.com/hongxp/
本文以学习、总结和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途!
用js实现文字提示层 ---总结的更多相关文章
- 修改js confirm alert 提示框文字的简单实例
修改js confirm alert 提示框文字的简单实例: <!DOCTYPE html> <html> <head lang="en"> & ...
- js实现文字上下滚动效果
大家都知道,做html页面时,为了提升网页的用户体验,我们需要在网页中加入一些特效,比如单行区域文字上下滚动就是经常用到的特效.如下图示效果: <html> <head> &l ...
- jquery定时滑出可最小化的底部提示层
效果预览:http://keleyi.com/keleyi/phtml/jqtexiao/index.htm当打开页面或者刷新页面后等待两秒钟,会在底部滑出可最小化的提示层.滑出层半透明,可关闭再现. ...
- 实现password框中显示文字提示的方式
其实实际上实现中并不能让password中显示文字提示,但是我们在工作中有这样的需求,当没输入东西的时候,框内有提示输入密码,但是当输入东西的时候又显示的是*号,那么是如何实现的呢?其实原理很简单,就 ...
- 基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
基于jQuery的input输入框下拉提示层,方便用户输入邮箱时的提示信息,需要的朋友可以参考下 效果图 // JavaScript Document (function($){ $.fn ...
- jQuery实现的简单文字提示效果模拟title(转)
来源 http://www.cnblogs.com/puzi0315/archive/2012/10/17/2727693.html 模拟title实现效果,可以修改文字的样式,换行等. 文件下载: ...
- jQuery图片提示和文字提示
图片提示: 效果如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- DOM操作在jQuery中的实用------文字提示和图片提示
关于文字提示想必是家喻户晓,操作呢说简单一点就是在超链接中加入title属性.但是在人机交互越来越倍受恩宠的年代,依靠浏览器自带的文字提示即title属性,提示效果的响应速度就(还是人艰不拆了吧~)s ...
- 在VS中让一个JS文件智能提示另一个JS文件中的成员
“在VS中如何让一个JS文件智能提示另一个JS文件中的成员” 有时候会有这种情况:当我的一个Web页面引用了两个JS文件(假如分别叫common.js和JScript1.js),如果JScript1. ...
随机推荐
- iOS开发——UIAlertController
iOS8之后,UIAlertView和UIActionSheet被干掉了,取而代之的是UIAlertController和UIAlertAction. UIAlertController有两种样式,一 ...
- leetcode-006 detect cycle
package leetcode; public class DetectCycle { public ListNode detectCycle(ListNode head) { ListNode s ...
- Jquery插件之ajaxForm ajaxSubmit的理解用法
如今ajax满天飞,作为重点的form自然也受到照顾. 其实,我们在平常使用Jquery异步提交表单,一般是在submit()中,使用$.ajax进行.比如: $(function(){ $( ...
- 数字(数学)操作类 Math Random 类 ,大数字操作类
Math 提供了大量的数学操作方法 Math类中所有的方法都是static 方法
- bzoj3052
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3052 题目大意:自己看看,懒得写 题解:带修改的树上莫队,经典爆评测机的题 代码: #inc ...
- Subpub 订阅/发布
var Pubsub = (function (window) { window.handlers = {}; var o = { pub: function () { var args = Arra ...
- PHP 递归实现层级树状展现数据
<?php $db = mysql_connect('localhost', 'root', 'root') or die('Can\'t connect to database'); mysq ...
- IndexAction.java (Java之负基础实战)
生成Get and Set 方法: 例如:public String view; 右击view > Source > Generate Getters and Setters...
- HDU-5086-Revenge of Segment Tree
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5086 这题太不应该了,比赛时没做出来,本来呢,以现在的水平这题是能够做出来的,可就是题目理解错了,按题 ...
- Bootstrap入门(十五)组件9:面板组件
Bootstrap入门(十五)组件9:面板组件 虽然不总是必须,但是某些时候你可能需要将某些 DOM 内容放到一个盒子里.对于这种情况,可以试试面板组件. 1.基本实例 2.带标题的面板 3.情景效果 ...