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

怎样建设淘客网站做我的世界头像的网站

怎样建设淘客网站,做我的世界头像的网站,下载别人做的ppt的网站,wordpress注册页面插件组件效果图 未达到最大高度 达到设置的最大高度 进行展开 实现代码 组件代码 备注&#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/401489/

相关文章:

  • 手机小说网站源码网站建设购买
  • 外贸网站怎么做效果好网站建设方法:
  • 免费网页设计模板网站做网站买域名
  • 成都网站建设 外包企业服务器配置方案
  • 北京通网站建设赣州大余做网站建设
  • 网络公司网站设计网站建设和商城有什么好处
  • 购物网站开发教程中文网站建设与管理课程设计论文
  • 网站建设需要提供的资料企业管理咨询服务内容
  • 海关网站建设方案定制开发 商城网站 最快
  • 做网站的销售怎么开发微信网站
  • 四川省住房和城乡建设局网站首页wordpress 百万数据
  • 网站开发技术分析中小企业网站建设费用
  • 建设一个机械公司网站多少钱个人备案网站可以做论坛吗
  • 二级网站收录外贸营销网页设计
  • 这样做自己的网站云主机wordpress
  • 企业型网站建设哪家比较好学习做网站的网站
  • 网站路径优化快手秒赞秒评网站推广
  • 网站建设2018需要什么买做指甲的材料在哪个网站
  • wordpress建站教程 贴吧ui设计自学视频教程
  • 企业自己怎么做网站推广cad室内设计
  • 在智联招聘网站做销售百度指数关键词未收录怎么办
  • 五屏网站建设价位工业设计专业就业方向
  • ajs17网站建设网站首页快速收录
  • 如何让自己做的博客网站上线微享网络网站建设
  • 大庆金思维科技网站开发建设发展集团有限公司
  • 网站建设 洪塔网站建设发展史
  • 电商运营和网站运营对比seo上海推广公司
  • 黄冈网站推广平台壁纸公司网站源码
  • 贵州网络推广介绍网站性能优化的方法有哪些
  • 做文件的网站手机搞笑网站模板下载安装