vue页面实现<div>块初始化隐藏,随滚动条滚动到一定位置显示的功能

功能描述

最近需要在项目里实现固定div块,初始化不显示,随着滚动条滚动到指定位置后显示的功能:



实现思路

初始化时,设置需要固定的div块布局显示为隐藏,监听滚动条位置,当滚动条滚动到指定位置时,调整该div块为显示状态,并将该div块设置为固定定位


代码实现

<template>
	<div id="outbody">
		<div id="leftmenu" :style="{ display: leftmenuDisplay,position: leftmenuPosition,top: scrollPosition+'px'}">
       
</div>
	</div>
</template>
<script>
export default {
	data() {
		leftmenuDisplay: 'none',
        leftmenuPosition: 'static',
        scrollPosition: 0
	},
	mounted(){
      var targetbody = document.getElementById('outbody'); // 根据id选择目标div元素
      targetbody.addEventListener('scroll', this.handleScroll); // 监听滚动事件
    },
    beforeDestroy() {
      var targetbody = document.getElementById('outbody'); // 根据id选择目标div元素
      targetbody.removeEventListener('scroll', this.handleScroll); // 移除滚动事件监听器
    },
	methods:{
		handleScroll() {
	        var targetbody = document.getElementById('outbody'); // 根据id选择目标div元素
	        if(targetbody.scrollTop >= 300){
	          var targetDiv = document.getElementById('leftmenu'); // 根据id选择目标div元素
	          this.leftmenuDisplay = 'block';
	          this.scrollPosition = 200; // 更新滚动条位置
	          this.middleLeft = '18';
	          this.leftmenuPosition = 'fixed'
	        }else{
	          this.leftmenuDisplay = 'none';
	        }
      },
	}
}
</script>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值