解决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 相关文章推荐
JavaScript入门教程(3) js面向对象
Jan 31 Javascript
JavaScript CSS修改学习第一章 查找位置
Feb 19 Javascript
jQuery中is()方法用法实例
Jan 06 Javascript
javascript表单验证大全
Aug 12 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
Dec 07 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
Apr 11 jQuery
vue-cli构建项目使用 less的方法
Oct 04 Javascript
纯js代码生成可搜索选择下拉列表的实例
Jan 11 Javascript
原生javascript实现连连看游戏
Jan 03 Javascript
Node.js使用supervisor进行开发中调试的方法
Mar 26 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 Javascript
Vue 打包后相对路径的引用问题
Jun 05 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
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
python Pandas库基础分析之时间序列的处理详解
2019/07/13 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
电气工程师岗位职责
2014/01/01 职场文书
办公室文员工作职责
2014/01/31 职场文书
《四季》教学反思
2014/04/08 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android