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

星空传媒有限公司网站外贸免费建设网站制作

星空传媒有限公司网站,外贸免费建设网站制作,wordpress 导入演示,建站主机使用自定义指令实现css样式层叠 分析 有时候页面的头部可能会采用固定定位的方式,同时头部占用了较大空间,导致内容区的位置被压缩,如图1-1,这时能否在滚动的时候改变内容区div的css层级,让其覆盖在头部上面&#xf…

使用自定义指令实现css样式层叠

分析

有时候页面的头部可能会采用固定定位的方式,同时头部占用了较大空间,导致内容区的位置被压缩,如图1-1,这时能否在滚动的时候改变内容区div的css层级,让其覆盖在头部上面(如图1-2)呢

在这里插入图片描述

图1-1

在这里插入图片描述图1-2

实现

这里采用自定义指令对滚动事件进行监听,滚动到期望位置后,修改样式实现层级覆盖。

v-stack指令的实现

创建 stack 文件

import { DirectiveBinding, VNode, Directive } from 'vue';// binding 设置的偏移量 滚动多少像素后开始设置层级
const stack = {mounted(el: HTMLElement, binding: DirectiveBinding) {let _offsetTop = el.offsetTop;window.addEventListener('scroll', (e: Event) => {const curScrollTop = (e.target as Document)?.scrollingElement?.scrollTop as number;if(curScrollTop > (_offsetTop - (binding.value || 0))) {el.style.setProperty('position', 'relative');el.style.setProperty('z-index', '999999');} else {el.style.removeProperty('position');el.style.removeProperty('z-index');el.style.removeProperty('top');};});};
};export default stack as Directive;

将指令导入 index 文件,方便后续统一注册

import { App } from 'vue'
import { Directive } from 'vue'
import stack from './stack'const directives = {stack,
} as Record<string, Directive>export default {install(app: App) {Object.keys(directives).forEach(key => {app.directive(key, directives[key])})}
}

在main.ts文件中统一注册

import { createApp } from 'vue'
import directives from '@/directives/index'
import App from '@/App.vue'
const app = createApp(App)app.use(directives)
// 省略其他...

在组件中使用自定义指令

<template><div><Header :style="`height: ${headerHeight}px;`"></Header><div style="height: 580px; text-align: center; background-color: skyblue;">这是其他</div><Container v-stack="headerHeight"></Container></div>
</template><script setup lang="ts">
import { ref } from 'vue';
import Container from './container.vue';
import Header from './header.vue';const headerHeight = ref(400);</script><style lang="scss" scoped></style>

头部组件代码 header.vue

<template><div class="header"><h4>这是头部</h4></div>
</template><style lang="scss" scoped>.header {position: fixed;width: 100%;background-color: aqua;z-index: 200;display: flex;justify-content: center;align-items: center;}
</style>

container.vue 组件代码

<template><div class="box"><ul><li v-for="(item, index) in 500" :key="index"><h5>这是内容{{ item }}</h5></li></ul></div>
</template><style lang="scss" scoped>
.box {width: 600px;margin: 0 auto;height: 100%;background: pink;padding: 20px;li {line-height: 26px;text-align: center;}
}
</style>
http://www.dtcms.com/wzjs/784748.html

相关文章:

  • 番禺网站建设服务怎么提升网站流量
  • 工程中标公示查询怎么查网络优化工程师能干一辈子吗
  • 阜阳专业网站建设wordpress虚拟主机
  • 三创大赛网站建设徐州网站建设费用
  • 网站建设成功案例书籍景区网站开发
  • 石家庄网站建设电商网站开发使用的工具
  • 网站建设程序开发过程上海 高端 网站建设
  • 集团制度建设网站辽宁建设工程信息网官网 项目经理解锁表格
  • 软文推广平台东莞seo推广优化排名
  • 网站外链建设需要逐步进行适可优化即可地域名网址查询
  • 东营网站建设培训学校外包加工拿货网
  • 奉化建设网站湖北随州市城乡建设官方网站
  • 招商网站建设运营微商做百度推广发哪个网站收录高
  • 免费建站免费网站网站栅格布局
  • 设计网站公司都选亿企邦长沙的seo网络公司
  • 长治哪里做网站石家庄建设网站公司哪家好
  • 网站域名怎么注册网站开发搜索功能怎么实现
  • 没有营业执照 怎么做网站建设网站番禺
  • 网站建设话语一家三口的室内设计方案
  • 食品企业网站建设策划方案书舆情信息在哪里找
  • 海淀seo是指什么意思
  • 可以看网站的浏览器二级域名分发平台
  • 定西网站建设公司电脑如何做网站空间
  • 建设环评备案登记网站河南网站关键词优化
  • 关键词挖掘站长工具建设互联网地方垂直网站
  • 好用的a站广州有什么好玩的旅游景点
  • 网站源码是什么格式临海大经建设集团网站
  • 专业视频网站开发电子商城网站建设项目规划书
  • 手机网站开发建设方案旅游网站设计及开发
  • 大良营销网站建设市场广东网站建设找哪家