jquery 获取图片宽高为0的问题

本文介绍了一个使用jQuery实现的页面图片加载完成后的处理方法。通过监听img元素的load事件,可以在图片加载完毕后获取其宽度等属性。

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

原理:页面加载完了,图片不一定加载完了。

$(function(){
    $("img").on("load",function(){ //核心
        var w = $(this).width();
        alert(w);
    });
});

 

转载于:https://www.cnblogs.com/candy-Yao/p/8615760.html

### Datav 组件渲染后度和高度0 的解决方案 对于Datav组件在渲染过程中出现0 的情况,通常是因为父容器未能正确传递尺寸给子组件。一种常见且有效的解决办法是利用 `window.getComputedStyle` 方法来获取父级 div 实际的并将其应用到目标组件上[^3]。 下面是一个具体的实现方式: #### 使用 JavaScript 动态设置样式 可以创建一个函数,在页面加载完成以及窗口大小改变时调用此函数更新组件的高度度: ```javascript function updateComponentSize(componentId) { const component = document.getElementById(componentId); if (!component) return; // 获取父元素的实际尺寸 let parentStyle = window.getComputedStyle(component.parentElement, null); // 设置组件的具体 component.style.width = `${parentStyle.getPropertyValue('width')}`; component.style.height = `${parentStyle.getPropertyValue('height')}`; } // 页面加载完成后执行一次初始化调整 window.addEventListener('load', () => {updateComponentSize('your-component-id');}); // 当浏览器窗口大小发生变化时也重新计算组件尺寸 window.addEventListener('resize', () => {updateComponentSize('your-component-id');}); ``` 此外,如果是在 Vue.js 环境下工作,则可以在 mounted 生命周期钩子内处理这个问题,并确保数据已经成功从接口拉取完毕再进行 DOM 操作[^1]: ```vue <template> <div id="container"> <!-- 假设这里是你的datav组件 --> </div> </template> <script> export default { name: 'YourComponentName', mounted() { this.$nextTick(() => { // 数据准备就绪后再尝试更新组件大小 updateComponentSize(this.$el.id); }); }, methods:{ ..., } }; </script> ``` 通过上述方法能够有效防止由于父节点未定义固定尺寸而导致 datav 子组件无法正常显示的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值