js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例


Posted in Javascript onDecember 06, 2016

题目中问题一拆为二:

1.文字在超出长度时,如何实现用省略号代替?

2.超长长度的文字在省略显示后,如何在鼠标悬停时,以悬浮框的形式显示出全部信息?

文字在超出长度时,如何实现用省略号代替?

用CSS实现超长字段用省略号表示的方法:所有浏览器兼容!

html代码如下:

<div style="width:150px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis">
用CSS实现超长字段被省略的简单方法
</div>

注意:设置宽度,overflow:hidden, white-space:nowrap, text-overflow:ellipsis四个属性缺一不可。这种写法在所有的浏览器中都能正常显示。

超长长度的文字在省略显示后,如何在鼠标悬停时,以悬浮框的形式显示出全部信息?(此处只讨论以悬浮框显示的方式)

第一种方式:使用div中的title属性:

先来个简单的,一目了然的示例:

<div style='width:120px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;' title='鼠标悬浮显示的内容'>鼠标悬浮显示的内容</div> 
<!--这个内容因为是在div里面,是控制div的宽度来显示你需要看到几个字的长度,超出会显示 ...-->
<!--title:提示信息,鼠标放到该元素上显示的提示信息-->

显示效果,如下图:

js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例

第二种方式:在div中绑定鼠标经过事件

单独的div(包含id属性)通过悬浮框显示,下面代码在谷歌浏览器已测试通过:

<!DOCTYPE html>
<html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>
      RunJS 演示代码
    </title>
    <style>
      #content{
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
        width:200px;
      }
    </style>
    <script>
      onload = function(){
        content.onmouseover = function(){
          this.title = this.innerHTML;
        }
      }
    </script>
 </head>
  <body>
  <div id='content'>
      js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
 </div>
 </body>
</html>

多个div(包含class属性)通过悬浮框显示:

由于div标签之间的距离较近,在鼠标悬浮时,悬浮框会出现快速闪显的情况,可以通过调大div的之间的间距,来改善,或者直接改为p标签也可以.

<!DOCTYPE html>
<html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>
      演示代码
    </title>
    <style>
      .content{
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
        width:200px;
      }
    </style>
    <script>
     function overShow(obj,e) {
     var showDiv = document.getElementById('showDiv');
     var theEvent = window.event|| e;
     showDiv.style.left = theEvent.clientX+"px";
     showDiv.style.top = theEvent.clientY+"px";
     showDiv.style.display = 'block';
     //alert(obj.innerHTML);
     showDiv.innerHTML = obj.innerHTML;
     }

     function outHide() {
     var showDiv = document.getElementById('showDiv');
     showDiv.style.display = 'none';
     showDiv.innerHTML = '';
     }
    </script>
 </head>
  <body>
  <div class='content' onmouseover="overShow(this,event)" onmouseout="outHide()">
      js0 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js0 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js0 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js0 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
  </div>
    <div class='content' onmouseover="overShow(this,event)" onmouseout="outHide()">
      js1 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js1 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js1 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js1 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
  </div>
    <div class='content' onmouseover="overShow(this,event)" onmouseout="outHide()">
      js2 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js2 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js2 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js2 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
  </div>
    <div class='content' onmouseover="overShow(this,event)" onmouseout="outHide()">
      js3 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js3 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js3 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js3 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
  </div>
  <div id="showDiv" style="position: absolute; background-color: white; border: 1px solid black;"></div>
 </body>

</html>

显示效果,如下图:

js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例

补充:

js 文字超出长度用省略号代替,鼠标悬浮时,直接显示出全部信息(不以悬浮框的形式)

<!DOCTYPE html>
<html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>
      RunJS 演示代码
    </title>
    <!-- 如果是id属性,将.改为#即可 -->
    <style>
      .content{
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
        width:200px;
      }
      .content:hover {height: auto;white-space: normal;} 
    </style>
 </head>
  <body>
  <div class='content'>
      js1 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js1 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js1 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js1 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
  </div>
    <div class='content'>
      js2 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js2 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js2 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
      js2 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
  </div>
 </body>
</html>

存在的问题:

当鼠标悬停时,省略的内容在全部显示出来之后,会挤压下方的内容,当是多行显示时,容易造成页面错乱.如图:

js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE php关于强制下载文件的代码
Aug 23 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
Nov 05 Javascript
javascript类型系统 Window对象学习笔记
Jan 07 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
JS实现的简单表单验证功能示例
Oct 13 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
May 08 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
Aug 31 Javascript
小程序实现页面顶部选项卡效果
Nov 06 Javascript
移动端如何用下拉刷新的方式实现上拉加载
Dec 10 Javascript
vue实现图片预览组件封装与使用
Jul 13 Javascript
js删除指定位置超链接中含有百度与360的标题
Jan 06 Javascript
关于 jQuery Easyui异步加载tree的问题解析
Dec 06 #Javascript
JavaScript之Vue.js【入门基础】
Dec 06 #Javascript
浅析JavaScript中作用域和作用域链
Dec 06 #Javascript
利用JS轻松实现获取表单数据
Dec 06 #Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
Dec 06 #Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
Dec 06 #Javascript
jQuery EasyUI 获取tabs的实例解析
Dec 06 #Javascript
You might like
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
Symfony的安装和配置方法
2016/03/17 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
医院门卫岗位职责
2013/12/30 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
运动会广播稿80字
2014/01/23 职场文书
廉洁自律承诺书
2014/03/27 职场文书
合伙经营协议书
2014/04/18 职场文书
2014最新离职证明范本
2014/09/12 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
在Python中如何使用yield
2021/06/07 Python
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL