简体   繁体   English

更改手风琴滑块以向上滚动而不是向下滚动

[英]Change Accordion Slider to scroll up rather than down

I have managed to create an accordion slider thanks to the following link: 由于以下链接,我设法创建了一个手风琴滑块:

w3schools.com w3schools.com

and I was wondering if it's possible to change the accordion slider to scroll the content above the button (from the top) rather than below the button. 我想知道是否可以更改手风琴滑块以将内容滚动到按钮上方(从顶部)而不是按钮下方。 What I have created can be seen at the following: 在下面可以看到我创建的内容:

s116169771.websitehome.co.uk s116169771.websitehome.co.uk

but when looking through the javascript, I can't see anything specific that will allow me to make this change. 但是在浏览javascript时,看不到任何允许我进行此更改的特定内容。

To be fair, I am not sure if this is something that can be done with this particular code or if this would have to be written separately but any advice would be really appreciated. 公平地说,我不确定这是否可以使用此特定代码来完成,还是不确定是否必须单独编写,但任何建议都将不胜感激。

Current JS Code 当前的JS代码

<script>
var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
    acc[i].onclick = function(){
        this.classList.toggle("active");
        this.nextElementSibling.classList.toggle("show");
  }
}
</script>

Thanks in advanced. 提前致谢。

Move the corresponding button under the div panel that you want it to show 在您要显示的div面板下移动相应的按钮

<div class="panel">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat.</p>
</div>
<button class="accordion">Section 3</button>

then switch the Javascript command from : 然后从切换Javascript命令:

this.nextElementSibling.classList.toggle("show");

to: 至:

this.previousElementSibling.classList.toggle("show");

Move the divs above the buttons instead 将div移至按钮上方

and then change this: nextElementSibling to: previousElementSibling 然后将其:nextElementSibling更改为:previousElementSibling

<h2>Accordion</h2>
<div class="panel">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<button class="accordion">Section 1</button>

<div class="panel">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<button class="accordion">Section 2</button>
<div class="panel">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<button class="accordion">Section 3</button>

<script>
var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
    acc[i].onclick = function(){
        this.classList.toggle("active");
        this.previousElementSibling.classList.toggle("show");
  }
}
</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM