获取文字相对于浏览器窗口的位置以及2个应用实现

本文介绍如何通过前端技术实现文字彩蛋功能,包括原理、步骤和代码演示,适用于增强用户体验的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先放出Demo和效果截图

Demo1:用户输入喜欢文字定位并动画
http://runjs.cn/detail/cjrwtdgz


Demo2:搜索文字定位并动画
http://runjs.cn/detail/u9qqhmij

 
如果你对上面的实现感兴趣的话,下面就直接进入正题(简单介绍原理和所需前端技术,具体实现还是需要细看上面的Demo)
 
适用场景:作为一个前端彩蛋。
比如:当用户在输入“喜欢”时,跳 个“爱心动画”,用户应该会感到惊喜;用户在读取私信的时,也看到一个“爱心动画”,也应该会感到惊喜。
 
原理很简单就5个步骤,而相对应的技术也很简单
 
开始前提:需要知道 _wrap中字符串(12345678912抓住145874)中‘ 抓住’的位置
 
第一步:新建一个节点 div2,然后把_wrap的宽高等css样式复制给 div2
使用 window.getComputedStyle(_wrap ,null)来获得css样式,对于低版本IE,使用_wrap .currentStyle来替代
 
第二步:复制截断的文字内容,添加标识节点 span,并塞入到body中
_setText 是字符串 '12345678912抓住'
 
第三步:计算 spandiv2中的偏移量
使用 offsetTopoffsetLeft获取间距
 
第四步: 计算_wrap 在浏览器中的位置
使用 _wrap.getBoundingClientRect() 获得4个边距离浏览器左侧和顶部的距离
 
至于getBoundingClientRect 该方法获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置,请看下面图例
 
第五步:把3、4步所得相加就是位子“抓住”在浏览器中的位置
 
到这里,功能原理介绍已经结束,本篇文章也要结束了
至于怎么获取截断的文字字符串和获取文字位置后进行动画效果,请看最上方Demo里的代码
而该功能更多的想法应用期待你去发掘
 
(博主暂时只想到文字方面的‘彩蛋’,也能和@功能的弹层位置扯上一点关系【和新浪的@位置获取类似】)

转载于:https://www.cnblogs.com/jiangren/p/3990036.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值