我尝试过很多建议的jquery代码,最后找到一个几乎可以工作的代码。
但它有一个缺陷 - 点击一个链接后 - 链接会突然显示一秒钟(只要页面加载),然后转为活动状态。在页面加载php / html之前点击之后是否可以立即突出显示链接?
由于动画的可能性,找到jquery或javascript解决方案会很棒吗? 使网站/主页菜单动态的常用方法是什么?
提前致谢!所有的解释或代码示例都非常棒!
HTML:
<DOCTYPE! html>
<html>
<head>
<title>TESTLEHT</title>
<link rel="stylesheet" href="style.css" type="text/css" >
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
</head>
<body>
<div class="naviwrap"><?php include("includes/menu.php"); ?></div>
<div class="clear"></div>
<div class="content"></div>
<div class"footer"><?php include("includes/footer.php"); ?></div>
<script src="scripts.js" type="text/javascript"></script>
</body>
</html>
包含菜单文件:
<nav class="menu">
<ul class="clearfix">
<li id="linkone" class="jlist" data-linkid="link1"><a href="index.php">Avaleht</a></li>
<li id="linktwo" class="jlist" class="current-item" data-linkid="link2"><a href="meist.php">Meist</a></li>
<li id="linkthree" class="jlist" data-linkid="ink3"><a href="tooted.php">Tooted</a></li>
<li id="linkfour" class="jlist" data-linkid="link4"><a href="galerii.php">Galerii</a></li>
<li id="linkfive" class="jlist" data-linkid="link5"><a href="kontakt.php">Kontakt</a></li>
</ul>
</nav>
的CSS: .menu a { 过渡:所有线性0.30s; 颜色:#ABABAB; font-size:16px; text-decoration:none; }
.menu li:hover > a, .menu .current-item > a {
text-decoration: none;
color: red;
}
.menu li:active > a, .menu .current-item > a {
color: red;
}
.menu > ul > li {
float: left;
display: inline-block;
position: relative;
font-size: 105%;
}
.menu > ul > li > a {
padding: 15px 45px;
margin-top: 15px;
}
.menu > ul > li:hover > a, .menu > ul > .current-item > a {
color: #282828;
}
当前的jquery代码,几乎可以工作:
$(function () {
var str = location.href.toLowerCase();
$('nav ul li a').each(function () {
if (str.indexOf(this.href.toLowerCase()) > -1) {
$('a.current-item').removeClass('current-item');
$(this).parent().addClass('current-item');
}
});
});
答案 0 :(得分:0)
这似乎是网页的正常行为。当页面加载时,人们知道事情变得有点时髦。
如果您想了解页面转换的方式,您需要研究单页面应用程序(SPA),这通常意味着当您单击链接时只加载部分页面 - 这是使用Ajax完成的。它可以像自定义jQuery脚本一样简单,也可以使用像Angular或Backbone这样的大型框架,或者像Sammy JS这样的小型框架。
还有预制的jQuery脚本,如jQuery SmoothState,您无需担心制作部分页面。 SmoothState会在秘密加载和检查下一页时延迟下一页的加载,并且只更改页面的不同区域。它支持动画页面过渡,以及预加载“下一页”(比链接上的mouseup事件更早),使事情看起来更快。
https://en.wikipedia.org/wiki/Single-page_application
http://miguel-perez.com/articles/add-page-transitions-with-smoothstate/