日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

dom加载完再执行 vue_vue中等页面dom加载完毕后执行某方法?

發布時間:2025/3/20 vue 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dom加载完再执行 vue_vue中等页面dom加载完毕后执行某方法? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在玩一個類似拼圖的東東,業務場景就是在主圖加載到頁面的時候,計算主圖相對頁面容器的縮小放大系數,通過這個系數計算子圖的左邊及寬度

問題:在mounted中調用計算主圖的原始寬高時,提示元素為空(通過document.getElementsByClassName('main-img')[this.curIndex]獲取頁面元素),因此導致所有的計算都返回0

在mounted中,使用一個定時器就是好的,使用nextTick也是無效

mounted() {

this.screenX = document.body.offsetWidth;

this.getData();

// 有效

setTimeout(() => {

this.init()

}, 1000)

// 無效

this.$nextTick(() => {

this.init()

})

window.onresize = () => {

return (() => {

this.screenX = document.body.offsetWidth;

console.log('this.screenX', this.screenX);

this.init()

})()

}

},

不知道有沒有更優雅的方法,能解決這個問題

// import Swiper from '@/components/common/swiper/swiper.vue'

// import { Swiper } from 'vux'

import myswiper from '@/components/common/myswiper/swiper.vue'

import imgData from '@/datas/detailImg.json'

import part1 from '@/datas/part_1.json'

import part2 from '@/datas/part_2.json'

import part3 from '@/datas/part_3.json'

import part4 from '@/datas/part_4.json'

export default {

name: "detail",

components: {

// Swiper,

myswiper

},

data() {

return {

flag: false, //控制部件選擇是否出現

containerImg: '', //當前滑到的圖片容器

// mainImgLeft: 0,

// mainImgTop: 0,

imgList: [], //圖片list

curIndex: 0, //當前選中的那個一個list的索引

screenX: '', //瀏覽器屏幕的可視區域寬度,計算沒張圖片的tranform

partList: [], //部件的list

flagMask: false, //點擊圖片,查看大圖效果的標識

warpTop: 0 //計算大圖的top值

};

},

mounted() {

this.screenX = document.body.offsetWidth;

this.getData();

// 有效

// setTimeout(() => {

this.init()

// }, 500)

// // 無效

// this.$nextTick(() => {

// this.init()

// })

window.onresize = () => {

return (() => {

this.screenX = document.body.offsetWidth;

console.log('this.screenX', this.screenX);

this.init()

})()

}

},

methods: {

// 獲取圖形數據

getData() {

this.imgList = imgData;

},

// 獲取局部列表

getPartData(id) {

this.flag = true;

switch (id) {

case "0":

this.partList = part1;

break;

case "1":

this.partList = part2;

break;

case "2":

this.partList = part3;

break;

case "3":

this.partList = part4;

break;

}

},

init() {

// 進來時通過索引找到當前的輪播項,判斷是否已經加載過,如果已經加載過,則不加載,如果沒有加載過,則設置為加載過,加載

const curItem = this.imgList[this.curIndex];

// if (curItem.loaded) {

// return

// } else {

// curItem.loaded = true;

this.containerImg = document.getElementsByClassName('main-img')[this.curIndex];

// 獲取大圖元素的真實寬高

this.bodyImg = this.getRealWH(this.containerImg);

// 計算width的縮放比例 375

this.xRatio = this.bodyImg.x / this.containerImg.offsetWidth;

// this.xRatio = this.bodyImg.x / 375;

// 計算height的縮放比例 211

this.yRatio = this.bodyImg.y / this.containerImg.offsetHeight;

// this.yRatio = this.bodyImg.y / 211;

// this.resetStyle('part_A', 'part_A');

// this.resetStyle('part_B', 'part_B');

var tempArr = curItem.mainPart || [];

for (var i = 0; i < tempArr.length; i++) {

this.resetStyle('main_' + tempArr[i].pid, 'main_' + tempArr[i].pid);

}

// }

},

/**

* 獲取img的真實寬高

* @Author shunzizhan

* @Email shunzizhan@163.com

* @DateTime 2017-10-24T10:42:03+0800

* @param {[type]} myimage [description]

* @return {[type]} [description]

*/

getRealWH(myimage) {

var rw, rh;

if (typeof myimage.naturalWidth == "undefined") {   // IE 6/7/8

var i = new Image();

i.src = myimage.src;

rw = i.width;

rh = i.height;

} else {   // HTML5 browsers

rw = myimage.naturalWidth;

rh = myimage.naturalHeight;

}

return { x: rw, y: rh }

},

/**

* 重新設置元素的樣式

* @Author shunzizhan

* @Email shunzizhan@163.com

* @DateTime 2017-10-24T10:39:46+0800

* @param {[type]} ele [當前點擊的元素]

* @param {[type]} eleTag [目標元素]

* @param {[type]} xRatio [寬度縮放比例]

* @param {[type]} yRatio [高度縮放比例]

* @return {[type]} [description]

*/

resetStyle(ele, eleTag) {

if (event) {

event.stopPropagation(); //阻止冒泡

}

var xRatio = this.xRatio;

var yRatio = this.yRatio;

var _dom = document.getElementById(ele);

var partAImg = this.getRealWH(_dom);

// 沒個部位,坐標,尺寸均一致

var x = _dom.getAttribute('data-x');

var y = _dom.getAttribute('data-y');

// var tempX = this.mainImgLeft / xRatio;

var tempX = x / xRatio;

var tempW = partAImg.x / xRatio;

// var tempY = this.mainImgTop / yRatio;

var tempY = y / yRatio;

var tempH = partAImg.y / yRatio;

var _tagDom = document.getElementById(eleTag);

_tagDom.src = _dom.src;

_tagDom.style.left = tempX + 'px';

_tagDom.style.top = tempY + 'px';

_tagDom.style.width = tempW + 'px';

_tagDom.style.height = tempH + 'px';

},

// 子組件翻頁時,更改索引,父級同步響應

changeImg(index) {

// console.log('計算屬性-父組件', index)

this.curIndex = index;

this.init();

this.flag = false;

},

// 點擊大圖,查看放大圖

resetTop() {

this.flagMask = !this.flagMask;

if (this.flagMask) {

this.warpTop = (document.documentElement.clientHeight - document.getElementsByClassName('swiper-warp')[0].offsetHeight) / 2;

} else {

this.warpTop = 0;

}

}

}

}

