2016-07-18 20 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

関連する問題