首页 > 其他分享 >vue3中ctrl加回车换行,光标位置设置

vue3中ctrl加回车换行,光标位置设置

时间:2024-04-29 18:11:26浏览次数:31  
标签:textarea ctrl 换行 sbwz textSplit value vue3 光标

<input  v-model="text"  type="textarea" @click="sbwz" @keydown="keysbwz" @keydown.enter.ctrl.exact.prevent="ctrlEnter"  />   // 暂存光标位置,后续截取换行使用 const textSplit=ref(0) // 判断是否改变了上次光标位置 const isTest=ref(true) // 获取光标位置 const sbwz=()=>{   isTest.value=true   // 延时获取鼠标位置,   setTimeout(()=>{     var textarea: any = document.querySelectorAll(".van-field__control")[0]; // 根据id获取文本框元素     textSplit.value=textarea.selectionStart;   },10)
} // 监听键盘按下事件 const keysbwz=(event:any)=>{   switch (event.keyCode) {     case 37: // 左键         sbwz()         break;     case 38: // 上键         sbwz()         break;     case 39: // 右键         sbwz()         break;     case 40: // 下键         sbwz()         break;   } } // 回车加CTRL键 换行 let ctrlEnter = () => {   text.value =text.value.substring(0,textSplit.value)+ '\n'+text.value.substring(textSplit.value);   // 获取文本框元素   var textarea: any = document.querySelectorAll(".van-field__control")[0]; // 根据id获取文本框元素   textarea.value = textarea.value.substring(0,textSplit.value)+ '\n'+textarea.value.substring(textSplit.value);   // 判断是否改变了光标位置,如果改变了则变为false。没有改变则将当前光标位置加一,方便下次换行使用   if(isTest.value){     isTest.value=false   }else{     textSplit.value= textSplit.value+1   }   textarea.setSelectionRange(textSplit.value+1,textSplit.value+1) }

标签:textarea,ctrl,换行,sbwz,textSplit,value,vue3,光标
From: https://www.cnblogs.com/lljun/p/18166428

相关文章

  • vue3 把quill的base64变成图片地址
      你可以看看https://www.kancloud.cn/liuwave/quill/1434141或者看看别人的文章我的项目是vu3的 template的是这样的<el-form-itemlabel="中文详情"prop="content"><div><quill-editorref="QuillEditor"v-model:content="form.......
  • Vue3中SEO优化实践:利用unhead vue插件设置Mate标签
    我们在构建Vue3项目时,搜索引擎优化(SEO)是一个不可忽视的重要方面。优化网站结构、内容和代码,使其更符合搜索引擎的排名规则,对于提升网站曝光度和吸引更多用户至关重要。其中,设置合适的Mate标签(如标题、描述和关键词)是SEO优化的关键步骤之一。在Vue3项目中,我们可以利用unhead插件来......
  • uniapp+vue3聊天室|uni-app+vite4+uv-ui跨端仿微信app聊天语音/朋友圈
    原创研发uniapp+vue3+pinia2跨三端仿微信app聊天模板Uniapp-Wechat。uni-vue3-wchat基于uni-app+vue3+pinia2+uni-ui+uv-ui等技术跨端仿制微信App界面聊天项目,支持编译到H5+小程序端+App端。实现编辑框多行消息/emoj混合、长按触摸式仿微信语音面板、图片/视频预览、红包/朋友圈......
  • vue3项目打包的时候报错'openBlock' is not exported by node_modules/...
    用了一个手写签名的,开发环境中一切正常,但是在打包发布的时候,就报错了。'openBlock'isnotexportedbynode_modules/vue-esign/node_modules/vue/dist/vue.runtime.esm.js.... 这个应该是vue版本重复导致的。 解决:在vite.config.ts中加入 dedupe:['vue'],  dedupe是......
  • vue3 引入workers 大量优化业务代码和复杂的计算的代码
    前沿vite页面引入worker在src新建一个 worker.d.ts文件declaremodule'*.worker.ts'{classWebpackWorkerextendsWorker{constructor();}exportdefaultWebpackWorker;}在 tsconfig.json页面引入"lib":["esnext",......
  • 响应式原理(Vue3、Vue2)
    1.Vue3副作用函数(onMounted、watchEffect)帮助管理组件中的副作用逻辑,并自动追踪其依赖关系,以确保在数据变化时能够自动触发副作用函数的更新。会自动追踪被其内部函数引用的响应式数据。当这些数据发生变化时,Vue3会自动重新运行副作用函数,确保副作用与数据的状态保持同步。......
  • vue3 快速入门系列 —— 状态管理 pinia
    其他章节请看:vue3快速入门系列Piniavue3状态管理这里选择pinia。虽然vuex4已支持Vue3的CompositionAPI,但是vue3官网推荐新的应用使用pinia——vue3pinia集中式状态管理redux、mobx、vuex、pinia都是集中式状态管理工具。与之对应的就是分布式。Pinia符......
  • vue3打包js内存溢出
     第一步:npminstall-gincrease-memory-limit第二步:npminstallincrease-memory-limit—save-dev第三步:package.json文件中修改   "build:win32":"cross-envLIMIT=2048increase-memory-limitBUILD_TARGET=win32node.electron-vue/build.js",//添加这个......
  • Vue3.0
    Vue2中的optionsAPI和Vue3.0中compositionAPIoptionsAPI示例compositionAPI是一组基于函数的API,可以更灵活的组织组件的逻辑createAPP函数的第一个参数即compositionAPI对象用于创建应用实例createApp({setup(){ constcount=ref(0)return{......
  • vue3+vite+js 引用public文件夹中js文件
    vue的public的资源在打包时不会被编译,只会copy所以在在src路径下引入public文件夹下的图片、视频、音频,编译不会改变其路径,但是在src下引入public文件夹下的js、json,在打包时都会被编译,所以直接引入会丢失路径(因为打包时,当前页面引入的路径被hash打包,而public文件夹下只是被cop......