Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 ";滚动前隐藏div";不管发生什么,代码都不起作用_Javascript_Jquery_Wordpress - Fatal编程技术网

Javascript ";滚动前隐藏div";不管发生什么,代码都不起作用

Javascript ";滚动前隐藏div";不管发生什么,代码都不起作用,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我正在Bitnami Wordpress堆栈上建立一个本地网站,主题是阿拉斯主题,如果这很重要的话 我正在制作一个固定的菜单,我想在页面上向下滚动190像素后显示它。问题是,无论我尝试哪种JQuery或JavaScript代码,任何东西都可以工作。我在StackOverflow上搜索了很多次,我知道这个问题以前在这里被问过很多次——但是我已经尝试了我能找到的每一个代码,没有一个是有效的。这是我菜单的JavaScript/JQuery/HTML/PHP代码,位于header.PHP文件中: 我非常

我正在Bitnami Wordpress堆栈上建立一个本地网站,主题是阿拉斯主题,如果这很重要的话

我正在制作一个固定的菜单,我想在页面上向下滚动190像素后显示它。问题是,无论我尝试哪种JQuery或JavaScript代码,任何东西都可以工作。我在StackOverflow上搜索了很多次,我知道这个问题以前在这里被问过很多次——但是我已经尝试了我能找到的每一个代码,没有一个是有效的。这是我菜单的JavaScript/JQuery/HTML/PHP代码,位于header.PHP文件中:

我非常需要帮助-求你了


编辑:我在这里制作了一个JSFIDLE,只做了一些小的修改(Wordpress.php菜单不能在Wordpress之外的其他地方阅读):

尝试使用vanilla js Instaread of$
(window.scrollTop()
试试
window.scrollY>190

对于完整的功能,我也会使用
切换
,因此:

jQuery HTML


为完整起见,我将发布我的代码:

首先,代码使用自动执行函数包装,以防止库之间发生冲突:

(function($){
    //code goes here, now $ is a local reference to the jQuery object.
})(jQuery)
然后,我创建处理程序:

var setMenuVisibility = function(){
    if($(window).scrollTop() > 190){
        $('#medfolg').show();
    } else {
        $('#medfolg').hide();
    };
}
它将附加到窗口的滚动事件,并根据滚动状态更改菜单的可见性

通过将函数绑定到事件来完成附件:

$(window).bind('scroll', setMenuVisibility);
//and set the initial visibility
setMenuVisibility();
上面部分的最后一行设置菜单的初始状态,因为初始滚动值可能要求它可见(例如,指向页面较低部分的链接)

整个过程在文档的标记准备就绪时启动


参见演示。

您的意思是这样的吗?:
$(document).ready(函数(){if(window.scrollY>170){$('medfolg').toggle();});
仍然不起作用。。。“不过,我可能很愚蠢。”西门曼塞斯更新道。别担心,这与愚蠢无关:)这是完整的代码吗?我不应该也使用
.toggle
吗?很抱歉,我对JavaScript/JQuery真的是个新手。。。谢谢你的回答。抱歉@SimenMangseth,答案不清楚。我编辑。不要为问而难过。下次您将能够回答其他人的问题。我认为您犯了一个错误-您在
控制台.log
行之前添加了斜杠,以便整行显示为注释,对吗?所以我对它进行了编辑,只把评论变成了评论。但它仍然不起作用。我开始怀疑这与其他一些不起作用的事情有关,比如JQuery根本不起作用,或者我的CSS、Bitnami本地web服务器或者Wordpress的某些错误……尝试用JQuery替换$,或者尝试JQuery(document).ready(function($){..}…非常感谢您的回复。您可以发布完整的JQuery代码,这样我就不会做错任何事情吗?对不起,我不太擅长这一点。您可能应该提供一个更完整的示例(一个真实的示例或一个JSFIDLE),因为sketch似乎工作得很好(它几乎与您的完全相同)。非常感谢,@MasterAM-你的代码是唯一一个在IE和Firefox的演示页面以及实际站点上都有效的代码。非常感谢,@MasterAM。这在任何地方都有效-我还不能超过你,因为我是这个站点的新手,但当我获得足够的声誉时,我会的。
<div style="display:none" id="medfolg">
    <ul>
        <li><a href="#">Home</a>
        </li>
        <li><a href="#">Tutorials</a>
        </li>
        <li><a href="#">Articles</a>
        </li>
        <li><a href="#">Inspiration</a>
        </li>
    </ul>
</div>
(function($){
    //code goes here, now $ is a local reference to the jQuery object.
})(jQuery)
var setMenuVisibility = function(){
    if($(window).scrollTop() > 190){
        $('#medfolg').show();
    } else {
        $('#medfolg').hide();
    };
}
$(window).bind('scroll', setMenuVisibility);
//and set the initial visibility
setMenuVisibility();