浮动提示title更改字体大小

本文介绍了两种方法来改变浮动提示title的字体大小。方法1利用getComputedStyle和getPropertyValue获取并调整元素样式属性值,当字体小于等于18px时设定为18px。方法2则将字体大小信息存储在localStorage中,便于持久化设置。总结提到getPropertyValue配合getComputedStyle获取的是实际值,而与style结合则仅获取内联样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目前提:已修改了title的默认样式,主要js代码

function showTitle(el, title) {
  const popover = getPopover();
  const popoverStyle = popover.style;

  if (title === undefined || title==='') {
    popoverStyle.display = 'none';
  } else {
    const elRect = el.getBoundingClientRect();
    const elComputedStyle = window.getComputedStyle(el, null);
    const rightOffset = parseInt(elComputedStyle.getPropertyValue('padding-right')) || 0;
    const topOffset = parseInt(elComputedStyle.getPropertyValue('padding-top')) || 0;
    popoverStyle.visibility = 'hidden';
    popoverStyle.display = 'block';
    popover.querySelector('.popover-content').innerHTML = title;
    popoverStyle.left = elRect.left - popover.offsetWidth / 2 + (el.offsetWidth - rightOffset) / 2 + 'px';
    popoverStyle.top = elRect.top - popover.offsetHeight + topOffset -5 + 'px';
    popoverStyle.display = 'block';
    popoverStyle.visibility = 'visible';
  }
}

方法1:利用getComputedStyle和getPropertyValue获取元素的样式属性值

获取到当前元素的字体大小

const elComputedStyle = window.getComputedStyle(el, null);
const fontSize= parseInt(elComputedStyle.getPropertyValue('font-size')) || 0;

当 当前元素的字体大小小于等于18时,是小字体,将title的字体大小设置为18px

if (fontSize<=18){
      popoverStyle.fontSize = '18px';
    }else{
      popoverStyle.fontSize = '24px';
      popoverStyle.lineHeight = '26px';
    }

getComputedStyle和getPropertyValue获取到的始终是实际的值

方法2:将控制字体大小的字段存储到localStorage

获取到存储在localStorage里的值:

const fontSize = localStorage.getItem('isSmallFont');
if (fontSize=="true"){
      popoverStyle.fontSize = '18px';
    }else{
      popoverStyle.fontSize = '24px';
      popoverStyle.lineHeight = '26px';
    }

总计

1、在方法1中,若代码中getPropertyValue与getComputedStyle连用获取到的始终是实际的值,getPropertyValue和style配合使用时获取到的只是内联样式的值
2、在方法2中,isSmallFont的数值类型为String,而非Boolean

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值