热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Angular6-CSS-STICKY标题

如何解决《Angular6-CSS-STICKY标题》经验,为你挑选了3个好方法。

我有3个元素:1个工具栏,1个地图,另一个工具栏.元素是一个在另一个之下

我希望第二个工具栏停留在地图元素下(顶部的400px)但是当我向下滚动时,我的第二个工具栏将停在顶部的50px并将在第一个工具栏下修复.

谢谢你的帮助

//Component.html




//Component.css

.fixed-header {
position: fixed;
z-index:999;
}

#frugalmap {
height: 300px;
width: 100%;
margin-top:50px;
}

.mat-elevation-z5 {
position: relative;
z-index: 2;
}

Eliya Cohen.. 16

在我回答你的问题之前,你可以考虑:

从HTML中删除静态样式.

使用合理的z-index,所以你不会得到类似的z-index z-index: 100000000.

使用!important只有在没有其他选择.


由于我们无法通过StackOverflow的片段编写Angular代码,因此我使用Stackblitz编写了代码 - https://stackblitz.com/edit/angular-ii5tnn

为了使位置变得粘稠,你只需使用position: sticky附加topbottom规则(在本例中为top).例如:

mat-toolbar {
  position: sticky;
  top: 50px
}

这样,mat-toolbar将保持在他的位置,直到我们通过它.

在我给出的例子中,我做了:

初始化的新Angular 6并添加了Material Angular.

新增mat-toolbar[color="primary"],并设置它通过CSS来固定.

添加#frugelmap自定义高度只是为了显示它.

新增mat-toolbar[color="warn"]并设置粘规则(请观看下面)

添加#add-spacing了很多lorem ipsum只是展示粘性效果.

以下CSS规则:

mat-toolbar {
  --default-height: 50px;
}

mat-toolbar[color="primary"] {
  top: 0;
  position: fixed;
  height: var(--default-height);
}

mat-toolbar[color="warn"] {
  position: sticky;
  top: var(--default-height);
}

#frugalmap {
  height: 300px;
  background-color: #EEE;
}


Abdul Rafay.. 5

为避免对的浏览器支持问题position: sticky,您可以通过使用以下ngClass方式切换粘性行为来轻松实现此目的:

component.html




usign HostListener跟踪滚动位置,因为您不应该直接在Angular中使用JS事件处理程序:

component.ts

  isSticky: boolean = false;

  @HostListener('window:scroll', ['$event'])
  checkScroll() {
    this.isSticky = window.pageYOffset >= 250;
  }

最后为我们的自定义类添加样式sticky

component.css

.fixed-header {
  position: fixed;
  z-index:999;
  height: 50px;
}

#frugalmap {
  height: 300px;
  width: 100%;
  top: 50px;
  position: relative;
}

.mat-elevation-z5 {
  position: relative;
}

.sticky {
  position: fixed;
  top: 50px;
}

Stackblitz演示



1> Eliya Cohen..:

在我回答你的问题之前,你可以考虑:

从HTML中删除静态样式.

使用合理的z-index,所以你不会得到类似的z-index z-index: 100000000.

使用!important只有在没有其他选择.


由于我们无法通过StackOverflow的片段编写Angular代码,因此我使用Stackblitz编写了代码 - https://stackblitz.com/edit/angular-ii5tnn

为了使位置变得粘稠,你只需使用position: sticky附加topbottom规则(在本例中为top).例如:

mat-toolbar {
  position: sticky;
  top: 50px
}

这样,mat-toolbar将保持在他的位置,直到我们通过它.

在我给出的例子中,我做了:

初始化的新Angular 6并添加了Material Angular.

新增mat-toolbar[color="primary"],并设置它通过CSS来固定.

添加#frugelmap自定义高度只是为了显示它.

新增mat-toolbar[color="warn"]并设置粘规则(请观看下面)

添加#add-spacing了很多lorem ipsum只是展示粘性效果.

以下CSS规则:

mat-toolbar {
  --default-height: 50px;
}

mat-toolbar[color="primary"] {
  top: 0;
  position: fixed;
  height: var(--default-height);
}

mat-toolbar[color="warn"] {
  position: sticky;
  top: var(--default-height);
}

#frugalmap {
  height: 300px;
  background-color: #EEE;
}



2> Abdul Rafay..:

为避免对的浏览器支持问题position: sticky,您可以通过使用以下ngClass方式切换粘性行为来轻松实现此目的:

component.html




usign HostListener跟踪滚动位置,因为您不应该直接在Angular中使用JS事件处理程序:

component.ts

  isSticky: boolean = false;

  @HostListener('window:scroll', ['$event'])
  checkScroll() {
    this.isSticky = window.pageYOffset >= 250;
  }

最后为我们的自定义类添加样式sticky

component.css

.fixed-header {
  position: fixed;
  z-index:999;
  height: 50px;
}

#frugalmap {
  height: 300px;
  width: 100%;
  top: 50px;
  position: relative;
}

.mat-elevation-z5 {
  position: relative;
}

.sticky {
  position: fixed;
  top: 50px;
}

Stackblitz演示



3> Can..:

由于其他答案主要取决于并非所有浏览器都可用的CSS,因此我将允许自己宣传我的libangle -sticky-things。

它具有一个称为“边界元素”的功能,您可以在上面的链接中看到它的实际作用。基本上,您要做的是将页面切成段(通常已经拥有),然后告诉元素在父元素的边界内发粘。

在这里,您可以看到它的作用:

I am sticky but only inside #boundary!

只需安装lib,添加我的代码,并用stickyThingmat-toolbar 替换div 。基本上就是这样。

npm install @w11k/angular-sticky-things


推荐阅读
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • asp中如何嵌入python的简单介绍
    本文目录一览:1、如何在IIS中执行Python脚本 ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
  • html结构 ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
author-avatar
女孩明天_会更好
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有