实现该功能大致需要三步

第一步:定位输入框中的光标的top和left属性  

IE中很容易实现。直接调用document.selection.createRange()即可

if (document.selection) { 
 elem.focus();
 var Sel = document.selection.createRange();
 return {
 left: Sel.boundingLeft,
 top: Sel.boundingTop,
 bottom: Sel.boundingTop + Sel.boundingHeight
 };
}

FF中却不容易。对于firefox之类的浏览器则通过模拟来实现,如下图所示。首先通过拷贝输入区域的样式到一个div层(clone层,position设置为absoulte),然后在此clone层之中的text子层添加光标之前的字符,并在text子层之后添加focus层,focus层中包含字符“|”来模拟光标,进而通过获取focus层的偏移量即可获得文本光标的像素坐标位置

第二步:设计弹出框的样式,这一步很简单直接参考新浪微博即可     

第三步:设计鼠标、键盘事件(这里我们以向下键盘事件为例)

$("#"+elementName).keydown(function(ev){If(ev.keyCode == 40){.....    //进行样式的渲染return false;   //阻止事件的冒泡和键盘事件的默认行为
}
});

新浪微博中@功能的实现相关推荐

  1. mysql 关注 表设计_mysql - 新浪微博中的关注功能是如何设计表结构的?

    问 题 新浪微博中,假如a关注了200个用户,300个用户关注了a,点解的时候会看到所有关注a或者a关注的用户,这种表结构是如何实现的? 解决方案 个人简单猜测,如有雷同,纯属巧合!有错误请指正! u ...

  2. android 分享到微博客户端,Android APP集成新浪微博分享功能

    本文为大家分享了新浪微博分享功能集成,供大家参考,具体内容如下 直接导入weibosdkcore.jar:适用于只需要授权.分享.网络请求框架功能的项目. 无论使用哪一种方式,都需要先将demo中li ...

  3. 极简主义_网页设计中功能极简主义的真实性要少得多

    极简主义 Written by Jessica Bennett 由杰西卡·贝内特 ( Jessica Bennett)撰写 介绍 (Introduction) "Less is more&q ...

  4. 可能是目前轻量级弹幕控件中功能最强大的一款

    本项目是一个开源的弹幕控件库,能够支持多种样式弹幕,弹幕点击监听,弹幕分区域显示,自定义移动速度等功能,项目原理是通过自定义ViewGroup.可能是目前轻量级弹幕控件中功能最强大的一款了. Gith ...

  5. js实现QQ、微信、新浪微博分享功能

    使用js实现QQ.微信.新浪微博分享功能. 微信分享需要手机扫描二维码,需要对url进行编码.在https协议下,扫描二维码时,浏览器打不开可能是没有安全证书导致的. js代码: 1 var shar ...

  6. mysql 关注 表设计_新浪微博中的关注功能是如何设计表结构的?

    个人简单猜测,如有雷同,纯属巧合!有错误请指正! user_relation - 用户关系表 user_id - 用户ID follower_id - 被关注者用户ID relation_type - ...

  7. 友盟的微信登录,QQ,新浪微博登录功能和分享功能

    在这里我用的是友盟的登录,需要的请参考本文,直接撸代码, 提示:微信登录在一段时间内,只授权一次(只能调起一次登录页面),除非更换用户,才可以再调起登录页面. 0.本文需要导入jar包导完后鼠标右键A ...

  8. 两国的“微”与“博”——Twitter与新浪微博的功能差异化探究

    科技是一把切割刀,刀锋所及,无论是时间.生活.情感抑或思维.都成为碎片化的存在.微博.Twitter迎合着人们碎片化的需求,在夹缝中寻找到了生存的契机.然而微博在中国与Twitter在美国,各自的生态 ...

  9. Redis在新浪微博中的应用

    Redis简介 1. 支持5种数据结构 支持strings, hashes, lists, sets, sorted sets. string是很好的存储方式,用来做计数存储.sets用于建立索引库非 ...

最新文章

  1. 在Putty或mRemote下输入和显示中文
  2. SPI FLASH 分区情况
  3. python的深造方向_自动化深造方向有哪些?
  4. python动态柱状图_Python+matplotlib绘制动态更新的柱状图
  5. php批量添加excel数据库表,php 把excel批量导入到数据库代码
  6. 《Windows via C/C++》学习笔记 —— 内核对象的“线程同步”之“信号量”
  7. Python 访问限制 private public
  8. Django+Bootstrap+Mysql 搭建个人博客(一)
  9. 三星 c5 pro android 7,三星C5 Pro安卓8.0系统内测开启
  10. 如何搜索视频和字幕?
  11. 智能控制器在风机及水泵中的应用
  12. 广州传智播客.net一期训练营学习感悟(一)求学之路
  13. 《读书是一辈子的事》上篇 认识自己
  14. Javaweb基础-servlet应用1
  15. 怎么修改云服务器数据库权限设置,怎么修改云服务器数据库权限
  16. 利用ffmepg下载在线视频文件
  17. 从零开始的计算机学习
  18. ​ 谁说 14 英寸没有好屏幕 — MateBook 14 评测
  19. 利用python进行体重指数计算
  20. [工作效率提升]焦虑性失眠的应对方法

热门文章

  1. Phonegap之ios对iPhone6和Plus的闪屏适配 -- xmTan
  2. 抖音上用计算机表白,抖音最火表白句子
  3. c语言给数组赋值 报错,请教为什么给数组赋值会报错
  4. 腾讯出行在微信内测试打车功能;​微软Teams全球宕机数小时后恢复正常;iOS 15.6 修复显示储存空间已满问题|极客头条...
  5. 抖音修改昵称服务器升级,抖音修改昵称已达上限,抖音昵称一天可以改多少次...
  6. Vivo 华为设备 AudioManager做了什么
  7. i5-10400H怎么样?相当于什么水平
  8. xlrd API中文文档
  9. 监控摄像机选型攻略之技术类型选用
  10. Unity借助Eclipse导Jar包接入QQ登录SDK