fullPage.js滚动条:true使浏览器随deelay一起移动
fullPage.js scrollBar: true making the browser move with deelay
我的网站使用fullPage js脚本。我有个问题。当访问者滚动时,我有一些jquery正在更改我的头元素
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 1) {
$("header").addClass("tab-2-header")
$(".logo img").attr('src','http://verycreative.info/sebastian/img/logo-negative.png')
$("#menu li a:first").removeClass("active")
$("#menu li").addClass("negative-dotts")
$(".search img").fadeIn().attr('src','http://verycreative.info/sebastian/img/search-negative.png')
$(".search input").addClass("search-negative");
} else {
$("header").removeClass("tab-2-header")
$(".logo img").attr('src','http://verycreative.info/sebastian/img/logo-positive.png')
$("#menu li a:first").addClass("active")
$("#menu li").removeClass("negative-dotts")
$(".search img").fadeIn().attr('src','http://verycreative.info/sebastian/img/search.png')
$(".search input").removeClass("search-negative");}
});
基本上,这就是正在更改我的头的jquery。
一切都很好,直到我不得不用fullpagejs对我的网站进行分区。这个脚本隐藏了我的滚动条,如果滚动条不可见,我从上面的jquery就不会启动,因为他不知道访问者正在滚动,或者滚动条不见。
在fullPagejs中,我可以显示滚动条,这样我的标题元素就会显示为:
scrollBar: true
如果我添加这行代码,滚动条就会显示出来,jquery就会开始工作。
问题是,如果我让滚动条可见,我的网站就会在有一些滞后的部分之间运行(比如框架)。你知道我该如何解决这个问题吗?或者是否可以隐藏滚动条,但可以在滚动时更改标题?
你可以在这里查看没有滚动条的网站:http://bit.ly/1AGcZvd
这里有滚动条:http://bit.ly/1C6VH8m
有滚动条的有一些滞后,我不知道该怎么命名。。干杯
您不需要使用滚动条即可使其工作。如果您使用的是scrollBar:false
,那么您应该使用fullpage.js提供的回调,如afterLoad
,这些回调将在到达一个节后执行。
您甚至可以在节更改时使用fullPage.js添加到页面body
元素的CSS类。只需要处理CSS就可以了…这会更快。
但是,如果你仍然喜欢显示滚动条并使用CSS处理jQuery,那么请考虑到你的代码在每个滚动上都被执行了数百次,这就是导致滞后的原因。。。你应该更好地优化它…
像这样的东西,检查一个标志,会优化它很多:
var hasChanged = false;
$(window).scroll(function () {
var scroll = $(window).scrollTop();
if (scroll >= 1 && !hasChanged) {
$("header").addClass("tab-2-header")
$(".logo img").attr('src', 'http://verycreative.info/sebastian/img/logo-negative.png')
$("#menu li a:first").removeClass("active")
$("#menu li").addClass("negative-dotts")
$(".search img").fadeIn().attr('src', 'http://verycreative.info/sebastian/img/search-negative.png')
$(".search input").addClass("search-negative");
} else {
$("header").removeClass("tab-2-header")
$(".logo img").attr('src', 'http://verycreative.info/sebastian/img/logo-positive.png')
$("#menu li a:first").addClass("active")
$("#menu li").removeClass("negative-dotts")
$(".search img").fadeIn().attr('src', 'http://verycreative.info/sebastian/img/search.png')
$(".search input").removeClass("search-negative");
hasChanged = true;
}else{
//whatever
//...
hasChanged = false;
}
});
如果您还想进一步改进它,您可以使用Javascript而不是jQuery。但就我个人而言,我只会处理CSS。
- 转义符不能与innerHTML一起使用
- 高亮显示与数组字符串一起使用时文本插件中断
- setTimeout可以与闭包内的函数一起使用吗
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- Highcharts colorsByPoint与系列中的线性渐变一起使用时不起作用
- 如何将js库与typescript一起使用
- 将webpack和babel与父项目目录中的文件一起使用
- 将 Drag&Drop 与 jsTree 和 DataTables 一起使用
- Javascript-如何让脚本与Ajax请求的数据一起运行
- 将两个ext.TabPanels滚动到一起
- 将jQuery UI Timepicker Addon与React一起使用
- 什么是curl以及如何将其与nodejs一起使用
- Javascript”;onmousemove”;事件无法与类一起使用
- 将require('..')与变量一起使用与在webpack中使用字符串相比
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 三角库可以与firefox一起使用,但不能在Chrome中使用
- 为什么不't我的ruby代码与javascript文件一起插入
- 通过jQueryAjax一起发布Array和Form数据时出现问题
- 如何将eventListeners与Angularjs+Electron一起使用
- fullPage.js滚动条:true使浏览器随deelay一起移动