在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
有一次在上**网的时候,发现登陆、注册动画效果非常华丽,但让我感到震惊的是页面竟能够实现无刷新跳转(已改版,观看此效果可以猛击此处:GitHub或阅FM),回顾了所学的前端知识,似乎没有任何技术可以实现这一点,于是百度了一下,才发现这原来是使用HTML5中History API实现的效果,但奈何一直未曾派上用场。直到博客改版时,才将这一技术应用起来。 复制代码 代码如下:<!DOCTYPE HTML> <html> <head> <title> New Document </title> <style> ul,li{list-style:none;} .container{width:px;border:px solid #ccc;overflow:hidden;} .container ul{float:left;width:px;} .container li{width:px;height:px;line-height:px;overflow:hidden;} .container li a{text-decoration:none;} .container li.current a{color:red;} .all-content{width:px;float:left;overflow:hidden;} </style> <script src="jquery-...min.js"></script> <script src="index.js"></script> </head> <body> <div class="container"> <ul class="list"> <li> <a href="http://localhost/html/index.php">测试</a> </li> <li> <a href="http://localhost/html/index.php">测试</a> </li> <li> <a href="http://localhost/html/index.php">测试</a> </li> </ul> <div class="all-content"> <ul class="content"> <li></li> <li></li> <li></li> </ul> </div> </div> </body> </html> </p> <p> JS: 复制代码 代码如下:/** * HTML history and ajax */ $(function(){ var ajax, currentState; $('.container li').unbind().bind('click',function(e){ e.preventDefault(); var target = e.target, url = $(target).attr('href'); !$(this).hasClass('current') && $(this).addClass('current').siblings().removeClass("current"); if(ajax == undefined) { currentState = { url: document.location.href, title: document.title, html: $('.content').html() }; } ajax = $.ajax({ type:'POST', url: url, dataType:'json', success: function(data){ var html = ''; if(data.length > ) { for(var i = , ilist = data.length; i < ilist; i++) { html += '<li>' +data[i].age+ '</li>' + '<li>' +data[i].name+ '</li>' + '<li>' +data[i].sex+ '</li>'; } $('.content').html(html); } var state = { url: url, title: document.title, html: $('.content').html() }; history.pushState(state,null,url); } }); }); window.addEventListener('popstate',function(event){ if(ajax == null){ return; }else if(event && event.state){ document.title = event.state.title; $('.content').html(event.state.html); }else{ document.title = currentState.title; $('.content').html(currentState.html); } }); }); |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论