解决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 使用手册(三)
Sep 23 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
jQuery元素的隐藏与显示实例
Jan 20 Javascript
jQuery实现放大镜效果实例代码
Mar 17 Javascript
bootstrap手风琴折叠示例代码分享
May 22 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
vue.js todolist实现代码
Oct 29 Javascript
React 项目迁移 Webpack Babel7的实现
Sep 12 Javascript
在微信小程序中使用图表的方法示例
Apr 25 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 Javascript
vue递归实现树形组件
Jul 15 Vue.js
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
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP文件操作实现代码分享
2011/09/01 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
php链式操作的实现方式分析
2019/08/12 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
js操作二进制数据方法
2018/03/03 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
Python常见字典内建函数用法示例
2018/05/14 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Python for i in range ()用法详解
2020/09/18 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
如何让Java程序执行效率更高
2014/06/25 面试题
护士自我鉴定范文
2013/10/06 职场文书
自主招生自荐信范文
2013/12/04 职场文书
函授本科自我鉴定
2014/02/04 职场文书
写给领导的感谢信
2015/01/22 职场文书
大学开学感言
2015/08/01 职场文书
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL