屏幕上打开内容时的手风琴焦点

时间:2016-03-14 11:28:35

标签: javascript jquery html css

我在这个问题中提出了一个问题的例子:https://jsfiddle.net/kLh8r294/2/

这是javascript:

$(document).ready(function() {
    function close_accordion_section() {
        $('.accordion .accordion-section-title').removeClass('active');
        $('.accordion .accordion-section-content').slideUp(1000).removeClass('open');
    }

    $('.accordion-section-title').click(function(e) {
        // Grab current anchor value
        var currentAttrValue = $(this).closest('.accordion-section-title');

        if(currentAttrValue.hasClass('active')) {
            close_accordion_section();
        }else {
            close_accordion_section();

            // Add active class to section title
            currentAttrValue.addClass('active');
            // Open up the hidden content panel
            $('.accordion ' + currentAttrValue.attr('href')).slideDown(1000).addClass('open'); 
        }

        e.preventDefault();
    });
});

休息是在jsfiddle。

当我打开手风琴并且内容很多时,内容会滚动屏幕。现在我举了一个例子"第一个"和"最后一个"。

我想让焦点保持在手风琴的标题上,例如当它打开时,所以当内容离开屏幕时,用户仍然有点击的手风琴的开始焦点。如果它有点偏离手风琴的焦点,它应该平滑地滚动到它,而不是一次跳跃。

是否有任何内置的jquery或javascript可以使用? 我正在学习所有这些,所以任何帮助都会得到满足或洞察力。

2 个答案:

答案 0 :(得分:1)

最简单的选择可能是JS中的最后一行:

document.getElementById("yourTargetSelector").scrollIntoView();

或:

document.getElementById(this).scrollIntoView();

答案 1 :(得分:0)

为了平滑滚动,您可以使用scrollTo功能。请参考以下链接:

jQuery scroll to element