vueリアルタイムでページの幅を取得し、画面に適応
1093 ワード
data(){
return{
fullWidth:document.documentElement.clientWidth
}
},
created(){
window.addEventListener('resize', this.handleResize)
},
beforeDestroy: function () {
window.removeEventListener('resize', this.handleResize)
},
computed:{
...mapGetters([
'isCollapse',
]),
rightWidth(){
let leftWidth = this.isCollapse ? '64' : '200';
console.log(this.fullWidth)
return (this.fullWidth-leftWidth)+'px'
}
},
methods: {
handleResize (event) {
this.fullWidth = document.documentElement.clientWidth
},
}
私が実現したい機能は、左側のメニューによって、右側のメニューが適応し、最初はcalc(100%-200 px)を使っていましたが、左側のメニューが200 pxに設定されていたので、縮小ボタンをクリックして左側のメニューを閉じると、左側のメニューが200 pxではないことに気づき、リアルタイムで画面の幅を取得したいと思いました.次に、ボタンの開いた状態を縮小することで、このときの左側のメニューの幅、画面の幅-左側のメニューの幅、残りは私たちの右側の内容の幅を取得します.
実はこの1つのとても小さい机能、しかし私の使う地方はとても多くて、例えばechartの中で、mixinsを书くことができてもっと良くて、もし多くのページが使うならば...