我在寫一個react應(yīng)用的時候,需要在渲染完成之后,添加一個視頻播放器到頁面上,用于播放視頻。對于播放器進(jìn)行設(shè)置的思路是:根據(jù)需要獲取包含播放器的div的元素的寬度,用以設(shè)置播放器的寬度。有一段這樣的代碼:componentDidMount(){ const box = document.getElementById('video-box'); //調(diào)用第三方的播放器對象,創(chuàng)建播放器 player = ThirdPartyObject('#video-box').videoPlayer({ 'width':box.clientWidth, 'height':box.clientWidth * 9 / 16, 'vid' : vid, 'df': '1' }); }不過,最終實(shí)現(xiàn)的效果是,此時獲得的寬度比頁面最終的div會寬十多個像素。經(jīng)過測試,我懷疑是js代碼加載過程中,dom元素的寬度發(fā)生了變化。我嘗試在頁面刷新后,再控制臺不停的console.log(document.body.clientWidth),這個寬度,最開始也是會比較大,最后會減小10多個像素。不知道是我思路有問題,代碼不對,還是本來就是一個常見問題,有什么好的方法讓這里對其一點(diǎn)。
react中如何獲取dom元素的正確寬度?
森林海
2018-10-11 14:19:39