我有这个jQuery应该在'滑入'在页面上滚动后的标题,但没有任何反应。在第3行,我的代码编辑器给了我一个!只读警报,也许是语法问题?
我正在使用beaver builder自动调用jQuery。
$( document ).ready(function() {
$(window).scroll(function(){
scroll = $(window).scrollTop();
if (scroll > 450){
$('#jQuery-mob').slideDown();
}
if (scroll < 450){
$('#jQuery-mob').slideUp();
}
});
});
$( document ).ready(function() {
$(window).scroll(function(){
scroll = $(window).scrollTop();
if (scroll > 700){
$('#why-jquery').slideDown();
}
if (scroll < 700){
$('#why-jquery').slideUp();
}
});
});
#jquery-mob和#why-jquery都设置为display:none
的CSS:
#why-jquery {
position: fixed;
top:0;
z-index: 99;
width: 100%;
height: 100px;
display: none;
}
#jQuery-mob {
position: fixed;
top:0;
z-index: 99;
width: 100%;
height: 100px;
padding: 0 !important;
display: none;
}
答案 0 :(得分:2)
我正在使用beaver builder自动调用jQuery。
我想你的意思是说:
我正在使用自动调用jQuery的wordpress。
对于wordpress网站,默认情况下,您必须使用jQuery
而不是$
。您可以替换全部,也可以仅在.ready&#34;包装器中使用jQuery&#34;并将$
传递给.ready函数。
两者的例子:
jQuery( document ).ready(function() {
jQuery(window).scroll(function(){
scroll = jQuery(window).scrollTop();
if (scroll > 450){
jQuery('#jQuery-mob').slideDown();
}
if (scroll < 450){
jQuery('#jQuery-mob').slideUp();
}
});
});
jQuery(document).ready(function( $ ) {
$(window).scroll(function(){
scroll = $(window).scrollTop();
if (scroll > 700){
$('#why-jquery').slideDown();
}
if (scroll < 700){
$('#why-jquery').slideUp();
}
});
});
请注意,我没有检查您的代码,但我确实看到您正在使用scroll
而没有使用var
声明它。这意味着scroll
将是一个全局变量。设置/使用它们的两个功能都可能导致相互干扰,以及覆盖window.scroll功能。您可能希望使用var scroll=
等,并且还可以更好地使用其他变量名称。
答案 1 :(得分:1)
scroll
是一个窗口级函数,因此在浏览器上下文中充当reserved word:
console.log(scroll)
&#13;
你试图用一个名为&#34; roll&#34;的变量覆盖它,这就是导致&#34;!只读&#34;你看错了。
使用其他变量名称(并使用&#39; var&#39;声明它。)
答案 2 :(得分:-1)
此代码具有逻辑问题
if (scroll < 450 && scroll < 800){
当滚动小于450时,它也小于800,所以你为什么要包括第二个比较?
这一行的同一个故事:
if (scroll < 700 && scroll < 1000){