You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据屏幕尺寸设置HTML属性?调整mat-progress-spinner直径

解决方案

1. 修复jQuery调用错误

你用$('#matspin').setAttribute('diameter','60')无效,核心原因是$('#matspin')返回的是jQuery对象,而setAttribute是原生DOM元素的方法。可以通过两种方式修正:

  • 转成原生元素调用:
$('#matspin')[0].setAttribute('diameter', '60');
  • 用jQuery自带的attr()方法:
$('#matspin').attr('diameter', '60');

2. 正确实现屏幕尺寸判断逻辑

直接在HTML属性里写(screen.width < 1024)? 60 : 100通常不生效,因为普通HTML不支持直接执行JS表达式。需要在JS里完成判断后再设置属性,同时要考虑窗口大小变化时的更新:

// 页面加载时初始化
$(document).ready(function() {
  updateSpinnerSize();
});

// 窗口 resize 时同步更新
$(window).resize(function() {
  updateSpinnerSize();
});

function updateSpinnerSize() {
  // 用window.innerWidth更准确,它获取的是浏览器视口宽度(排除工具栏)
  const diameter = window.innerWidth < 1024 ? 60 : 100;
  $('#matspin').attr('diameter', diameter);
}

3. 框架场景额外提示

如果是Angular Material的mat-spinner,更推荐用组件属性绑定的方式:在组件类里定义spinnerDiameter变量,模板里写[diameter]="spinnerDiameter",然后在ngOnInit和窗口resize事件里更新这个变量,这样更符合框架规范。

内容的提问来源于stack exchange,提问作者Prem Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:10:28