JQuery选项卡(Tabs)是现今网页设计中广泛使用的一种交互方式,可以让用户更加便捷的切换不同的内容。但是,当选项卡中的内容很多时,会导致页面加载速度变慢,影响用户体验。为此,我们可以使用JQuery选项卡滑动刷新技术,优化页面性能。
$(function () { var $tabs = $('.tabs'); var $nav = $tabs.find('.nav'); var $navItems = $nav.find('li'); var $panels = $tabs.find('.panel'); $nav.on('click', 'a', function (e) { e.preventDefault(); var $this = $(this); var panelId = $this.attr('href'); $navItems.removeClass('active'); $panels.removeClass('active'); $this.closest('li').addClass('active'); $(panelId).addClass('active'); }); function refreshTabs() { var $activeNav = $nav.find('.active'); var activeIndex = $navItems.index($activeNav); var panelWidth = $panels.width(); var panelWrapperWidth = $panels.eq(0).parent().width(); var maxOffset = panelWidth * $panels.length - panelWrapperWidth; var offset = -panelWidth * activeIndex; offset = Math.max(offset, -maxOffset); offset = Math.min(offset, 0); $panels.css('transform', 'translateX(' + offset + 'px)'); } $(window).on('resize', refreshTabs); });
以上代码通过监控Windows窗口的大小变化触发选项卡的滑动刷新,当用户改变窗口大小时,选项卡不会卡在原位置,而是根据当前激活选项卡的位置,计算出选项卡应该滑动到的位置。除此之外,该方法还限制了滑动的最大/小距离,以确保选项卡不会滑出边界。