JS修改內容提示框字體樣式

1. 概述

1.1 問題描述

儲存格的「儲存格屬性>其他>內容提示」下不能自訂文字大小顏色等,那麼如何實現下圖所示的自訂效果呢?

1723519899551589.gif

1.2 實現思路

儲存格屬性中的內容提示用的是 HTML 中的 title 屬性,不支援自訂,可以透過 JavaScript+CSS 顯示一個自訂樣式的 div,實現內容提示效果。

2. 範例

2.1 設計表格

1)建立一個普通報表,如下圖設計表格:

1723519145184966.jpg

2)選中 A1 儲存格,在右側面板選擇「儲存格屬性>其他」,設定「內容提示」為:=$$$,如下圖所示:

QQ图片20240813110823.png

2.2 新增事件

點選菜單欄「範本>範本web屬性>分頁預覽設定」,為該範本單獨設定,新增一個「載入結束事件」,如下圖所示:

QQ图片20240813112237.png

JavaScript 程式碼如下:

var oldTitle = null;
$('td').bind('mouseover mouseout mousemove'function(event{
var left = event.pageX;
var top = event.pageY;
var ele = event.target;
var title = ele.title;
var type = event.originalEvent.type;
if (type == 'mouseover') {
oldTitle = title;
ele.title = '';
console.log(title);
if (title.length != 0) {
var showEle = $('<div></div>', {
text: title,
class: 'showTitleBox'
}).css(
{
position: 'absolute',
top: top + 10,
left: left,
border: '1px solid #00cccc'// 邊框
borderRadius: '5px',    // 邊框圓角
background: "#00cccc",       // 背景色
fontFamily: 'SimHei',        // 字體
fontSize: '15px'             // 字體大小
})
showEle.appendTo('body');
}
else if (type == 'mouseout') {
ele.title = oldTitle;
$('.showTitleBox').remove();
else if (type == 'mousemove') {
$('.showTitleBox').css({
top: top + 10,
left: left
})
}
})
显示代码

注:實際使用時修改或增加對應的 CSS 屬性即可。

2.3 效果預覽

儲存報表,點選「分頁預覽」,效果如下圖所示:

1723519943310477.gif

注:不支援行動端。

3. 範本下載

4. 注意事項

舊自適應下的決策報表需在程式碼外套層延遲函式。如下圖所示:

注:新版決策報表暫不支援。

2024-08-13_11-37-28.jpg

JavaScript 程式碼如下:

setTimeout(function(){
var oldTitle = null;
$('td').bind('mouseover mouseout mousemove'function(event{
var left = event.pageX;
var top = event.pageY;
var ele = event.target;
var title = ele.title;
var type = event.originalEvent.type;
if (type == 'mouseover') {
oldTitle = title;
ele.title = '';
console.log(title);
if (title.length != 0) {
var showEle = $('<div></div>', {
text: title,
class: 'showTitleBox'
}).css(
{
position: 'absolute',
top: top + 10,
left: left,
border: '1px solid #00cccc'// 邊框
borderRadius: '5px',    // 邊框圓角
background: "#00cccc",       // 背景色
fontFamily: 'SimHei',        // 字體
fontSize: '15px'             // 字體大小
})
showEle.appendTo('body');
}
else if (type == 'mouseout') {
ele.title = oldTitle;
$('.showTitleBox').remove();
else if (type == 'mousemove') {
$('.showTitleBox').css({
top: top + 10,
left: left
})
}
})
  },500)
显示代码

附件列表


主題: 報表應用
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s后關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙

反饋已提交

網絡繁忙