Javascript 加载新页面时的转换效果,AJAX
因此,在我的网站上,我使用AJAX从外部html文件加载内容。它看起来不错,但是,我想做的是在内容发生变化时添加一个页面转换。就像单击主页时,页面不会自动更改div中的文本,而是将当前文本向左滑出屏幕,同时从右侧滑出新内容。顺便说一句,我不是在寻找一个单页的解决方案。我知道如何使淡入淡出效果,但滑动? 感谢您提供的任何提示和解决方案。对于这样一个不切实际的问题,很抱歉…对于新开发人员来说,使用AJAX XMLHttpRequest不是一个好主意,尤其是在现在,每个浏览器如何实现自己的XMLHttpRequest。我建议使用jQuery的AJAX框架$.AJAX或它的速记函数$.get。但在您的情况下,我建议使用.loads,它大致相当于$.get 因为你没有包括你的代码,但你应该下次!。下面是一个简单的例子: HTML: JS: 对于新开发人员来说,使用AJAX XMLHttpRequest不是一个好主意,尤其是在现在,每个浏览器都实现自己的XMLHttpRequest。我建议使用jQuery的AJAX框架$.AJAX或它的速记函数$.get。但在您的情况下,我建议使用.loads,它大致相当于$.get 因为你没有包括你的代码,但你应该下次!。下面是一个简单的例子: HTML: JS:Javascript 加载新页面时的转换效果,AJAX,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,因此,在我的网站上,我使用AJAX从外部html文件加载内容。它看起来不错,但是,我想做的是在内容发生变化时添加一个页面转换。就像单击主页时,页面不会自动更改div中的文本,而是将当前文本向左滑出屏幕,同时从右侧滑出新内容。顺便说一句,我不是在寻找一个单页的解决方案。我知道如何使淡入淡出效果,但滑动? 感谢您提供的任何提示和解决方案。对于这样一个不切实际的问题,很抱歉…对于新开发人员来说,使用AJAX XMLHttpRequest不是一个好主意,尤其是在现在,每个浏览器如何实现自己的XMLHtt
你能提供你的密码吗?到目前为止你做了什么?你能提供你的代码吗?到目前为止你做了什么?我只测试了加载函数,但没有测试整个动画,想法很简单:1。单击传递href 2。创建包装器并在3中加载href页面内容。将新内容隐藏到最右侧,然后在完全加载后向左移动。4.如果有以前的内容,请将其移到最左侧隐藏,然后在动画完成后将其删除,这样它就不会变得拥挤:Dmy code至今:'function loadPagehref{var xmlhttp=new XMLHttpRequest;xmlhttp.openGET,href,false;xmlhttp.send;return xmlhttp.responseText;}Home'我明白了。我的答案也将适合您的标记,loadContent函数将处理从加载新页面到动画的所有事情。但是您可能需要更改函数中的一些选择器。我在其中添加了一个解决方案,其中包含一些您应该阅读的注释。它不会在JSFIDL中显示结果e因为网站不允许使用GET方法,但我在本地服务器上测试了它,效果很好。干杯!谢谢!我分析了你发布的代码,我想我理解了它的工作原理,所以,这对我有很大帮助:我肯定会在我的项目中使用它。我只测试了加载功能,但没有测试整个动画,想法很简单:1.点击传递href 2。创建包装并在3内加载href页面内容。将新内容隐藏到最右侧,然后在完全加载后向左移动。4.如果有以前的内容,请将其也移动到最左侧以隐藏,然后在动画完成后将其删除,这样它就不会变得拥挤:Dmy code至今:'函数loadPagehref{var xmlhttp=new XMLHttpRequest;xmlhttp.openGET,href,false;xmlhttp.send;return xmlhttp.responseText;}Home'我明白了。我的答案也将适合您的标记,loadContent函数将处理从加载新页面到动画的所有事情。但是您可能需要更改函数中的一些选择器。我在其中添加了一个解决方案,其中包含一些您应该阅读的注释。它不会在JSFIDL中显示结果由于网站不允许使用GET方法,但我在本地服务器上测试了它,它运行良好。干杯!谢谢!我分析了你发布的代码,我想我了解它的工作原理,因此,它将对我有很大帮助:我肯定会在我的项目中使用它。
<ul class="menu">
<li><a href="home.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="services.html">Services</a></li>
</ul>
<div id="contents">
<!-- Place the loaded contents here -->
</div>
body {overflow-x:hidden;}
.loaded_content_wrapper {
overflow:hidden;
margin-left:100%;
width:100%;
position:absolute;
}
function loadContent(href){
/* Create the content wrapper and append it to div#contents
then load the contents to the wrapper
*/
$wrapper = $('<div>');
$wrapper.addClass('loaded_content_wrapper').appendTo('#contents').load(href, function(){
/* When the content is completely loaded
animate the new content from right to left
also the previous content slide to left and remove afterwards.
*/
$(this).animate({marginLeft:0}, 'slow').prev().animate({marginLeft:'-100%'}, 'slow', function(){
$(this).remove(); //remove previous content once the animation is complete
});
})
}
$('a').click(function(e){
e.preventDefault();
var href = $(this).attr('href');
loadContent(href)
})