向下滚动页面加载

时间:2013-10-18 13:24:45

标签: javascript jquery html

我需要在页面加载时向下滚动约50px。这就是我正在使用的:

$(window).load(function(){
    $("html,body").scrollTop(55);
});

我也试过了:

scrollTo(0,55)

这在Firefox和IE中运行良好,但是在Chrome,Safari和Opera中它向下滚动到正确的位置,然后跳回到顶部(或最后一个滚动位置)。

我也尝试使用元素id向下滚动,但浏览器仍会覆盖它。我试过这样:

htttp://website.com#element

6 个答案:

答案 0 :(得分:4)

我认为你的问题是你正在使用$(window).load,而且有些浏览器遇到问题,因为事情已经完全渲染了。尝试交换

$(document).ready(function(){
    $("html,body").scrollTop(55);
});

似乎在所有浏览器中都可以正常使用http://jsfiddle.net/7jwRk/1/

信息

<强> $(文件)。就绪

在加载HTML文档并且DOM准备就绪时执行

<强> $(窗口).load

在完整页面完全加载时执行,包括所有帧,对象和图像

答案 1 :(得分:2)

您可以使用scrollIntoView()函数。大多数浏览器(甚至IE6)都支持此功能。

document.getElementById('header').scrollIntoView()

答案 2 :(得分:1)

public class MainActivity extends AppCompatActivity {

    EditText ed1,ed2,ed3;
    String edtv1,edtv2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ed1= (EditText) findViewById(R.id.editText);
        ed2= (EditText) findViewById(R.id.editText2);
        ed3= (EditText) findViewById(R.id.editText3);
        final TextView tv = (TextView) findViewById(R.id.textView);


        final String sentence = tv.getText().toString();


        if (ed1 != null) {
            ed1.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                }

                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {

                }

                @Override
                public void afterTextChanged(Editable s) {

                    tv.setText(String.format("%s_", sentence.replace("__", "_" + s.toString())));
                }
            });
            edtv1 = ed1.getText().toString();

        }
        if (ed2 != null) {
            ed2.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                }

                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {

                }

                @Override
                public void afterTextChanged(Editable s) {

                    tv.setText(String.format("%s_", sentence.replace("__", "_" + s.toString())));
                }
            });
            edtv2 = ed2.getText().toString();

        }


    }
}

将id =“123”添加到任何<script type="text/javascript"> $(document).ready(function(){ var divLoc = $('#123').offset(); $('html, body').animate({scrollTop: divLoc.top}, "slow"); }); </script> ,它会在页面加载时自动向下滚动。

如果前一个脚本不起作用,这是另一个脚本!

<div>

将id =“fixed”添加到任何 <script> window.setInterval(function() { var elem = document.getElementById('fixed'); elem.scrollTop = elem.scrollHeight; }, 3000); </script> ,它会在页面加载时自动向下滚动。

答案 3 :(得分:0)

或者,只需在身体末端开火:

...
    <script type="text/javascript">
        $("html,body").scrollTop(55);
    </script>
</body>
</html>

答案 4 :(得分:0)

在弄乱 scrollIntoView() 并在页面绘制时观察它正确滚动后,然后无缘无故地捕捉到顶部,我选择了这个:

http://website.com/#target

<a name="target">

然后浏览器准确地理解我需要什么并执行它。但我只能这样做,因为我们控制了 URI,所以它自然也不会在所有情况下都有效。

答案 5 :(得分:-1)

如果使用2台显示器,请确保在打开浏览器窗口并在其中执行脚本的页面时,不要将窗口移到另一台具有不同屏幕分辨率的显示器上。不久:不要将浏览器的窗口跨过其他显示器,只需为每个显示器/屏幕分辨率打开浏览器的新窗口即可。