解决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 DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
Oct 01 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
Node.js中使用计时器定时执行函数详解
Aug 15 Javascript
jQuery中:visible选择器用法实例
Dec 30 Javascript
JavaScript对数字的判断与处理实例分析
Feb 02 Javascript
js 获取本地文件及目录的方法(推荐)
Nov 10 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
Mar 08 Javascript
jQuery中的deferred使用方法
Mar 27 jQuery
浅谈vue-router 路由传参的方法
Dec 27 Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 Javascript
小程序实现多选框功能
Oct 30 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
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
python实现自动更换ip的方法
2015/05/05 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
python unichr函数知识点总结
2020/12/16 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
授权委托书样本
2014/04/03 职场文书
《海底世界》教学反思
2014/04/16 职场文书
国际贸易专业求职信
2014/06/04 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
护士年终考核评语
2014/12/31 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
学生安全责任协议书
2016/03/22 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python