總結

以上是生活随笔為你收集整理的dom加载完再执行 vue_vue中等页面dom加载完毕后执行某方法?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久精品免费 | 香蕉网久久 | 五月天啪啪 | 97成人在线视频 | www.夜夜 | 婷色 | 95看片淫黄大片一级 | 有码中文| 精品人妻一区二区三区日产乱码 | 欧美性生活网址 | 三级男人添奶爽爽爽视频 | www.久久成人 | 91精品视频免费在线观看 | 师生出轨h灌满了1v1 | 91喷水视频| 在线播放国产视频 | 久久久久久亚洲av毛片大全 | 亚洲一区av | 美女高潮视频在线观看 | 欧美亚色 | 91久久精品视频 | 在线视频免费观看 | 中文字幕在线播放日韩 | 影音先锋婷婷 | 成人欧美性 | 日xxxx| 日韩高清一级 | 国产伦子伦对白视频 | 成人在线视频一区 | 日韩人妻精品无码一区二区三区 | 韩日视频在线观看 | 女人脱下裤子让男人捅 | www.亚洲一区二区三区 | 一级大片在线观看 | jizjiz中国少妇高潮水多 | 日日噜噜噜噜久久久精品毛片 | 欧美视频在线观看视频 | 农村妇女愉情三级 | 国产日韩欧美精品在线观看 | 三级网站 | 久久综合五月 | 教练含着她的乳奶揉搓揉捏动态图 | 中文字幕av网址 | 久久久久久国产精品 | 午夜精品久久久久久久久久久久久蜜桃 | 男女一区 | 麻豆91视频 | 黑人操日本 | 5566色 | 青青草一区 | 欧美美女视频 | 男生插女生的网站 | 性欧美videos另类艳妇3d | 久久人 | 9l蝌蚪porny中文自拍 | 亚洲乱熟女一区二区 | 欧美呦呦 | 亚洲午夜在线 | 日韩在线精品强乱中文字幕 | 一区二区三区偷拍 | 蓝牛av | 日韩在线观看视频一区二区 | www.四色| 五月婷久久 | 久久精品亚洲精品国产欧美 | 亚洲网站免费 | 国产无套丰满白嫩对白 | www.玖玖玖| 一区二区看片 | 加勒比色综合 | 色图综合 | 66亚洲一卡2卡新区成片发布 | 精品久久久久久久久中文字幕 | 亚洲欧美高清 | 在线亚洲色图 | 伊人啪啪 | 亚洲国产网址 | 特级做a爰片毛片免费69 | 极品少妇一区二区 | 91免费视频观看 | 国产成人亚洲综合a∨婷婷 台湾a级片 | 国产高清在线 | 欧美精品一级二级 | 日日免费视频 | 99久久精品久久久久久清纯 | av片国产 | 麻豆视频免费看 | 毛片黄色一级 | 成年人黄色在线观看 | 你懂的在线观看网站 | 欧美日韩高清一区二区 国产亚洲免费看 | 午夜视频大全 | 特黄特色大片免费 | 亚洲aaa级 | 国产自在线拍 | 一区二区三区在线 | 日韩欧美激情在线 | 色婷婷久久一区二区三区麻豆 | 久久久精品一区二区三区 |