我有一个带有单个 Foundation 6 Reveal 模式的登录页面。模式包含页面的联系表。因此,该模式可以由出现在页面不同位置的几个按钮触发。所有按钮都应打开相同的“联系表格”模式。
单击任何按钮确实可以毫无问题地打开模式。但是,当我们关闭模态框时——无论是通过单击模态框内的“关闭”按钮,还是通过按键盘上的“Esc”键——页面会自动滚动到页面上最后一个按钮的位置,该按钮是触发模态的。似乎在“关闭”时,模式会强制视口滚动到 DOM 中的最后一个触发器!
显然,这是不受欢迎的行为 - 因为大多数时候访问者不会通过单击最后一个按钮来打开模式......
此 CodePen 说明了此问题: https ://codepen.io/icouto/pen/QgJzoJ
代码摘要:
<!-- first trigger button -->
<p><button id="btn1" class="button" data-open="exampleModal1">Click me for a modal</button></p>
<!-- lots of filler text to make the page long -->
<p>lorem ipsum dolor sit amet, etc. etc. etc. </p>
<!-- second trigger button -->
<p><button id="btn2" class="button" data-open="exampleModal1">Click me for a modal</button></p>
<!-- modal window -->
<div class="reveal" id="exampleModal1" data-reveal>
<h1>Awesome. I Have It.</h1>
<p class="lead">Your couch. It is mine.</p>
<p>I'm a cool paragraph that lives inside of an even cooler modal. Wins!</p>
<button class="close-button" data-close aria-label="Close modal" type="button">
<span aria-hidden="true">×</span>
</button>
</div>
如果您单击顶部按钮打开模态,然后关闭模态,您将自动被带到页面底部...
我在做一些明显错误的事情吗?有什么我错过的吗?是否有一种解决方法,不涉及在每个触发器旁边放置多个模态副本?
任何指导表示赞赏!