我正在查看此站点slideone,每当您单击链接时,它都会将内容加载到同一个容器/div/无论他们使用什么中。我想知道我是否可以在我的网站上获得类似的东西,但我不知道如何去做。有什么帮助吗?
问问题
113 次
2 回答
2
它是隐藏和显示内容的混合体。当您与加载另一个部分的链接交互时,会发生以下情况:
- 请求通过 ajax 发送到服务器,服务器发回 html。
- 淡出父级的内容并将从服务器收到的 HTML 附加到隐藏的 div 中
- 淡入新内容
- 看起来棒极了
编辑
编辑 2:这是 jQuery 工作的要点:
$(function(){
$(".exposer").click(function(){
var $ele = $(this);
$ele.parent().siblings().hide('fade');
if($(this).data('url') == undefined){
$(this).siblings('.visContent').hide('slide')
$(this).siblings('.hidContent').show('slide');
}else{
var url = $(this).data('url');
$.ajax({
url: '/echo/json',
type: "GET",
success:function(data){
var dt = new Date();
data = "You would have loaded HTML from " + url + ".<br /> This was loaded at " + dt;
//You would normally use the HTML from data to populate the html
//in this example a pre-built string will suffice
console.log(data,$ele, url);
$ele.siblings('.visContent').hide('slide');
$ele.siblings('.hidContent').append("<div class='ajaxload'>" + data + "</div>").addClass('ajaxload').show('slide');
},error:function(xhr, status){
alert('error loading page');
}
})
}
});
$(".closer").live('click',function(){
$(".ajaxload").hide('fade');
var $mainp = $(this).parent().parent();
$(this).parent().hide('slide');
$(this).parent().parent().children('.visContent').show('slide');
$(this).parent().parent().siblings('.childWrap').show('slide');
});
});
我为你创建了一个小提琴来展示它的基础是如何工作的。 这是我建立的小提琴示例
于 2012-11-30T04:27:31.707 回答
0
这个 jQuery waypoints 插件是一个很好的起点,它使您能够轻松监控滚动,在特定点触发 ajax 事件,触发事件以更改在特定滚动点菜单中选择的内容。
如果可以使用更简单的版本,您总是可以像在他们的网站中那样制作动画并滚动到不同的点,而不会发生其他事件
于 2012-11-30T04:32:56.923 回答