1
所以我在我的網站上有一個切換菜單,當我點擊它打開它時,頁面會自動滾動。我不知道該怎麼做。你能幫我停止自動滾動嗎?非常感謝!!當點擊切換菜單時頁面向下滾動
如果您沒有看到自動滾動,請嘗試添加一些文本,以便頁面可以滾動,然後您會看到它如何向下滾動。
// TOGGLE MENU
var theToggle = document.getElementById('toggle');
function hasClass(elem, className) {
return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');
}
function addClass(elem, className) {
if (!hasClass(elem, className)) {
elem.className += ' ' + className;
}
}
function removeClass(elem, className) {
var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' ';
if (hasClass(elem, className)) {
while (newClass.indexOf(' ' + className + ' ') >= 0) {
if (window.CP.shouldStopExecution(1)) {
break;
}
newClass = newClass.replace(' ' + className + ' ', ' ');
}
elem.className = newClass.replace(/^\s+|\s+$/g, '');
window.CP.exitedLoop(1);
}
}
function toggleClass(elem, className) {
var classes = elem.className.split(' ');
var i = classes.indexOf(className);
if(i == -1)
classes.push(className);
else
classes.splice(i,1);
elem.className = classes.join(' ');
}
theToggle.addEventListener("click", function(){
toggleClass(this, 'on');
return false;
});
#toggle {
display: block;
width: 28px;
height: 30px;
position:fixed;
top:35px;
left:30px;
}
#toggle span:after, #toggle span:before {
content: "";
position: absolute;
left: 0;
top: -9px;
}
#toggle span:after {
top: 9px;
}
#toggle span {
position: relative;
display: block;
}
#toggle span, #toggle span:after, #toggle span:before {
width: 100%;
height: 4px;
background-color: #000;
transition: all 0.3s;
backface-visibility: hidden;
border-radius: 0px;
}
/* on activation */
#toggle.on span {
background-color: transparent;
}
#toggle.on span:before {
transform: rotate(45deg) translate(5px, 5px);
}
#toggle.on span:after {
transform: rotate(-45deg) translate(7px, -8px);
}
#toggle.on + #menu {
opacity: 1;
visibility: visible;
transition: opacity .4s;
}
/* menu appearance*/
#menu {
position: absolute;
color: #999;
width: 100%;
margin: auto;
text-align: center;
background: white;
opacity: 0;
visibility: hidden;
transition: opacity .4s;
margin-top:75px;
font-weight:700;
text-decoration:none;
text-transform:uppercase;
color: #000;
}
#menu:after {
position: absolute;
top: -15px;
left: 95px;
content: "";
display: block;
border-left: 15px solid transparent;
border-right: 15px solid transparent;
transition: opacity .4s;
}
#menu ul, #menu li, #menu li a {
list-style: none;
display: block;
margin: 0;
padding: 0;
}
#menu li a {
padding: 15px;
color: #888;
text-decoration: none;
font-weight:700;
text-decoration:none;
text-transform:uppercase;
color: #000;
}
#menu li a:hover, #menu li a:focus {
background: #000;
color: #fff;
}
<div class="mobile">
<a href="#menu" id="toggle"><span></span></a>
<div id="menu">
<ul>
<li><a href="/">News</a></li>
<li><a href="/zara/">Biografia</a></li>
<li><a href="/zara/discografia/">Discografia</a></li>
<li><a href="/sito/">Zara Larsson Italia</a></li>
<li><a href="/contatti/">Contattaci</a></li>
</ul>
</div>
</div>
我有一個理論。 ['visibility'](https://developer.mozilla.org/en/docs/Web/CSS/visibility)不顯示該元素,但仍會影響其他元素。 _「該框是不可見的(完全透明,沒有任何繪製),但仍然影響佈局。」_當「visibility」更新時(從「visible」到「hidden」,反之亦然),元素(大於屏幕高度)是'重繪',所以它推動滾動頁面的底部。嘗試使用'display:none'和'display:block',所以它不影響頁面佈局 –
@MatheusAvellar它仍然滾動:/ – gab
嗯,是的,但現在它只在你打開菜單時滾動!噹噹!是的,這不是一個解決方案,更多的是提示,因此我只將它作爲評論發佈。對於那個很抱歉!我會盡量想一個很好的解決方案 –