2016-07-18 3 views
0

Я знаком с jQuery, но не с Javascript. У меня есть функция аккордеона в javascript, в которой мне нужна панель аккордеона, чтобы прокручивать ее до верхней части открытой панели. Прямо сейчас он прокручивается к нижней части панели при открытии. Вот функция щелчка, с которой я работаю ... Спасибо заранее!Аккордеон должен прокручиваться до вершины при открытии Javascript

myAPP.AccordionPanel = function (headingEl, panelHolder, index) { 
// The AccordionPanel Class controls each of the collapsable panels spawned from Accordion Class 
var self = this; 

this.panelHolder = panelHolder; 
this.index = index; 
this.headingEl = headingEl; // this is the clickable heading 
this.contentEl = headingEl.nextElementSibling;//headingEl.querySelector(this.panelHolder.panelSelectors['content']); 
this.isSelected = false; 

this.setupAccessibility(); 

this.headingEl.addEventListener("click", function() { 

    if (self.isSelected){ 
     self.unselect(); // already open, presume user wants it closed 
    } 
    else { 
     self.panelHolder.resetPanels(); // close all panels 
     self.select(); // then open desired panel   
    } 

    return false; 
}); 

return this; 

};

ответ

0

У вас есть доступ к элементу, который вы нажимаете, вы можете вызвать функцию, как показано ниже, чтобы перейти к ней. если вещь, которую вы нажимаете, не так, вам понадобится ссылка.

функция освобождения здесь - http://itnewb.com/tutorial/Creating-the-Smooth-Scroll-Effect-with-JavaScript

function elmYPosition(eID) { 
    var elm = document.getElementById(eID); 
    var y = elm.offsetTop; 
    var node = elm; 
    while (node.offsetParent && node.offsetParent != document.body) { 
     node = node.offsetParent; 
     y += node.offsetTop; 
    } return y; 
} 

scrollTo(0, elmYPosition('idstring')); 

//html 

<div id="idstring">scroll to me</div> 
+0

Отлично! Я добавил немного к офису, чтобы он не работал под моей липкой навигацией, и он отлично работал. Благодаря! – user3038672

Смежные вопросы