【发布时间】:2017-11-24 23:39:47
【问题描述】:
我正在构建一个小项目,在这里我已经得到了很多答案,所以提前谢谢你。
我现在的问题是让锚标记在移动设备上工作。 锚标签似乎在桌面设备上运行良好,但是当我尝试在 iPhone 上单击它们时,我没有得到任何结果。
编辑:更好地解释(感谢 Andrei Gheorghiu 的建议): 如果我在台式计算机等设备上打开 codepen,导航栏按预期工作:它在到达@media 查询断点时折叠,在宽度
我尝试了 Andrei Gheorghiu 的两个建议,但它们并没有解决问题,至少在我的手机上(非常感谢,仍然如此!)。我真的认为这个问题与锚标签有关,因为删除处理滚动的 javascript 并将锚标签 href 直接与简单的 ID 链接也不起作用。
有什么帮助吗? 我正在使用 bootstrap 4,codepen 在这里:https://codepen.io/diegomengue/pen/VWWjpj。
HTML:
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<nav class='navbar navbar-inverse navbar-toggleable-sm mx-auto sticky-top'>
<button class="navbar-toggler collapsed mx-auto" type="button" data-toggle="collapse" data-target="#navbarNav" aria-expanded="false" aria-controls="navbarNav" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbarNav">
<ul class='navbar-nav mx-auto'>
<li class='nav-item mx-auto'><a href='#' id='inicioMenu' class='nav-link'><strong>Diego Mengue</strong></a></li>
<li class='nav-item mx-auto'><a href='#' id='portfolioMenu' class='nav-link'>Portfólio</a></li>
<li class='nav-item mx-auto'><a href='#' id='contatoMenu' class='nav-link'>Contato</a></li>
</ul>
</div>
</nav>
</body>
CSS:
body {
background-color: #EAEDFB;
color: white;
font-size: 20px;
.navbar{
background-color: #6F7ECC;
top: 0.5em;
width: 74%;
}
li {
padding: 0.3em 0.3em 0.3em 0.3em;
margin: 0 0.3em 0 0.3em;
}
a {
color: white;
pointer-events: auto;
}
a:link {
color: white;
text-decoration: none;
}
a:visited {
color: white;
text-decoration: none;
}
a:hover {
color: #D9DDF3;
text-decoration: none;
}
a:active {
color: white;
text-decoration: none;
}
form {
margin-bottom: 0.5em;
}
h1 {
font-size: 3em;
}
h2 {
font-size: 2.5em;
}
h4 {
font-size: 1.5em;
}
h5 {
font-size: 1.5em;
margin-bottom: 0.5em;
}
p {
font-size: 1em;
}
.vertical-align {
display: flex;
align-items: center;
}
#icone {
width: 2.5em;
margin: 0 0.6em 0 0.6em;
}
hr {
background-color: white;
}
h1, h2 {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
#divPortfolio {
height: 800px;
}
.text-right {
margin-right: 0.3em;
}
footer {
background-color:#6F7ECC;
width: 74%;
text-align: center;
}
::-webkit-input-placeholder {
font-size: 1em!important;
}
:-moz-placeholder { /* Firefox 18- */
font-size: 1em!important;
}
::-moz-placeholder { /* Firefox 19+ */
font-size: 1em!important;
}
@media screen and (min-width: 0px) {
body {font-size: 10px;}
.navbar {font-size:1.2em;}
footer {font-size: 0.6em; height: 5em; padding-top: 1.4em;}
h4 {margin-top: 1em;}
}
@media screen and (min-width: 768px) {
body {font-size: 13px;}
.navbar {font-size: 1.2em;}
footer {font-size: 1em; height: 3em;
padding-top: 1.4em;}
h4 {margin-top: 0em;}
}
@media screen and (min-width: 992px) {
body {font-size: 14px;}
}
@media screen and (min-width: 1200px) {
body {font-size: 16px;}
}
JS:
var mq = window.matchMedia( "(min-width: 768px)" );
function scrollToAnchor(aid){
var aTag = $(aid);
if (mq.matches) {
$('body').animate({scrollTop: (aTag.offset().top)-82},'slow');
} else {
$('body').animate({scrollTop:(aTag.offset().top)-180},'slow');
}
};
$("#inicioMenu").on('click touchend', function(e) {
e.preventDefault();
scrollToAnchor("#inicio");
return false;
});
$("#portfolioMenu").on('click touchend', function(e) {
e.preventDefault();
scrollToAnchor('#portfolio');
return false;
});
$("#contatoMenu").on('click touchend', function(e) {
e.preventDefault();
scrollToAnchor('#contato');
return false;
});
【问题讨论】:
-
我该如何回答这个问题?
标签: jquery mobile anchor twitter-bootstrap-4