首页 > 其他分享 >实现吸顶效果,一个页面多个元素吸顶效果

实现吸顶效果,一个页面多个元素吸顶效果

时间:2024-08-02 16:55:10浏览次数:18  
标签:stickystyle2 false 效果 top 元素 position 吸顶 页面

前言

新业务开发用到了吸顶效果而且是一个页面滚动到不同的位置不同的元素进行吸顶叠加。我是基于uniapp去写的,原理思路都一样

代码部分

下面的代码我写了两种方法都是一样的一个是通过js控制变量添加元素一个是直接通过css样式进行控制

		<!-- 上半部总览位置 -->
		<view :class="{user_Overview:true}">
                   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
		</view>
		<!-- 中间搜索框 -->
    <view  :class="{input_box:true,stickystyle2:stickystyle2}">
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    </view>

  <script>
import {getCurrentDate} from '@/common/util.js'
	export default {
		data() {
			return {
                           stickystyle2:false,
                        }

		methods: {
                        //离开这个页面的时候栏吸顶效果消失
                        onUnload(){
                          this.stickystyle1=false;
                          this.stickystyle2=false;
                        },
                        onPageScroll(e) { //nvue暂不支持滚动监听,可用bindingx代替
                          // console.log("滚动距离为:" + e.scrollTop);
                          if(e.scrollTop>380){
                            this.stickystyle2=true
                          }else{
                            this.stickystyle2=false
                          }
                        },
		}
	}

</script>
 <style>
 //第一中方式直接设置position: fixed;,但是该元素不触发吸顶的时候脱离文档流后面的元素会补位,
 //所以需要给后一个元素进行设置padding-top或者maigin-top值就是该元素的高度
 //这个地方设置position: sticky;也是可以的
 	.user_Overview{
		width: 750rpx;
		height: 70rpx;
		// border: 1px solid red;
		display: flex;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 99;
		justify-content: space-between;
		padding:0rpx 32rpx;
		background-image: linear-gradient(180deg, #FFE7D2 0%, #FFE7D2 100%);
         }
  .input_box{
    padding:16rpx 32rpx 16rpx 32rpx;
    background: #FFFFFF;
    height: 100rpx;
   }
     .stickystyle2{
    position: fixed;
    top: 70rpx;
    left: 0;
    width: 100%;
    z-index: 999;
    // #ifdef APP-PLUS
    top: 158rpx;
    left: 0;
    // #endif
  }
 </style>
 

结语

吸顶效果很常见,这是我自己的写法,是通过uniapp自带的监听滚动事件,如果是vue使用window.addEventListener(“scroll”, this.add);或者js可以通过document.body.scrollTop,一通百通。

标签:stickystyle2,false,效果,top,元素,position,吸顶,页面
From: https://blog.csdn.net/m0_45884629/article/details/140875165

相关文章

  • Blazor程序混合Razor页面
    1.修改Program//添加Razor页面builder.Services.AddRazorPages();//使用路由,需在app.UseAntiforgery();之前添加app.UseRouting();//映射Razor页面app.MapRazorPages();2.添加Razor页面新建Pages文件夹在Pages文件夹中添加_ViewImports.cshtml文件@usingSample.We......
  • 【Dynamo】AnyCAD使用Dynamo绘制三维模型(一)——效果展示
    说明:AnyCAD为国产CAD,官网为:AnyCAD图形平台参考代码:https://gitee.com/anycad/anycad.visualprogramming.git参考代码的AnyCAD为2024版本项目采用AnyCAD版本为2022.10.24,由于缺少一些2024版本的关键API,采用了和参考项目不一样的创建模型和展示模型的方式来实现和参考项......
  • 神奇的进度条!水缸进度动画效果怎么实现的?
    最近看到一个非常有趣的动画效果:水波进度动画,想了一下实现思路,分享给大家~效果如下图片图片基本组件代码先把最基础的组件代码样式写出来,其实无非就是四个部分:1、圆形水缸2、水波2、百分比数字3、进度条我们先把圆形水缸、百分比数字、进度条画出来,水波待会再......
  • Marker效果试用,也是pdf2md
        主要原理Marker的工作原理基于深度学习模型。它首先通过OCR技术(如果需要的话)提取文本(采用启发式算法和tesseract工具),然后检测页面布局并确定阅读顺序(使用布局分割器[1]和列检测器[2])。接下来,Marker会对每个文本块进行清洁和格式化处理(运用启发式算法和nougat[3......
  • 【nginx网站部署】【nginx部署网站】【linux-nginx】静态页面部署 静态网站部署 nginx
    ============================================第一步:安装:===============================1、安装:sudoapt-getinstallnginx 输入y2、测试是否成功: sudonginx-t 输出: nginx:theconfigurationfile/etc/nginx/nginx.confsyntaxisok nginx:config......
  • iOS开发基础144-逐字打印效果
    在AIGC类的APP中,实现那种一个字一个字、一行一行地打印出文字的效果,可以通过多种方法来实现。下面是一些实现方法,使用Swift和OC来举例说明。OC版1.基于定时器的逐字打印效果可以使用NSTimer来逐字逐行地显示文字。#import"ViewController.h"@interfaceViewController()......
  • zabbix应用教程:基于Nginx页面响应的日志监控用例
    作者乐维社区(forum.lwops.cn)许远背景:某公司基于Nginx服务器搭建的网站,需要监控页面响应耗时的数据,因此该公司搭建了zabbix开源监控系统,当监控到页面响应时间超过3000ms阈值时,就进行告警通知。本文将通过日志关键字的监控来实现对页面响应时间感知,示例Zabbix版本:5.0.9。日志文......
  • save-all-resources | 将指定页面的所有资源存到本地 | chrome插件推荐
    save-all-resourceshttps://chromewebstore.google.com/detail/save-all-resources/abpdnfjocnmdomablahdcfnoggeeiedb使用方法:F12右边选择ResourceSaver点击右边的SaveAllResources按钮即可推荐一个three.js撒筛子的demohttps://codepen.io/fuzionix/pen/KKjgVa......
  • 手写 Hibernate ORM 框架 05-基本效果测试
    手写Hibernate系列手写HibernateORM框架00-hibernate简介手写HibernateORM框架00-环境准备手写HibernateORM框架01-注解常量定义手写HibernateORM框架02-实体Bean定义,建表语句自动生成手写HibernateORM框架03-配置文件读取,数据库连接构建手写Hi......
  • 用Python打造精彩动画与视频,3.3 添加音频和简单效果
     3.3添加音频和简单效果在本节中,我们将学习如何使用MoviePy库为视频添加音频和一些简单的效果。这些操作可以让你的视频更具吸引力和个性化。准备工作首先,确保你已经安装了MoviePy和pydub库。你可以通过以下命令安装:pipinstallmoviepypydub同时,你需要确保系统......