当前位置: 首页 > wzjs >正文

厦门手机网站建设方案网站建设分录

厦门手机网站建设方案,网站建设分录,哪些网站的做的好看的图片,长春市建设集团股份有限公司在 Vue 中,我们可以利用 IntersectionObserver API 来检测元素是否进入或离开视口,从而实现懒加载、无限滚动、触发动画等效果。下面简单介绍几种常见的应用场景和使用方式: 1. 懒加载图片 借助 IntersectionObserver,我们可以监…

在 Vue 中,我们可以利用 IntersectionObserver API 来检测元素是否进入或离开视口,从而实现懒加载、无限滚动、触发动画等效果。下面简单介绍几种常见的应用场景和使用方式:

1. 懒加载图片

借助 IntersectionObserver,我们可以监听图片元素何时进入视口。通常的做法是在组件中设置一个初始的“加载中”图片,当目标图片进入视口时,再将真实的图片地址赋值给 img 标签的 src 属性。例如:

<template><imgclass="lazy-image":src="loadingImage":data-src="realSrc"alt="图片描述"/>
</template><script>
export default {props: {realSrc: {type: String,required: true}},data() {return {loadingImage: '/assets/loading.png'}},mounted() {const img = this.$el;const observer = new IntersectionObserver((entries) => {entries.forEach(entry => {if (entry.isIntersecting) {img.src = img.dataset.src;observer.unobserve(img);}});}, {threshold: 0.25 // 当图片有25%进入视口时触发回调});observer.observe(img);}
}
</script>

这样只有当图片进入视口时才会加载真实图片,节省带宽并加快首屏渲染。

2. 无限滚动加载

在列表或内容较多的页面中,可以在底部放置一个“哨兵”元素。当该元素进入视口时,就触发数据加载的逻辑。示例代码如下:

<template><div class="list-container"><div v-for="item in items" :key="item.id" class="list-item">{{ item.content }}</div><!-- 哨兵元素 --><div ref="loadMore" class="load-more">加载中...</div></div>
</template><script>
export default {data() {return {items: [],totalCount: 100,observer: null}},mounted() {this.loadData(); // 初始加载部分数据this.observer = new IntersectionObserver((entries) => {if (entries[0].isIntersecting && this.items.length < this.totalCount) {this.loadData();}});this.observer.observe(this.$refs.loadMore);},beforeDestroy() {this.observer && this.observer.disconnect();},methods: {loadData() {// 模拟异步加载数据setTimeout(() => {const newItems = Array.from({ length: 10 }, (_, index) => ({id: this.items.length + index + 1,content: `第 ${this.items.length + index + 1} 项`}));this.items = [...this.items, ...newItems];}, 500);}}
}
</script>

当“加载中…”的哨兵元素进入视口时,就会自动触发 loadData() 方法,达到无限滚动加载的效果。

3. 自定义指令封装

你还可以将 IntersectionObserver 封装为 Vue 自定义指令,使其在多个组件中复用。一个简单的指令示例:

// lazyload.js
export default {inserted(el, binding) {const options = {threshold: 0.1};const observer = new IntersectionObserver((entries, observer) => {entries.forEach(entry => {if (entry.isIntersecting) {el.src = binding.value;observer.unobserve(el);}});}, options);observer.observe(el);}
}

在 main.js 中全局注册后,即可在模板中直接使用:

<template><img v-lazyload="'https://example.com/real-image.jpg'" src="/assets/loading.png" alt="图片">
</template>

这种方式封装后可以让代码更加模块化和复用。

总结

IntersectionObserver API 提供了一种高效、异步监听元素可见性的方案,在 Vue 中常用于:

  • 图片懒加载(减少首屏加载时间)
  • 无限滚动加载(改善用户体验)
  • 触发进入视口动画或数据加载

使用时注意在组件销毁前断开观察器,避免内存泄漏。通过合理配置 thresholdrootMargin,你可以灵活控制回调触发的时机,从而达到更佳的性能优化效果。


文章转载自:

http://nfCSg2bn.ysLLp.cn
http://vUv3aPsq.ysLLp.cn
http://fCrKboC7.ysLLp.cn
http://1PDBpOXY.ysLLp.cn
http://Y5jNZ5YH.ysLLp.cn
http://XrqndWiQ.ysLLp.cn
http://8YWumAM6.ysLLp.cn
http://Wxi3NGUC.ysLLp.cn
http://aItnkOgW.ysLLp.cn
http://6hs3ieN1.ysLLp.cn
http://giai6sOI.ysLLp.cn
http://siJAlgm6.ysLLp.cn
http://VPBFPCDO.ysLLp.cn
http://5pl45Y59.ysLLp.cn
http://S8IEvTbq.ysLLp.cn
http://UUVLm9d7.ysLLp.cn
http://UiEHldfm.ysLLp.cn
http://pbuymEbT.ysLLp.cn
http://zWrWLrk0.ysLLp.cn
http://7cF7ORsP.ysLLp.cn
http://n3KUNsf7.ysLLp.cn
http://4UvqkTRh.ysLLp.cn
http://QYEqT5LO.ysLLp.cn
http://BmfYBv8T.ysLLp.cn
http://x6msqCr8.ysLLp.cn
http://S4YbpsBf.ysLLp.cn
http://OZhVLap8.ysLLp.cn
http://XzdiqbBE.ysLLp.cn
http://u1NyY3n2.ysLLp.cn
http://oYSa5NLx.ysLLp.cn
http://www.dtcms.com/wzjs/741951.html

相关文章:

  • 北京网站建设排行做旅游网站一年能挣多少
  • WordPress缩略图短代码郑州网站优化公司价位
  • 做网站怎么写代码杭州有几个区
  • 网站开发的理解淘宝网页版登陆
  • 怎么做网站的移动端适配版学校网站备案前置审批
  • 网站里的图片切换怎么做wordpress投稿系统
  • 网站别人能打开我打不开山东规划 建设部门的网站
  • 天津企业免费建站net core 仿wordpress
  • 双流规划建设管理局网站广州专业视频制作
  • wordpress 知名站点网站建设相关问题
  • 比较好的网站建设做产品网站费用吗
  • 商城微信网站怎么做做导购网站赚钱吗
  • 网站建设需要包含什么wordpress自定义字体
  • 网站图片不是本站的对seo有什么不好js建设网站
  • 茶叶公司网站建设策划书淮南餐饮网站建设
  • 网站修改dns软件工程专业招聘信息
  • 网络公司如何建网站建设信用卡申请官方网站
  • 宁波网站建设的过程河南省干部任免最新公示
  • 网站上传教程泰安企业建站公司电话
  • 做外文H网站铜陵商城网站建设
  • 做百度推广需要有自己的网站吗常州企业网站建站模板
  • 建网站需要买什么哪一家好
  • 网站建设的会计分录建网站的宽带多少钱
  • 新乡网站建设哪家权威济南网站开发哪家好
  • 展示型网站wordpress中国网站模板
  • 专业建设网站开发以前有个自助建设网站
  • net网站开发net网站开发手机软件网站
  • 东莞网站建设效果好免费网站app下载
  • 青海建设云网站网页游戏维京传奇
  • 平面设计师兼职网站产品设计出来好找工作吗