挺漂亮的文字太长自动截断,鼠标移上显示全部信息例子

来源:互联网 发布:淘宝订单险开通条件 编辑:程序博客网 时间:2024/05/16 06:08

       很多做系统类网站的朋友都会遇到,在表格中,文字过长无法显示完全的情况,下面是一个挺漂亮的例子,给朋友们分享。

先上个效果图(例子中的文字是我乱打的,希望不要介意哈):


下面是代码:

这个是title.js,是控制鼠标移上被截断后的文字的提示框样式,也可以根据自己的需要进行样式的修改。

var pltsPop=null;var pltsoffsetX = 12; // 弹出窗口位于鼠标左侧或者右侧的距离;3-12 合适var pltsoffsetY = 15; // 弹出窗口位于鼠标下方的距离;3-12 合适var pltsTitle="";document.write('<div id=pltsTipLayer style="display: none;position: absolute; z-index:10001"></div>');function pltsinits(){ document.onmouseover = plts; document.onmousemove = moveToMouseLoc;}function plts(){ var o=event.srcElement; if(o.alt!=null && o.alt!=""){o.dypop=o.alt;o.alt=""}; if(o.title!=null && o.title!=""){o.dypop=o.title;o.title=""}; pltsPop=o.dypop; if(pltsPop!=null&&pltsPop!=""&&typeof(pltsPop)!="undefined") { pltsTipLayer.style.left=-1000; pltsTipLayer.style.display=''; var Msg=pltsPop.replace(/\n/g,"<br>"); Msg=Msg.replace(/\0x13/g,"<br>"); var re=/\{(.[^\{]*)\}/ig; if(!re.test(Msg))pltsTitle=""; else{ re=/\{(.[^\{]*)\}(.*)/ig; pltsTitle=Msg.replace(re,"$1")+" "; re=/\{(.[^\{]*)\}/ig; Msg=Msg.replace(re,""); Msg=Msg.replace("<br>","");} var content = '<table style="FILTER:alpha(opacity=80);border:1px solid #cccccc" id="toolTipTalbe" cellspacing="1" cellpadding="0">' + '<tr><td width="100%">' + '<table bgcolor="#ffffff" cellspacing="0" cellpadding="0">'+ '<tr id="pltsPoptop"><td height="20" bgcolor="#559acc"><span style="color:#ffffff;"><p id="topleft" align="left">  ↖'+pltsTitle+'</p><p id="topright" align="right" style="display:none">'+pltsTitle+'↗  </p></span></td></tr>'+ '<tr><td "+attr+" style="padding-left:10px;padding-right:10px;padding-top: 8px;padding-bottom:6px;line-height:100%;font-size:12px;">'+Msg+'</td></tr>'+ '<tr id="pltsPopbot" style="display:none"><td height="20" bgcolor="#559acc"><span style="color:#ffffff;"><p id="botleft" align="left">  ↙'+pltsTitle+'</p><p id="botright" align="right" style="display:none">'+pltsTitle+'↘  </p></span></td></tr>'+ '</table></td></tr></table>'; pltsTipLayer.innerHTML=content; toolTipTalbe.style.width=Math.min(pltsTipLayer.clientWidth,document.body.clientWidth/2.2); moveToMouseLoc(); return true; } else { pltsTipLayer.innerHTML=''; pltsTipLayer.style.display='none'; return true; }}function moveToMouseLoc(){ if(pltsTipLayer.innerHTML=='')return true; var MouseX=event.x; var MouseY=event.y; var popHeight=pltsTipLayer.clientHeight; var popWidth=pltsTipLayer.clientWidth; if(MouseY+pltsoffsetY+popHeight>document.body.clientHeight) { popTopAdjust=-popHeight-pltsoffsetY*1.5; pltsPoptop.style.display="none"; pltsPopbot.style.display=""; } else { popTopAdjust=0; pltsPoptop.style.display=""; pltsPopbot.style.display="none"; } if(MouseX+pltsoffsetX+popWidth>document.body.clientWidth) { popLeftAdjust=-popWidth-pltsoffsetX*2; topleft.style.display="none"; botleft.style.display="none"; topright.style.display=""; botright.style.display=""; } else { popLeftAdjust=0; topleft.style.display=""; botleft.style.display=""; topright.style.display="none"; botright.style.display="none"; } pltsTipLayer.style.left=MouseX+pltsoffsetX+document.body.scrollLeft+popLeftAdjust; pltsTipLayer.style.top=MouseY+pltsoffsetY+document.body.scrollTop+popTopAdjust; return true;}pltsinits();
这个是控制表格中文字过长自动截断的。其中maxwidth是表格中要显示的字的个数。可以根据自己的需要进行修改。

 $("table tr td:not(:first)").each(function(){  var maxwidth=8;  if($(this).text().length>maxwidth){  $(this).attr("title",$(this).text()); $(this).text($(this).text().substring(0,maxwidth)); $(this).html($(this).html()+'......');  } }); 
效果中的table的样式可以自己写,希望能帮到需要的朋友。



原创粉丝点击