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

Vue 详情header组件

Vue 渐进式JavaScript 框架 基于Vue2的移动端项目:详情header组件

目录

详情header组件

监听事件实现

创建组件

使用组件

引入组件

注册

在页面使用

返回按钮

设置按钮样式

指令方式实现

注册指令

指令传值

总结


详情header组件

详情页面使用指令完成吸顶功能。

监听事件实现

通过监听事件来实现,当滚动到顶层时隐藏,离开时清空,示例如下:

 

创建组件

在mycomponents/detail下创建DetailHeader.vue文件。

示例如下:

<template><div class="header">header</div>
</template>

使用组件

在DetailView.vue中使用DetailHeader.vue组件。

首先引入组件,然后局部注册,最后在页面的上部使用。

引入组件
import detailHeader from '@/mycomponents/detail/DetailHeader'
注册
components: {detailSwiper,detailSwiperItem,detailHeader},
在页面使用
<template><div class="content" v-if="filmInfo"><detail-header></detail-header>
返回按钮

DetailHeader.vue文件中增加返回按钮,标题改为slot,设置并绑定返回事件。

代码如下:

<template><div class="header"><i @click="handleBack"> < </i><slot></slot></div>
</template>
<script>
export default {methods: {handleBack () {this.$router.back()}}
}
</script>

 

设置按钮样式

设置返回按钮的样式

<style lang="scss" scoped>
.header {position: fixed;top:0;left:0;width:100%;height: 2.444444rem;line-height:2.444444rem;background-color: white;text-align:center;i {font-size: 30px;position: fixed;left: .555556rem;top:0;height: 2.4444444rem;line-height: 2.4444444rem;}
}
</style>

 

指令方式实现

在detailView.vue文件中设置使用自定义指令时,传递距离上面尺寸。

<detail-header v-scroll>{{filmInfo.name}}</detail-header>
注册指令

判断两项top是为了兼容性

Vue.directive('scroll', {inserted (el) {console.log(document.documentElement.scrollTop)// el.style.display = 'none'window.onscroll = () => {console.log('scroll')if (document.documentElement.scrollTop || document.body.scrollTop > 50) {el.style.display = 'block'} else {el.style.display = 'none'}}},unbind () {window.onscroll = null}
})

 

指令传值

设置使用自定义指令时,传递距离上面距离。

示例如下:

<detail-header v-scroll="50">{{filmInfo.name}}</detail-header>

在定义指令时,通过binding.value接收值

Vue.directive('scroll', {inserted (el, binding) {// el.style.display = 'none'window.onscroll = () => {console.log('scroll')if (document.documentElement.scrollTop || document.body.scrollTop > binding.value) {el.style.display = 'block'} else {el.style.display = 'none'}}},unbind () {window.onscroll = null}
})

总结

Vue 渐进式JavaScript 框架 基于Vue2的移动端项目:详情header组件

http://www.dtcms.com/a/315106.html

相关文章:

  • Go语言Context
  • ISO(感光度)的工作原理
  • 接口权限(@SaCheckPermission)
  • ebaz4205矿板以太网连接不稳定问题解决方案
  • SQL基础语法(四个分类、库和表的增删改)
  • 【笔记】ROS1|6 中间人攻击移动过程【旧文转载】
  • 私有化部署即时通讯,企业专属通讯系统BeeWorks
  • 计算机网络:网络号和网络位是不是同一个意思
  • 4.5 点云表达方式——图
  • 纯前端使用ExcelJS插件导出Excel
  • 并发编程常用工具类(上):CountDownLatch 与 Semaphore 的协作应用
  • C++信息学奥赛一本通-第一部分-基础一-第一章
  • 高并发抢单系统核心实现详解:Redisson分布式锁实战
  • Swin-Transformer从浅入深详解
  • ubuntu 20.04 C和C++的标准头文件都放在哪个目录?
  • 安卓逆向(基础①-Google Pixel-Root)
  • <PhotoShop><JavaScript><脚本>基于JavaScript,利用脚本实现PS软件批量替换图片,并转换为智能对象?
  • 【拓扑序 时间倒流法】P7077 [CSP-S2020] 函数调用|省选-
  • 嵌入式开发入门——电子元器件~电容
  • RLCraft开服踩坑记录
  • 防火墙web页面练习
  • 使用AWS for PHP SDK实现Minio文件上传
  • Centos7离线安装Mysql8.0版本
  • 政务云数智化转型:灵雀云打造核心技术支撑能力
  • HarmonyOS 多屏适配最佳实践:基于 ArkUI 的响应式 UI 方案
  • 在CentOS 7上安装配置MySQL 8.0完整指南
  • [Oracle] TO_NUMBER()函数
  • C 语言结构体与 Java 类的异同点深度解析
  • Hexo - 免费搭建个人博客07 - 添加右上角的“目录”
  • 《Python 实用项目与工具制作指南》· 2.4 pip