当前位置: 首页 > 知识库问答 >
问题:

vue.js - react或者vue 如何实现ChatGPT 光标文字追随 效果?

辛可人
2023-11-07

实现下面图中效果,?
image.png

共有2个答案

东方镜
2023-11-07

我自己实现了

&:last-child{// 如果ai输出结束了,刚不显示伪元素after  .stop > *:last-child{    &:after{      content: none !important;    }  }  // 节点空时设置光标跟随  .chat:empty{    position: relative;    &:after{      display: inline-block;      content: "";      width: 4px;      height: 14px;      transform: translate(4px,2px) scaleY(1.3);      background-color: #80c9ff;      animation: cursor .6s infinite;      overflow-wrap: break-word;      box-sizing: border-box;    }  }  // 获取最后一个子节点并设置光标跟随  .chat > *:last-child {    position: relative;    &:after{      display: inline-block;      content: "";      width: 4px;      height: 14px;      transform: translate(4px,2px) scaleY(1.3);      background-color: #80c9ff;      animation: cursor .6s infinite;      overflow-wrap: break-word;      box-sizing: border-box;    }  }}

image.png

傅乐湛
2023-11-07

要实现ChatGPT光标文字追随效果,可以使用以下步骤:

  1. 在React或Vue应用程序中,使用一个文本输入框(textarea)或输入框(input)来接收用户输入。
  2. 当用户输入文本时,监听输入框的input事件或change事件,以便在文本发生变化时更新应用程序的状态。
  3. 在事件处理程序中,获取输入框中当前选中的文本,并将其存储在应用程序的状态中。
  4. 使用CSS样式来控制光标的位置和文本的追随效果。可以使用CSS的::selection伪元素来设置选中文本的颜色和背景色,并使用CSS的position属性来控制光标的位置。

下面是一个简单的React示例代码,演示如何实现ChatGPT光标文字追随效果:

import React, { useState } from "react";const ChatGPT = () => {  const [text, setText] = useState("");  const [selectedText, setSelectedText] = useState("");  const handleChange = (event) => {    setText(event.target.value);    setSelectedText(""); // Clear selected text when user starts typing again  };  const handleSelectionChange = (event) => {    const selectedText = event.target.value.slice(event.target.selectionStart, event.target.selectionEnd);    setSelectedText(selectedText);  };  return (    <div>      <textarea value={text} onChange={handleChange} onSelectionChange={handleSelectionChange} />      {selectedText && <span style={{ color: "yellow", backgroundColor: "black" }}>{selectedText}</span>}    </div>  );};export default ChatGPT;

这个示例中,我们使用了textarea元素来接收用户输入,并监听了changeselectionchange事件。当用户输入文本时,handleChange函数会更新应用程序的状态,而handleSelectionChange函数会获取当前选中的文本并更新应用程序的状态。最后,我们使用了一个条件渲染语句来显示选中的文本,并使用CSS样式来控制其颜色和背景色。

 类似资料:
  • 本文向大家介绍WPF实现背景灯光随鼠标闪动效果,包括了WPF实现背景灯光随鼠标闪动效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了WPF实现背景灯光随鼠标闪动的具体代码,供大家参考,具体内容如下 实现效果如下: 思路:将容器分割成组合三角形Path,鼠标移动时更新每个三角形的填充颜色。 步骤: 1、窗体xaml 只需放置一个Canvas。 2、交互逻辑 说明:当组合三角形过多时,

  • 本文向大家介绍如何实现sleep的效果(es5或者es6)?相关面试题,主要包含被问及如何实现sleep的效果(es5或者es6)?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: (1)while循环的方式 执行sleep(1000)之后,休眠了1000ms之后输出了1111。上述循环的方式缺点很明显,容易造成死循环。 (2)通过promise来实现 //先输出了111,延迟500ms后输

  • 本文向大家介绍用css3实现文字发光的效果相关面试题,主要包含被问及用css3实现文字发光的效果时的应答技巧和注意事项,需要的朋友参考一下 text-shadow: 实现;

  • 需求:语音转文字(边录边转) 前端负责 传递实时音频 后端负责 将音频准换为文本 请教: 前端采用什么方式实现语音的实时采集并通过webSocket向后端实时不间断发送 采用过js-audio-recorder方式实现过录音、但是获取到音频流后 recorder.getWAVBlob()方法会默认执行recorder.stop()录音停止、导致中断;

  • 我主要学的Java后端,之前短期接触过Vue2,现在vue更新到了3版本,相应API也有了较大变化 由于是前端小白,因为确实对这两个框架没有什么认识,希望大佬们能讲讲Vue和React两大框架异同以及相应技术

  • 本文向大家介绍JS实现跟随鼠标的链接文字提示框效果,包括了JS实现跟随鼠标的链接文字提示框效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现跟随鼠标的链接文字提示框效果。分享给大家供大家参考。具体如下: 这里使用JavaScript与CSS实现链接提示效果,不会改变你原来的链接结构,使用链接原有的title标签来实现,如果之前你使用有title标签,那你几乎只需把JS代码拷贝到你