为了账号安全,请及时绑定邮箱和手机立即绑定

如何转到页面上的特定元素?

如何转到页面上的特定元素?

慕标琳琳 2019-07-30 11:14:46
如何转到页面上的特定元素?在我的HTML页面上,我希望能够“转到”/“滚动到”/“关注”页面上的元素。通常情况下,我会使用带有a的锚标记href="#something",但我已经使用hashchange事件和BBQ插件来加载此页面。那么有没有其他方法,通过JavaScript,让页面转到页面上的给定元素?这是我正在尝试做的基本概述:function focusOnElement(element_id) {     $('#div_' + element_id).goTo(); // need to 'go to' this element}<div id="div_element1">   yadda yadda </div><div id="div_element2">   blah blah</div><span onclick="focusOnElement('element1');">Click here to go to element 1</span><span onclick="focusOnElement('element2');">Click here to go to element 2</span>
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

插件形式的标准技术看起来像这样:

(function($) {
    $.fn.goTo = function() {
        $('html, body').animate({
            scrollTop: $(this).offset().top + 'px'
        }, 'fast');
        return this; // for chaining...
    }})(jQuery);

然后你可以说$('#div_element2').goTo();滚动到<div id="div_element2">。选项处理和可配置性留给读者练习。


查看完整回答
反对 回复 2019-07-30
?
慕慕森

TA贡献1856条经验 获得超17个赞

如果元素当前在页面上不可见,则可以使用本机scrollIntoView()方法。

$('#div_' + element_id)[0].scrollIntoView( true );

其中的true意思是与页面顶部对齐,并false与底部对齐。

否则,有一个scrollTo()插件的jQuery就可以使用。

或者只是得到top position()(文档)的元素,并设置scrollTop()(文档)到该位置:

var top = $('#div_' + element_id).position().top;$(window).scrollTop( top );


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 545 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信