关于滚动条的问题

时间:2023-01-26 22:44:28
我在文本中实现了根据文本框查找页面内容,但是如果查找到的内容需要滚动条滚动以后才能找到,那么再次查找前面的时候总是显示查找到的后面一行。 

1
2   滚
3   动
4   条
5
6
7
8

比如说先查找到8,再查找1的时候,滚动条停在2那一行

9 个解决方案

#1


路过帮你顶一下

#2


js可以实现,没时间写

#3


顶,路过

#4


顶,路过

#5


初始值定位0,而不是1.
帮你顶一下。

#6


初始值定位0,而不是1.
帮你顶一下。

#7


没试过...也帮你顶一下

#8


java Swing 

see see

/**
 * @(#)ProgressTest.java
 *
 *
 * @author 张栋芳QQ271536394
 * @version 1.00 2008/3/13
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JProgressBar;
public class ProgressTest extends JDialog{
public JProgressBar jpb;
public  int Max=100;
public  int Min=0;
public  int Count=1;
public JButton bStart;


    public ProgressTest() {
       
    
     Container con=(JPanel)this.getContentPane();
     con.setLayout(null);
     bStart=new JButton("开始");
     bStart.setBounds(10,10,70,30);
     bStart.addActionListener(new MyActionListener());
    
     jpb=new JProgressBar();
     jpb.setBounds(80,20,300,20);
     jpb.setMaximum(Max);
     jpb.setMinimum(Min);
     jpb.setAutoscrolls(true);
     jpb.setStringPainted(true);//进度字
     //jpb.setValue(50);
     con.add(bStart);
     con.add(jpb);
     this.setSize(400,300);
     this.setTitle("进度条的小程序");
     this.setLocationRelativeTo(this);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     this.setVisible(true);
    
    }
    public static void main(String[] args){
     ProgressTest test=new ProgressTest();
    }
    private class MyActionListener implements ActionListener{
     public void actionPerformed(ActionEvent e){
     if(e.getSource().equals(bStart)){
     System.out.println ("ok");
         UpThread thread=new UpThread();
     thread.start();
     }
     }
    }
    
class UpThread extends Thread{
public UpThread(){

}
    public void run(){
     Count=Min;
     while(Count<=Max){
     Count++;
         jpb.setValue(Count);
     try{
     if(Count<40){
     this.sleep(50);
     }
     if(Count>=40&&Count<70){
     this.sleep(200);
     }
     if(Count>=70){
     this.sleep(50);
     }
    
     }catch(Exception ae){
     ae.printStackTrace();
     }
     }
    
    
    }
}

}

#9


var NS4 = (document.layers);       
var IE4 = (document.all);   
var win = window;         
var n = 0;   
function findInPage(str) {   
    var txt, i, found;   
    
    document.getElementById("body").scrollTop=0;    //控制Div的滚动条滚动到最顶端 
    if(str == "")   
return false;  
       
    if(IE4){    
      txt = win.document.body.createTextRange();   

      for(i = 0; i <= n && (found = txt.findText(str)) != false; i++){   
          txt.moveStart("character", 1);   
          txt.moveEnd("textedit");   
      }   

      if(found){   
         txt.moveStart("character", -1);   
         txt.findText(str);   
         txt.select();   
         txt.scrollIntoView();   
         n++;   
      } else {   
         if (n > 0){   
             n = 0;   
             findInPage(str);   
         }   
         else   
             alert("没有找到匹配内容!");   
      }
         
    }

    if(NS4){ 
        
        if(!win.find(str))   
         while(win.find(str, false, true))   
          n++;   
        else   
         n++;  
         
        if(n == 0)   
         alert("没有找到匹配内容!");   
}
    
    return false;   
}   

//响应回车键
function input_onkeypress() {

if(event.keyCode == 13){
return findInPage(form1.REG_NAME.value);
}

}  

#1


路过帮你顶一下

#2


js可以实现,没时间写

#3


顶,路过

#4


顶,路过

#5


初始值定位0,而不是1.
帮你顶一下。

#6


初始值定位0,而不是1.
帮你顶一下。

#7


没试过...也帮你顶一下

#8


java Swing 

see see

/**
 * @(#)ProgressTest.java
 *
 *
 * @author 张栋芳QQ271536394
 * @version 1.00 2008/3/13
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JProgressBar;
public class ProgressTest extends JDialog{
public JProgressBar jpb;
public  int Max=100;
public  int Min=0;
public  int Count=1;
public JButton bStart;


    public ProgressTest() {
       
    
     Container con=(JPanel)this.getContentPane();
     con.setLayout(null);
     bStart=new JButton("开始");
     bStart.setBounds(10,10,70,30);
     bStart.addActionListener(new MyActionListener());
    
     jpb=new JProgressBar();
     jpb.setBounds(80,20,300,20);
     jpb.setMaximum(Max);
     jpb.setMinimum(Min);
     jpb.setAutoscrolls(true);
     jpb.setStringPainted(true);//进度字
     //jpb.setValue(50);
     con.add(bStart);
     con.add(jpb);
     this.setSize(400,300);
     this.setTitle("进度条的小程序");
     this.setLocationRelativeTo(this);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     this.setVisible(true);
    
    }
    public static void main(String[] args){
     ProgressTest test=new ProgressTest();
    }
    private class MyActionListener implements ActionListener{
     public void actionPerformed(ActionEvent e){
     if(e.getSource().equals(bStart)){
     System.out.println ("ok");
         UpThread thread=new UpThread();
     thread.start();
     }
     }
    }
    
class UpThread extends Thread{
public UpThread(){

}
    public void run(){
     Count=Min;
     while(Count<=Max){
     Count++;
         jpb.setValue(Count);
     try{
     if(Count<40){
     this.sleep(50);
     }
     if(Count>=40&&Count<70){
     this.sleep(200);
     }
     if(Count>=70){
     this.sleep(50);
     }
    
     }catch(Exception ae){
     ae.printStackTrace();
     }
     }
    
    
    }
}

}

#9


var NS4 = (document.layers);       
var IE4 = (document.all);   
var win = window;         
var n = 0;   
function findInPage(str) {   
    var txt, i, found;   
    
    document.getElementById("body").scrollTop=0;    //控制Div的滚动条滚动到最顶端 
    if(str == "")   
return false;  
       
    if(IE4){    
      txt = win.document.body.createTextRange();   

      for(i = 0; i <= n && (found = txt.findText(str)) != false; i++){   
          txt.moveStart("character", 1);   
          txt.moveEnd("textedit");   
      }   

      if(found){   
         txt.moveStart("character", -1);   
         txt.findText(str);   
         txt.select();   
         txt.scrollIntoView();   
         n++;   
      } else {   
         if (n > 0){   
             n = 0;   
             findInPage(str);   
         }   
         else   
             alert("没有找到匹配内容!");   
      }
         
    }

    if(NS4){ 
        
        if(!win.find(str))   
         while(win.find(str, false, true))   
          n++;   
        else   
         n++;  
         
        if(n == 0)   
         alert("没有找到匹配内容!");   
}
    
    return false;   
}   

//响应回车键
function input_onkeypress() {

if(event.keyCode == 13){
return findInPage(form1.REG_NAME.value);
}

}