自定義title屬性樣式
一、總結
一句話總結:
在開發中表格中文字太長,我們會以省略號的形式展示,鼠標移動在文字上就顯示全部,如果不用一般的UI框架,我們則會選擇title屬性來實現這個效果
1、在 HTML5 中, title 屬性可用於任何的 HTML 元素(title 屬性規定關於元素的額外信息)?
在 HTML5 中, title 屬性可用於任何的 HTML 元素 (它會驗證任何HTML元素。但不一定是有用)。
二、自定義title屬性樣式
轉自或參考:自定義title屬性樣式
https://www.cnblogs.com/xiaolanschool/p/11425576.html
在開發中表格中文字太長,我們會以省略號的形式展示,鼠標移動在文字上就顯示全部,如果不用一般的UI框架,我們則會選擇title屬性來實現這個效果,如
然而這種樣式有點...嘻嘻嘻
有些人就問了,可不可以修改默認的title屬性樣式呢?答案是: 不能。 如果需要寫樣式需要自定義寫,而僅僅是內容的換行使用 , title='哈哈 哈哈哈' 下面我們就一起來實現吧,先看一個效果
這個就是,鼠標移動上去就顯示當前的文字系列,主要是通過content: attr(data-title);
html結構
<div class="table-tooltip">
<table border="1">
<thead>
<tr>
<th>姓名</th>
<th>年齡</th>
</tr>
</thead>
<tbody>
<tr>
<td>張三</td>
<td>24</td>
</tr>
</tbody>
</table>
</div>
<div class="tooltip-wp"></div>
css結構
table{
border-collapse: collapse;
}
tooltip-wp{
width: 200px;
position: fixed;
z-index: 100;
display: none;
}
.tooltip-wp:after{
content: attr(data-title);
position: absolute;
left: 0;
top: 0;
max-width: 500px;
background: blue;
padding: 2px 5px;
color: #fff;
border-radius: 5px;
word-break: break-all;
}
js部分
$(document).ready(function(){
//鼠標滑過表格單元格顯示浮動框
var showFloatTimer=null;
$('.table-tooltip tbody tr td').hover(
function(event){
clearTimeout(showFloatTimer);
showFloatTimer=setTimeout(function(e){
$('.tooltip-wp').attr('data-title', event.currentTarget.innerHTML); //動態設置data-title屬性
$('.tooltip-wp').fadeIn(200);//浮動框淡出
},300);
}
);
$('.table-tooltip tbody tr td').mouseout(function(){
$('.tooltip-wp').hide();
clearTimeout(showFloatTimer);//鼠標滑出時清除函數去抖中的定時事件
});
$('.table-tooltip tbody tr td').mousemove(floatMove());
//floatMove()運行后返回一個函數對象,或什么都不返回
function floatMove(){//節流函數
var canRun=true;
return function(e){//e是mousemove的event參數
if(!canRun){return;}//如果有一個定時方法,直接返回
canRun=false;
setTimeout(function(){
var top = e.pageY+5;
var left = e.pageX+5;
$('.tooltip-wp').css({
'top' : top + 'px',
'left': left+ 'px'
});
canRun=true;
},150);
}
}
});
