当前位置: 首页 > Web前端 > vue.js

vue全屏组件

时间:2023-04-01 11:34:13 vue.js

#sp-full-screen-container{位置:固定;顶部:0px;左:0px;溢出:可见;-webkit-transform-origin:左上;变换原点:左上;z-指数:999;显示:弹性;证明内容:居中;对齐项目:中心;全屏组件FullScreenContainer目录结构index.vue

#sp-full-screen-container{位置:固定;顶部:0px;左:0px;溢出:可见;-webkit-transform-origin:左上;变换原点:左上;z-指数:999;显示:弹性;证明内容:居中;对齐项目:中心;autoResize.jsimport{debounce,observerDomResize}from"../util/index";exportdefault{data(){return{dom:"",width:0,height:0,debounceInitWHFun:"",domObserver:"",};},方法:{asyncautoResizeMixinInit(){const{initWH,getDebounceInitWHFun,bindDomResizeCallback,afterAutoResizeMixinInit,}=this;阿威tinitWH(假);getDebounceInitWHFun();bindDomResizeCallback();if(typeofafterAutoResizeMixinInit==="函数")afterAutoResizeMixinInit();},initWH(resize=true){const{$nextTick,$refs,ref,onResize}=this;returnnewPromise((resolve)=>{$nextTick(()=>{constdom=(this.dom=$refs[ref]);this.width=dom.clientWidth;this.height=dom.clientHeight;如果(typeofonResize==="function"&&resize)onResize();resolve();});});},getDebounceInitWHFun(){const{initWH}=this;this.debounceInitWHFun=debounce(100,initWH);},bindDomResizeCallback(){const{dom,debounceInitWHFun}=this;this.domObserver=observerDomResize(dom,debounceInitWHFun);window.addEventListener("resize",debounceInitWHFun);},unbindDomResizeCallback(){让{domObserver,去抖动初始化WHFun}=这个;domObserver.disconnect();domObserver.takeRecords();domObserver=null;//NOSONARwindow.removeEventListener("resize",debounceInitWHFun);},},mounted(){const{autoResizeMixinInit}=this;autoResizeMixinInit();},onBeforeUnMount(){const{unbindDomResizeCallback}=this;取消绑定DomResizeCallback();},};util/index.jsexport函数randomExtend(minNum,maxNum){if(arguments.length===1){returnparseInt(Math.random()*minNum+1,10);}else{returnparseInt(Math.random()*(maxNum-minNum+1)+minNum,10);}}exportfunctiondebounce(delay,callback){letlastTime;返回函数(){clearTimeout(lastTime);const[that,args]=[this,arguments];lastTime=setTimeout(()=>{callback.apply(that,args);},delay);};}导出函数observerDomResize(dom,callback){constMutationObserver=window.MutationObserver||窗口.WebKitMutationObserver||window.MozMutationObserver;constobserver=newMutationObserver(回调);observer.observe(dom,{attributes:true,attributeFilter:["style"],attributeOldValue:true,});返回观察者;}导出函数getPointDistance(pointOne,pointTwo){constminusX=Math.abs(pointOne[0]-pointTwo[0]);constminusY=Math.abs(pointOne[1]-pointTwo[1]);返回Math.sqrt(minusX*minusX+minusY*minusY);}

最新推荐
猜你喜欢