jquery可获取文本框最初光标停留位置插件

所属分类: 网页特效-其它&杂项    2023-10-25 11:43:41

jquery可获取文本框最初光标停留位置插件 ie兼容6
反馈问题  查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

jquery可获取文本框最初光标停留位置插件(共2个文件)

    • jquery.caret.js
    • index.html

使用方法

(function($) {
  function focus(target) {
    if (!document.activeElement || document.activeElement !== target) {
      target.focus();
    }
  }

  $.fn.caret = function(pos) {
    var target = this[0];
    var isContentEditable = target && target.contentEditable === 'true';
    if (arguments.length == 0) {
      //get
      if (target) {
        //HTML5
        if (window.getSelection) {
          //contenteditable
          if (isContentEditable) {
            focus(target);
            var selection = window.getSelection();
            // Opera 12 check
            if (!selection.rangeCount) {
              return 0;
            }
            var range1 = selection.getRangeAt(0),
                range2 = range1.cloneRange();
            range2.selectNodeContents(target);
            range2.setEnd(range1.endContainer, range1.endOffset);
            return range2.toString().length;
          }
          //textarea
          return target.selectionStart;
        }
        //IE<9
        if (document.selection) {
          focus(target);
          //contenteditable
          if (isContentEditable) {
              var range1 = document.selection.createRange(),
                  range2 = document.body.createTextRange();
              range2.moveToElementText(target);
              range2.setEndPoint('EndToEnd', range1);
              return range2.text.length;
          }
          //textarea
          var pos = 0,
              range = target.createTextRange(),
              range2 = document.selection.createRange().duplicate(),
              bookmark = range2.getBookmark();
          range.moveToBookmark(bookmark);
          while (range.moveStart('character', -1) !== 0) pos++;
          return pos;
        }
        // Addition for jsdom support
        if (target.selectionStart)
          return target.selectionStart;
      }
      //not supported
      return;
    }
    //set
    if (target) {
      if (pos == -1)
        pos = this[isContentEditable? 'text' : 'val']().length;
      //HTML5
      if (window.getSelection) {
        //contenteditable
        if (isContentEditable) {
          focus(target);
          window.getSelection().collapse(target.firstChild, pos);
        }
        //textarea
        else
          target.setSelectionRange(pos, pos);
      }
      //IE<9
      else if (document.body.createTextRange) {
        if (isContentEditable) {
          var range = document.body.createTextRange();
          range.moveToElementText(target);
          range.moveStart('character', pos);
          range.collapse(true);
          range.select();
        } else {
          var range = target.createTextRange();
          range.move('character', pos);
          range.select();
        }
      }
      if (!isContentEditable)
        focus(target);
    }
    return this;
  }
})(jQuery);

站长提示:
1. 平台上所有素材资源,需注册登录会员方能正常下载。
2. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励20K币
3. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
4. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / 其它&杂项

jquery跟随鼠标移动的垂直滚动进度条特效代码

一个跟随鼠标移动的垂直进度条插件,其百分比值始终位于光标后面,当滚动网页时实时显示当前百分比进度。
  其它&杂项
 281  

jquery轻量级文本文字高亮提示插件

一款响应式文字提示特效,支持使用箭头、鼠标单击空白处或空格键滚动即可触发。
  其它&杂项
 142  

jquery实用的日历插件代码

选择指定日期有回调弹窗,可前后切换月份及年份,非常实用!
  其它&杂项
 126  

jquery可动态添加无限多个自定义元素插件

一款动态添加多个元素插件,可添加随机背景颜色标签或自定义文本内容,非常实用。
  其它&杂项
 121  

评论数(0) 回复有机会获得K币 用户协议

^_^ 还没有人评论,快来抢个沙发!
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论