我正在为网站创建滑动/动画页面模板。
默认情况下,我在用户屏幕上显示 3 页。在左侧,我们可以看到上一页的 10%。在屏幕中央,我正在显示当前页面,在右侧,我们可以看到 10% 的下一页。
在这个网站上,有一个顶部菜单允许我们选择任何项目并在页面之间导航。每个项目都链接到本网站的 5 个当前页面之一,并显示相应的页面标题。
当我单击顶部菜单的一项时,我将向左或向右滑动/动画页面,直到我设置并到达链接到所选菜单项的正确页面。
这是“myLoopright”函数,我可以在其中多次调用 sliddingright 函数。
function myLoopright ()
{
// create a loop function
setTimeout(function ()
{
sliddingright(page_id_target_right,previous_right_old,previous_right,next_right,pages_numbers,loop);
loopcount++; // increment the counter
if (loopcount <= (difference_pages-1))
{
myLoopright(); // .. again which will trigger another
}
}, 1100) // .. setTimeout()
} // closing myLoop function
这是向右滑动的功能
function sliddingright(page_id_target_right,previous_right_old,previous_right,next_right,pages_numbers,loop)
{
duration=1000;
//Update top Menu DOM items
$('ul#navigation #'+page_id_target_right).addClass('active');
$('ul#navigation #'+next_right).addClass('next');
$('ul#navigation #'+pages_numbers).addClass('previous');
//Update DOM pages
previous_right_old=parseInt(pages_numbers-1);
// PREVIOUS TO HIDDEN
$('#content .'+previous_right_old).css({ 'left' : '-73%','background-color' : '#EAEAEA'}).animate({'left' : '-151%'}, duration, easing, function(){$('#content .'+previous_right_old).addClass('hidden')});
// ACTIVE TO PREVIOUS
$('#content .'+pages_numbers).css({ 'margin' : '0 6%', 'left' : '5%', 'right' : '5%'}).animate({'left' : '-73%', 'margin-right' : '0%', 'margin-left' : '0%', 'backgroundColor' : '#EFF0F1' }, duration, easing, function(){$('#content .'+pages_numbers).removeClass('hidden').addClass('previous')});
// NEXT TO ACTIVE
$('#content .'+page_id_target_right).css({ 'left' : '95%','background-color' : '#EAEAEA'}).animate({'left' : '5%', 'margin-right' : '6%', 'margin-left' : '6%', 'backgroundColor' : '#FFFFFF' }, duration, easing, function(){$('#content .'+page_id_target_right).addClass('active').removeClass('hidden');});
// HIDDEN TO NEXT
$('#content .'+next_right).removeClass('hidden').addClass('next').appendTo('#content').css({ 'left' : '173%', 'backgroundColor' : '#EFF0F1'}).animate({'left' : '95%'}, duration);
}
这段代码可以工作,但是,当我必须滑动很多页面时,滑动效果并不流畅。
所以我想在sliddingright函数的所有动画完成后调用“myLoopright”函数并删除setTimeout函数。
要查看我的开发代码,你可以去这里:http: //jsfiddle.net/K2xZB/89/
干杯