从此不再为Web页面中的Tooltip烦恼

简介:
让Web页面中,不能折行或不希望被折行的文字始终显示在一行,是一种严格的UI风格,毕竟自由的折行会使得表格和整体界面变得很难把握。当然在一行显示不完全时配以省略号在结尾,能很好的提示用户表示语句未结束,不过这时为了让用户能看到所有文字,Tooltip就是必不可少的了。

    显示Tooltip在Web上还不是轻而易举的事情,只要把html元素的title属性设上非空字符串,就自然是Tooltip了。不过这样其实还是挺麻烦的,由于预先写入title,会带来几个副作用:1、带来不必要的内容开销,因为预置title属性,会带来文档的增大;2、总是会显示Tooltip,即使在一行能显示完全的情况下,也显示Tooltip,这样就会让用户迷惑了,还以为再补充说明什么东西呢;3、遇到Tooltip需要显示的文字里有特殊字符,比如:单引号'双引号"时,还需要在服务器端对Tooltip内容编码。

    使用客服端脚本来处理Tooltip,就可以避免上面提到的所有不足和问题。示例如下:
this is a long long long long long long long long long string. this is a long long long long long long long long long string.
this is a long long long long long long long long long string. this is a long long long long long long long long long string. this is a long long long long long long long long long string.
this is a long long long long long long long long long string. this is a long long long long long long long long long string. this is a long long long long long long long long long string.
this is a long long long long long long long long long string. this is a long long long long long long long long long string. this is a long long long long long long long long long string. this is a long long long long long long long long long string.

    // 蓝色的文字是自己本身就带有Tooltip的,你可以调整页面的大小看看Tooltip的适应性。

    原理是在body元素上统一控制,把下面的代码手工加入页面底部,或者在ASP.NET中使用Page.RegisterStartupScript方法注册到页面上。
< script  language ="javascript" >
var  format  =  ' { 0 } \r\n { 1 } ';
    
document.body.onmouseover 
=   function ()
{
    
var  srcElmt  =  event.srcElement;
    
if  ( srcElmt  &&  srcElmt.tagName )
    
{
        
if  ( srcElmt.clientWidth  <  srcElmt.scrollWidth )
        
{
            
if  (  ! srcElmt.__title )
            
{
                
if  ( srcElmt.title  ==  srcElmt.innerText )
                
{
                    
return ;
                }

                
if  ( srcElmt.title )
                
{
                    srcElmt.__title 
=  srcElmt.title;
                }

            }

            
else
            
{
                
return ;
            }

            
if  ( srcElmt.__title )
            
{
                srcElmt.title 
=  StringHelper.Format(format, srcElmt.__title, srcElmt.innerText);
            }

            
else
            
{
                srcElmt.title 
=  srcElmt.innerText;
            }

        }

    }

}
;

document.body.onmouseout 
=   function ()
{
    
var  srcElmt  =  event.srcElement;
    
if  ( srcElmt  &&  srcElmt.tagName )
    
{
        
if  ( srcElmt.clientWidth  >=  srcElmt.scrollWidth )
        
{
            
if  ( srcElmt.__title )
            
{
                srcElmt.title 
=  srcElmt.__title;
                srcElmt.__title 
=   null ;
            }

            
else
            
{
                
if  ( srcElmt.title  ==  srcElmt.innerText )
                
{
                    srcElmt.title 
=  '';
                }

            }

        }

    }

}
;
</ script >

    参数format用来控制当Tooltip重合的时候怎么显示,因为有的文字本身就有Tooltip,当它出现省略号的时候,就需要设计它怎么和自动的Tooltip一起显示。这样一来页面上只要使用css限制了单行的现实的文字,在出现省略号时就都自动的拥有了Tooltip,并且最重要的是,这时的Tooltip不会受任何特殊字符的影响哦


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
编解码 前端开发 JavaScript
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
56 2
|
2月前
|
存储
在 Web 中判断页面是不是刷新
【9月更文挑战第10天】在Web开发中,判断页面是否刷新有多种方法:1) 监听`popstate`事件,检测用户是否通过历史记录访问页面;2) 记录并比较页面加载时间戳,若相差极小,则可能为刷新;3) 利用本地存储设置特定值,若该值不存在或不符合预期,则页面可能被刷新。然而,这些方法并非绝对准确。
174 3
|
3月前
|
开发框架 前端开发 Java
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
【8月更文挑战第12天】SpringBootWeb极速入门-实现一个简单的web页面01
72 3
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
|
6月前
|
Android开发
Android WindowFeature小探究,Android客户端Web页面通用性能优化实践
Android WindowFeature小探究,Android客户端Web页面通用性能优化实践
html,web页面朗读文字,朗读中文,朗读英文
html,web页面朗读文字,朗读中文,朗读英文
|
3月前
|
数据处理 开发者 UED
FastAPI 的模板引擎简直太神奇啦!这就是构建动态 Web 页面的终极秘籍,快来一探究竟!
【8月更文挑战第31天】FastAPI 是一款高性能异步 Web 框架,可通过集成模板引擎(如 Jinja2 或 Mako)实现动态页面渲染。使用模板引擎可分离页面结构与数据,简化代码并提升可维护性。此外,它还提供丰富的语法支持,如循环和条件判断,从而增强页面展示效果及开发效率。通过简单的配置步骤,即可在 FastAPI 中启用模板引擎,显著改善用户体验。
329 1
|
3月前
|
XML JavaScript 测试技术
Web自动化测试框架(基础篇)--HTML页面元素和DOM对象
本文为Web自动化测试入门指南,介绍了HTML页面元素和DOM对象的基础知识,以及如何使用Python中的Selenium WebDriver进行元素定位、操作和等待机制,旨在帮助初学者理解Web自动化测试中的关键概念和操作技巧。
54 1
|
2月前
|
数据处理 Python
Django视图:构建动态Web页面的核心技术
Django视图:构建动态Web页面的核心技术
|
3月前
【Azure 应用服务】Web.config中设置域名访问限制,IP地址限制访问特定的页面资源 (Rewrite)
【Azure 应用服务】Web.config中设置域名访问限制,IP地址限制访问特定的页面资源 (Rewrite)
|
5月前
|
存储 前端开发 搜索推荐
Web前端网站(一) - 登录页面及账号密码验证
页面背景动态是烟花和文字特效与缓缓下落的雪花相结合,在登录表单的旁边还有五个白色光圈以不规则的方式环绕,当鼠标靠近时,会发出彩色的光芒~~~
95 1
Web前端网站(一) - 登录页面及账号密码验证
下一篇
无影云桌面