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

做传感器交易的网站辽宁做网站的公司

做传感器交易的网站,辽宁做网站的公司,推广引流渠道方法,网页设计实训总结1500字通用组件效果图 未达到最大高度 达到设置的最大高度 进行展开 实现代码 组件代码 备注&#xff1a;通过tailwindcss设置的样式&#xff0c;通过element-plus/icons-vue设置的图标&#xff0c;可根据情况进行替换 <template><!-- 限制高度组件 --><div ref"…

组件效果图

  • 未达到最大高度

在这里插入图片描述

  • 达到设置的最大高度
    在这里插入图片描述
  • 进行展开
    在这里插入图片描述

实现代码

  • 组件代码

备注:通过tailwindcss设置的样式,通过@element-plus/icons-vue设置的图标,可根据情况进行替换

<template><!-- 限制高度组件 --><div ref="restrictionBox" class="relative overflow-hidden bg-blue-300" :class="control.isUnfold ? '' : max"><div ref="restrictionChil"><slot></slot></div><!-- 渐变 --><div v-if="control.isExceed && !control.isUnfold" class="absolute inset-x-0 bottom-0 h-12 bg-gradient-to-t from-white"></div></div><!-- 控制按钮 --><div v-if="control.isExceed"><div class="flex h-12 cursor-pointer select-none items-center justify-center space-x-1 pb-2 text-blue-500 active:text-blue-400" @click="changeUnfold"><span class="text-sm">{{ control.isUnfold ? '收起' : '展开' }}</span><el-icon><ArrowUp v-if="control.isUnfold" /><ArrowDown v-else /></el-icon></div></div>
</template><script setup>
import { ref, reactive, onMounted, onUnmounted } from 'vue'
import { ArrowUp, ArrowDown } from '@element-plus/icons-vue'// 接收参数
const props = defineProps({// 最大高度 - 收起前max: {type: String,default: 'max-h-48'}
})// 组件控制参数
const control = reactive({boxHeight: 0,chilHeight: 0,isExceed: false, // 是否超出高度isUnfold: false // 是否展开
})// 改变展开方式
const changeUnfold = () => (control.isUnfold = !control.isUnfold)// 获取元素
const restrictionBox = ref(null)
const restrictionChil = ref(null)// 创建高度监听 及监听销毁
let observerBox = null
let observerChil = null// 销毁监听
const destroyedObserver = () => {if (observerBox) {observerBox.disconnect()observerBox = null}if (observerChil) {observerChil.disconnect()observerChil = null}
}// 比较高度的函数
const compareHeights = () => {if (control.boxHeight > 0 && control.chilHeight > 0) {// 高度超出,出现下拉if (control.chilHeight > control.boxHeight) {destroyedObserver()console.log('超出高度')control.isExceed = true}}
}// 页面加载完成
onMounted(() => {// 父级监听observerBox = new ResizeObserver(entries => {entries.forEach(entry => {control.boxHeight = entry.contentRect.heightcompareHeights()})})// 内容监听observerChil = new ResizeObserver(entries => {entries.forEach(entry => {control.chilHeight = entry.contentRect.heightcompareHeights()})})// 开始监听两个元素observerBox.observe(restrictionBox.value)observerChil.observe(restrictionChil.value)
})
onUnmounted(() => {destroyedObserver()
})
</script>

外层引用

<script setup>
import HeightRestriction from '../../components/HeightRestriction/HeightRestriction.vue'const ttt1 = ref(0)
const tttt = () => {ttt1.value++
}
</script><template><HeightRestriction><button @click="tttt">测试</button><div v-for="i in ttt1" :key="i">{{ 'ttt1ttt1ttt1' }}</div></HeightRestriction>
</template>
http://www.yayakq.cn/news/114065/

相关文章:

  • 河北省建设局网站首页肇庆企业自助建站系统
  • 模板免费网站建设怎么做互联网营销推广
  • 个人建网站怎么赚钱上海定制网站建设推广
  • 佛山企业自助建站系统怎样建设购物网站
  • 山西企业建站方案网站下载app连接怎么做
  • 简单网站 快速建设青岛建设网站企业
  • 利用网站制作网页网站上海备案
  • 文山州建设局网站长沙学网页设计的学校有哪些
  • 怎么搜索网站济南赢动网站建设
  • 深圳约的网站设计汉中建设网站
  • 有口碑的徐州网站开发建立网站的过程
  • 网站建设后台管理实训报告微信自助下单小程序怎么弄
  • html做静态网站flash网页设计教程
  • 两学一做网站专栏东莞前十的外贸公司
  • 本地合肥网站建设网站建设公司需要什么
  • 网站平台建设经费预算如何自建网站接广告
  • 建站步骤图wordpress图片上传插件
  • 电脑科技网站模板php网站中水印怎么做
  • 揭阳做网站网站开发界面设计用什么工具
  • 在线推广企业网站的方法有什么叫网络架构
  • 太原网站建设公司招聘牡丹江免费信息网
  • 医疗网站女性专题网页设计模板python运维网站开发
  • 北辰网站建设公司济南网站搭建公司
  • 深圳模板建站代理国外什么网站是做外贸
  • 企业彩铃制作网站php免费网站系统
  • 西安网站建设诸城网络科技网站建设
  • 网站建站套餐怎样能让百度搜到自己的网站
  • 网站建设通中华网军事
  • 邢台网站定制互联网营销的方法有哪些
  • 一站式婚庆公司网站开发背景怎么写