<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 18,  comments - 0,  trackbacks - 0

    //=======================================
    //功能: 滾動文本框精確位置定位
    //輸入參數:
    //?self ??滾動文本框對象
    //?_startLine ?開始行數
    //?_endLine ?結束行數
    //?_startPoint 開始行數的開始位置
    //?_endPoint ?結束行數的結束位置
    //調用方法:
    //?①同一行,從開始位置到結束位置:
    //?? selToLinePoint(self, 2, 2, 0/1, 0)
    //?②不同一行,從某一開始位置到結束位置:
    //?? selToLinePoint(self, 2, 4, 3, 0)
    //?③不同一行,從某一開始位置到某一結束位置:
    //?? selToLinePoint(self, 2, 4, 3, 9)
    //=======================================
    function selToLinePoint(self, _startLine, _endLine, _startPoint, _endPoint, _len){
    ?var src = self;
    ?var oTR = self.createTextRange();
    ?var text = self.innerText;
    ?var textLength = text.length;
    ?
    ?conts = [0];
    ?startx = src.createTextRange().getClientRects()[0].left;
    ?starty = src.createTextRange().getClientRects()[0].top;
    ?stepy = 3; ??//光標向下移動的步長,不能大于textarea中的字高
    ?currentScr = 0; ?//當前滾動條位置
    ?stepScr = 30; ?//滾動條向下滾動的步長,不能大于textarea的高度
    ?
    ?while(1){
    ??src.scrollTop = currentScr
    ??currenty = starty
    ??while(1){ //光標從textarea內容的開頭開始向下移動,遍歷各行,在conts[]中記下各換行位置
    ???oTR.moveToPoint(startx, currenty)
    ???oTR.moveEnd("character", textLength)
    ???var _oTR_Line_Length = oTR.text.length;
    ???cont = textLength - _oTR_Line_Length;
    ???if (cont >= textLength){
    ????break
    ???}
    ???if (cont>conts[conts.length - 1]){
    ????conts[conts.length] = cont
    ???}
    ???currenty += stepy
    ??}
    ??if (currentScr >= src.scrollHeight){
    ???break
    ??}
    ??currentScr += stepScr;
    ?}
    ?
    ?if (_endLine == "")
    ??_endLine = _startLine;
    ?_startLine = parseInt(_startLine);
    ?_endLine = parseInt(_endLine);
    ?
    ?if (isFinite(_startLine) && isFinite(_endLine) && _startLine > 0 && _endLine > 0){
    ??//檢查參數有效性
    ??if (_startLine > conts.length || _endLine > conts.length){
    ???alert("總共只有" + conts.length + "行,請檢查后重試。");
    ???return;
    ??}
    ??
    ??//如果結束行在開始行之前,強行調整參數
    ??if (_endLine < _startLine){
    ???_endLine = _startLine;
    ???end.value = _endLine;
    ??}
    ??
    ??src.scrollTop = 0;
    ??oTR.moveToPoint(startx, starty); ?//光標回到textarea內容的開頭
    ??st = conts[_startLine - 1];
    ??
    ??if (st > _startPoint){
    ???st = st + _startPoint;
    ??}else{
    ???var _rightTextLen = 0;
    ???for (var m = 0; m < conts.length; m++){
    ????if (conts[m] < _startPoint){
    ?????_rightTextLen = _startPoint - conts[m];
    ?????st = _startPoint - _rightTextLen;
    ?????if (_endLine == _startLine){
    ??????_endLine++;
    ?????}
    ????}else{
    ?????break;
    ????}
    ???}

    ???if (st + _rightTextLen < textLength){
    ????st = st + _rightTextLen;
    ???}
    ?????
    ??}
    ??
    ??texpreStart = text.substr(0, st);
    ??texpreStart = text.substr(0, st).replace(/\r/g, ""); //自textarea內容的開頭至選擇起點前的字串,由于moveStart方法將\r\n視為一個字符,需要修正計數
    ??
    ??st = texpreStart.length;
    ??oTR.moveStart("character", st);
    ??en = textLength;
    ??if (_endLine < conts.length){
    ???en = conts[_endLine];
    ???if (_endPoint > 0){
    ????var laLineLen = conts[_endLine] - conts[_endLine -1];
    ????en = en - laLineLen + _endPoint;
    ???}
    ??}
    ??texpreEnd = text.substr(0, en).replace(/\r/g,"") //自textarea內容的開頭至選擇結束點前的字串,由于moveEnd方法將\r\n視為一個字符,需要修正計數
    ??en = texpreEnd.length
    ??var _endX = en - st;
    ??oTR.moveEnd("character", _endX);
    ??oTR.select();
    ?}
    ?
    }

    posted on 2007-03-16 15:47 LORD BLOG 閱讀(572) 評論(0)  編輯  收藏 所屬分類: 項目筆記
    主站蜘蛛池模板: 亚洲精品一区二区三区四区乱码 | 亚洲电影免费观看| 香蕉免费看一区二区三区| 亚洲中文字幕无码专区| 免费精品视频在线| 亚洲AV无码乱码在线观看性色扶 | 亚洲精品国产精品乱码视色| 国产免费人成视频尤勿视频| 久久久久亚洲精品中文字幕| 精品多毛少妇人妻AV免费久久| 精品亚洲视频在线观看| 中国极品美軳免费观看| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲色大成网站WWW国产| 最近中文字幕无吗免费高清 | 亚洲国产日产无码精品| 亚洲精品一级无码鲁丝片| 一级做a爰片久久毛片免费陪| 亚洲综合色丁香麻豆| 成人a毛片免费视频观看| 亚洲毛片网址在线观看中文字幕 | 亚洲人成77777在线观看网| 一个人免费观看视频www| 亚洲人成电影网站色www| 国产成人涩涩涩视频在线观看免费| 亚洲AV成人精品一区二区三区| 亚洲 国产 图片| 99精品视频免费| 亚洲第一页中文字幕| 成人免费视频一区| 人禽伦免费交视频播放| 国产成人无码综合亚洲日韩| 69视频免费观看l| 国产99久久亚洲综合精品| 亚洲毛片αv无线播放一区| 222www在线观看免费| 亚洲av第一网站久章草| 国产偷v国产偷v亚洲高清| av无码国产在线看免费网站| 在线亚洲v日韩v| 久久亚洲AV成人无码|