解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题


Posted in Javascript onJuly 27, 2020

项目需求:图片加载时,当鼠标滚动至当前图片进行加载并加上上滑特效,实现这个效果需要对文档文档滚动位置和图片的当前位置进行比较。但是mounted 钩子函数执行时img图片并未加载出来也就是占位为空,导致图片位置计算出问题。

解决这个问题,目前想到几种种方法

一、对mounted 钩子函数 中init方法加上延时

mounted: function() {
 this.$nextTick(() => {
 // 加上延时避免 mounted 方法比页面加载早执行 或者 对img进行块级化设置宽高进行 提前站位
 setTimeout(() => {
 this.init()
 }, 100)
 })
 },
 
 init () {
 var h = $(window).height()
 var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
 var moves = $('.tp').filter(() => {
 return !$(this).hasClass('move');
 });
 moves.each((index, item) => {
 var itemTop, isShow;
 itemTop = $(item).offset().top;
 isShow = (itemTop - scrollTop) < h ? true : false;
 console.log(`${index}: ${itemTop} ${scrollTop} ${h}`)
 if(isShow) {
  $(item).addClass('move');
 }
 })
 },

二、img标签进行块级化并设置宽高进行占位

三、不使用img标签,使用div,并设置background-image

补充知识:vue 解决mounted不重加载子组件问题

有时需要在父组件中重复加载同一个子组件,但会出现子组件不重新加载的问题。

解决方法:在子组件外加一个div框住它:

解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题

这样,父组件的数据就可以在每次加载子组件的时候传入到子组件中

以上这篇解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery扩展插件Validate—4设置错误提示的样式
Sep 05 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
Apr 21 Javascript
jquery css 设置table的奇偶行背景色示例
Jun 03 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
Dec 14 Javascript
JS操作input标签属性checkbox全选的实现代码
Mar 02 Javascript
浅谈Angular路由守卫
Aug 26 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
基于javascript中的typeof和类型判断(详解)
Oct 27 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
Jul 06 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
Jul 10 Javascript
javascript实现画板功能
Apr 12 Javascript
Element Breadcrumb 面包屑的使用方法
Jul 26 #Javascript
Element PageHeader页头的使用方法
Jul 26 #Javascript
Element Dropdown下拉菜单的使用方法
Jul 26 #Javascript
Vue中的this.$options.data()和this.$data用法说明
Jul 26 #Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 #Javascript
Element Steps步骤条的使用方法
Jul 26 #Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
Jul 26 #Javascript
You might like
Zend Guard一些常见问题解答
2008/09/11 PHP
php discuz 主题表和回帖表的设计
2009/03/13 PHP
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
印尼网上商店:Alfacart.com
2019/03/11 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
有个性的自我评价范文
2013/11/15 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
结婚喜宴主持词
2014/03/14 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
个人四风问题整改措施
2014/10/24 职场文书
个人年度总结报告
2015/03/09 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
详解Flask开发技巧之异常处理
2021/06/15 Python
Golang获取List列表元素的四种方式
2022/04/20 Golang