// 输入监听
inputEl.oninput = (e) => {
// 动态调整宽高
inputSizeChange(inputEl, 23)
}
// 获取焦点
setTimeout(() => {
// 获取焦点
inputEl.focus()
inputEl.select()
}, 0)
// 计算输入框大小
// input:(必填)输入框
// rowh:(必填)当没有内容时默认高度,如果不传当没有内容时会没高度
// colw:(可选)当没有内容时默认宽度,如果不传宽度会很窄
function inputSizeChange (input, rowh, colw) {
// 输入的内容
const text = input.value.replaceAll(‘\r’,‘’).replaceAll(‘\n\n’,‘\n’)
// 创建一个 span
const span = document.createElement(‘span’)
// 隐藏
span.style.opacity = 0
// 清空间距
span.style.padding = 0
span.style.margin = 0
// 保证能正常撑开
span.style.display = ‘inline-block’
// 字体属性跟输入框保持一致
span.style.wordBreak = input.style.wordBreak
span.style.whiteSpace = input.style.whiteSpace
span.style.fontSize = input.style.fontSize
span.style.fontWeight = input.style.fontWeight
span.style.fontFamily = input.style.fontFamily
// 将输入内容分割成行数组
var texts = text.split(‘\n’)
// 插入标签元素
var innerHTML = ‘’
// 便利组装
texts.forEach(function (text, index) {
// 根据情况进行组装
if (index === 0) {
// 0 行直接使用
innerHTML += text
} else if (!text.length) {
// 空行则手动加换行符与临时计算内容
innerHTML += ‘
s’
} else {
// 非空行则回车加内容
innerHTML += (‘
’ + text)
}
})
// 将回车替换成换行符
span.innerHTML = innerHTML
// 添加到页面上才能得到尺寸
document.body.appendChild(span)
// 获取 span 的宽高,+ 5 在刚好的宽度上多 5px 保证光标的显示,要不然宽度不够会自动到下一行
var width = span.clientWidth + 5
var height = span.clientHeight
// 最后一行是否为空行
var isEmptyLine = !texts[texts.length - 1].length
// 就只剩一行并且是空行,则需要使用默认匡高
if (texts.length === 1 && isEmptyLine) {
if (colw) { width = colw }
if (rowh) { height = rowh }
}
// 设置宽高
input.style.width = ${width}px
input.style.height = ${height}px
// 移除计算的 span
document.body.removeChild(span)
}
// 支持全部替换(部分浏览器不自带)
String.prototype.replaceAll = function (s1, s2) {
return this.replace(new RegExp(s1, “gm”), s2)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
分享一套阿里大牛整理的前端资料给大家,点击前端校招面试题精编解析大全即可获取
❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。
ttps://img2.imgtp.com/2024/03/13/H4lCoPEF.jpg" />
最后
分享一套阿里大牛整理的前端资料给大家,点击前端校招面试题精编解析大全即可获取
❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。