用Vue实现高度自增的文本框

用Vue实现高度自增的文本框,第1张

越是使用框架,越是觉得有些"繁琐"是必要的,未经粉饰的知识更为直接,所造成的隔离也是少的。

如果使用keydown那么按下enter的时候文本框的高度还没有发生变化,会有一次高度不变化,然后每次变化的时上次的高度,内部还是出现的了滚动

clientHeight:width+padding

scrollHeight: 元素内容的总高度,不包含border

offsetHeight: width+padding+border

如果你还需要$eventsrcElement去做兼容,给你一个大大拥抱。

document上有很多元素的直接引用

documentbody body元素

documenttitle 文档标题

documentdocumentElement html元素

、框架等

documentquerySelector 和 documentquerySelectorAll能够实现JQ选择器大部分功能,也是常用的部分。

documentbodyclassListadd 简化类的 *** 作

documentbodyinsertBefore JQ插入API大多有它的身影。

本文的CodePen地址 >

在vue中可以通过给标签加ref属性,就可以在js中利用ref去引用它,从而 *** 作该dom元素。

以下是个例子:

Vue系列产品为3D自然环境的动画制作和渲染提供了一系列的解决方案。Vue系列有很多不同的产品,这是为了满足不同阶层的用户的需要:可以满足专业的制作工作室,同样也能满足3D自由艺术家。

参与项目:

《阿凡达》《2012》《赤壁》《斯巴达克斯》《死不瞑目》《尸城30夜》《功夫熊猫》《异形大战铁血战士》《微光城市》《神奇四侠》《致命拜访》《冒牌天神》《与王一夜》《老友与钱》《加勒比海盗》《ALAUID》《假结婚》《特种部队》《失落的大陆》《终结者》《坠入地狱》《Dragonball Evolution》《女同志吸血鬼杀手》《爱丽丝梦游仙境》《诸神之战》《驯龙记》《狼人》《闰年》《可爱的骨头》《魔法奇幻秀》《美少女特工队》《吉诺密欧与朱丽叶》《纳尼亚传奇》《猫头鹰王国》《歪小子斯科特》《卑鄙的我》《最后的风之子》《怪物史瑞克》《波斯王子》《饥饿游戏》《地心历险记》《雨果》《亚瑟圣诞》《丁丁历险记》《惊天战神》《超级8》《雷神》《大战外星人》《本杰明·巴顿奇事》《马达加斯加》《澳洲乱世情》《空中杀手》《夺宝奇兵》《奇幻精灵事件簿》

在项目中,我们需要运用到很多来自后端返回的数据。有时是上百条,有时甚至上千条。如果加上后端的多表查询或者数据量过大,这就导致在前端的显示就会及其慢,特别是在网络不好的时候更是如此。

自然,后端就做了一项非常“漂亮”的交互体验数据——分页

这不分页还好,一分页对超过10条数据之后的本来也不多,就20条,偏偏还得做个分页器。(假设为10条)

此时,如果能够像购物商城那样拖拽到底部自动加载新数据就好了。

于是《在element-ui的select下拉框加上滚动加载》诞生了。

这里通过自定义封装vue指令进行封装。(什么是指令:官方指令叫v-on,v-model)

以下以element-ui中的select为例:

在mainjs同级别文件中添加directivesjs:

// directivesjs

import Vue from 'vue'

let MyPlugin = {}

export default MyPlugininstall = function(vue, options) {

}

v-loadmore: 用于在element-ui的select下拉框加上滚动到底事件监听

scrollHeight 获取元素内容高度(只读)

scrollTop 获取或者设置元素的偏移值,常用于, 计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0

clientHeight 读取元素的可见高度(只读)

如果元素滚动到底, 下面等式返回true, 没有则返回false

scrollHeight - scrollTop === clientHeight

这里运用到了滚动偏移来做监听来处理,这与聊天对话框中默认下拉到底部的原理是大同小异的,后续我会有专门的文章进行讲解。

然后在组件中使用

<el-select

v-model="chatmode"

placeholder="聊天模式"

size="mini"

v-loadmore="loadMore">

<el-option

v-for="item in chatmodes"

:key="itemvalue"

:label="itemqa_name"

:value="itemqa_code"

:disabled="itemdisabled">

</el-option>

</el-select>

<script>

export default {

methods: {

loadMore () {

// 这里写入要触发的方法

}

}

}

</script>

以上就是关于用Vue实现高度自增的文本框全部的内容,包括:用Vue实现高度自增的文本框、【Vue】vue基础知识一(本地数据 *** 作)、vue怎么获取dom元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9508536.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存