Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:无法读取属性';顶部';未定义的_Javascript_Jquery - Fatal编程技术网

Javascript 错误:无法读取属性';顶部';未定义的

Javascript 错误:无法读取属性';顶部';未定义的,javascript,jquery,Javascript,Jquery,我需要这方面的帮助,因为它正在显示,我尝试使用全局变量等,但问题仍然存在 var $ = jQuery; var $window = $(window), $moving1 = $(".scroller1"), $holder1 = $("#scroller-wrap1"), offset1; $window.load(function() { offset1 = $holder1.

我需要这方面的帮助,因为它正在显示,我尝试使用全局变量等,但问题仍然存在

var $ = jQuery;
var $window    = $(window),
        $moving1   = $(".scroller1"),
        $holder1   = $("#scroller-wrap1"),      
        offset1;

$window.load(function() {       
        offset1     = $holder1.offset();
});

$window.scroll(function() {
    if ($window.scrollTop() > offset1.top) {
        $moving1.addClass('fixed');
    } else {
        $moving1.removeClass('fixed');
    }
    if ($window.scrollTop() > (offset1.top + $holder1.height() - $moving1.height() - 60)) {
        $moving1.removeClass('fixed', 1000);
    }

    //console.log("scroll: " +$window.scrollTop());
});
基本上,我是在检查窗口是否完全加载,这样我就可以无误地进行计算,但我猜这是不正确的


这是wordpress的内部版本,这就是我需要jQuery部分的原因。

好的。错误来自此命令:

if ($window.scrollTop() > offset1.top) {
这意味着
offset1
未定义的
。现在,您正在
.load
事件中初始化
offset1
,但您将其设置为等于
$holder
,并且
$holder1
在文档准备就绪之前已初始化,因此它变为
未定义的

只需添加一个函数,您的代码就可以大大减少。您也不必这样做,因为这是自动的:

//将函数传递给JQuery将创建一个“document.ready()”回调
//生成DOM时将自动执行的函数。
$(函数(){
变量$window=$(window);
变量$moving1=$(“.scroller1”);
变量$holder1=$(“#scroller-wrap1”);
var offset1=$holder1.offset();
//JQuery建议使用.on()函数来绑定
//与事件方法相反的事件回调。
$window.on(“滚动”,函数(){
如果($window.scrollTop()>offset1.top){
$moving1.addClass('fixed');
}否则{
$moving1.removeClass('fixed');
}
如果($window.scrollTop()>(offset1.top+$holder1.height()-$moving1.height()-60)){
$moving1.removeClass('fixed',1000);
}
});
});

正常。错误来自此命令:

if ($window.scrollTop() > offset1.top) {
这意味着
offset1
未定义的
。现在,您正在
.load
事件中初始化
offset1
,但您将其设置为等于
$holder
,并且
$holder1
在文档准备就绪之前已初始化,因此它变为
未定义的

只需添加一个函数,您的代码就可以大大减少。您也不必这样做,因为这是自动的:

//将函数传递给JQuery将创建一个“document.ready()”回调
//生成DOM时将自动执行的函数。
$(函数(){
变量$window=$(window);
变量$moving1=$(“.scroller1”);
变量$holder1=$(“#scroller-wrap1”);
var offset1=$holder1.offset();
//JQuery建议使用.on()函数来绑定
//与事件方法相反的事件回调。
$window.on(“滚动”,函数(){
如果($window.scrollTop()>offset1.top){
$moving1.addClass('fixed');
}否则{
$moving1.removeClass('fixed');
}
如果($window.scrollTop()>(offset1.top+$holder1.height()-$moving1.height()-60)){
$moving1.removeClass('fixed',1000);
}
});
});

发生了什么问题?请澄清你的观点question@CalvinNunesI在控制台上获取“错误:无法读取未定义的属性'top'”发生了什么问题?请澄清你的观点question@CalvinNunesI在控制台上获取“错误:无法读取未定义的属性'top'”。我需要jQuery部分,因为我在主题选项=Wordpress自定义中使用它theme@FilipeOS好吧,如果你这么说的话。但是,您仍然需要解决我答案中的要点theme@FilipeOS好吧,如果你这么说的话。但是,你仍然需要解决我回答中的要点。