- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 wordpress 网站,当我点击一个按钮时,我的加载程序之后会出现 ajax 内容。代码运行良好,但我想添加当前内容淡出和新内容淡入的效果,不再需要加载程序。
1.
jQuery(document).ready(function() {
jQuery('#main-content').on('click', '.jax a, .page-navigation a', function(e) {
e.preventDefault();
var url = jQuery(this).attr('href'),
title = jQuery(this).attr('title')
;
jQuery('#main-content').html('<img id="loader" alt="loading" width="43" height="11" src="<?php echo get_template_directory_uri(); ?>/library/images/squares.gif"/ >').load(url+ ' #main-content');
document.title = title;
history.pushState({url:url,title:title}, title, url );
});
});
window.onpopstate = function(event) {
document.title = event.state.title;
jQuery('#main-content').html('<img id="loader" alt="loading" width="43" height="11" src="<?php echo get_template_directory_uri(); ?>/library/images/squares.gif"/ >').load(event.state.url+ ' #main-content');
}
我已经尝试了多种变体,例如下面的这个,它可以工作,但它不会像第一个示例中那样更新每个帖子的地址 URL。
2.
jQuery('.jax a, .page-navigation a').live('click', function(event) {
var link = $(this).attr('href');
jQuery('#main-content').fadeOut('slow', function(){
jQuery('#main-content').load(link+' #main-content', function(){
jQuery('#main-content').fadeIn('slow');
});
});
return false;
});
知道如何在第一个示例中添加淡入淡出或在第二个示例中添加地址 URL 更新(History API)吗?
最佳答案
我没有适合您的解决方案,但也许这个对其他人问题的回答可以帮助您: https://stackoverflow.com/a/1789347/4867333
The call to
load
will use AJAX and will be run asynchronously. You'll want to fade in right after the call is terminated. You can achieve that by passing a callback to load. Your code will look like this:
$('#content').load("page1.html", {}, function() { $(this).fadeIn("normal"); }));
See documentation on jQuery's .load() for more information.
或者这个:
https://stackoverflow.com/a/9337696/4867333
他能够通过将效果应用于包装器 div 来实现淡出、淡入。
您可以尝试以下方法:
jQuery('.jax a, .page-navigation a').live('click', function(event) {
var url = jQuery(this).attr('href'),
title = jQuery(this).attr('title');
jQuery('#main-content').fadeOut('slow', function(){
jQuery('#main-content').load(url+' #main-content', function(){
jQuery('#main-content').fadeIn('slow');
document.title = title;
history.pushState({url:url,title:title}, title, url );
});
});
return false;
});
关于javascript - 为ajax内容添加淡入淡出效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353743/
我是一名优秀的程序员,十分优秀!