Javascript Sticky header仅适用于桌面,而不适用于移动设备

Javascript Sticky header仅适用于桌面,而不适用于移动设备,javascript,jquery,html,css,wordpress,Javascript,Jquery,Html,Css,Wordpress,我想给一个网站,我建立了一个粘性头在桌面和移动,我似乎只能让它在桌面上工作。我在Wordpress上构建了它(我构建了自己的主题),这就是为什么我有jQuery(document.ready)(函数($){添加到代码中(否则Wordpress的jQuery与其他JQ冲突),所以忽略这一部分 这是我正在使用的代码: <script type="text/javascript"> jQuery(document).ready(function( $ ) { $(window).scr

我想给一个网站,我建立了一个粘性头在桌面和移动,我似乎只能让它在桌面上工作。我在Wordpress上构建了它(我构建了自己的主题),这就是为什么我有
jQuery(document.ready)(函数($){
添加到代码中(否则Wordpress的jQuery与其他JQ冲突),所以忽略这一部分

这是我正在使用的代码:

<script type="text/javascript">
jQuery(document).ready(function( $ ) {
  $(window).scroll(function() {
   if ($('body').scrollTop() > 1){  
      $('#header').addClass("sticky");
      $('#toprightlogo').css("padding-top", "10px");
      $('#toprightlogo').css("padding-bottom", "10px");
      $('#topnav a').css("padding-top", "18px");
      $('#topnav a').css("padding-bottom", "13px");
      $('.callicon').css("top", "14px");
      $('button#responsive-menu-button').css("position", "fixed");
      $('button#responsive-menu-button').css("top", "0");
    }
    else{
      $('#header').removeClass("sticky");
      $('#toprightlogo').css("padding-top", "");
      $('#toprightlogo').css("padding-bottom", "");
      $('#topnav a').css("padding-top", "");
      $('#topnav a').css("padding-bottom", "");
      $('.callicon').css("top", "");
      $('button#responsive-menu-button').css("position", "");
      $('button#responsive-menu-button').css("top", "");
    }
  });
});
</script>

有人能理解为什么这在移动设备上不起作用吗?

也许你对jQuery有问题,我刚刚用香草Javascript为粘性导航创建了这个代码段。它应该在移动设备上起作用,根据你自己的需要进行调整

//获取包含我们要为其创建粘性效果的导航的元素
const nav=document.querySelector(“#main”);
//创建一个变量,用于存储导航的父节点顶部(在本例中为主体元素)与导航顶部之间的空间高度
设topOfNav=nav.offsetTop;
//创建应该在用户每次滚动时运行的函数
函数fixNav(){
//如果用户向下滚动超过我们变量的高度,则添加类fixed nav并添加填充
如果(window.scrollY>=topOfNav){
//添加填充是因为元素由于位置:固定而从文档流中删除
document.body.style.paddingTop=nav.offsetHeight+'px';
//位置:添加css类固定导航
document.body.classList.add('fixed-nav');
}否则{
//当用户再次在导航上方滚动时,删除类和填充
document.body.style.paddingTop=0;
document.body.classList.remove('fixed-nav');
}
}
window.addEventListener('scroll',fixNav);
*{
保证金:0;
填充:0;
}
身体{
高度:800px;
背景:灰色;
}
.上层空间{
显示:块;
背景:红色;
高度:200px
}
导航{
显示:块;
宽度:100%;
排名:0;
颜色:白色;
背景:#333;
高度:100px;
}
导航{
列表样式类型:无;
}
李先生{
浮动:左;
宽度:100px;
}
.固定导航主{
位置:固定;
}

  • 菜单项1
  • 菜单项2
  • 菜单项3
支持、自由、人与人之间的关系是合理的,因为他们的劳动能力是有限的,他们的劳动能力是有限的,他们的劳动能力是有限的,他们的劳动能力是有限的,他们的劳动能力是有限的,他们的劳动能力是有限的,他们的劳动能力是有限的这是一个很好的解释。 我们的工作就是要让我们的生活充满活力!我们的生活充满活力!我们的生活充满活力!我们的生活充满活力!我们的生活充满活力!我们的生活充满活力,我们的生活充满自由,我们的生活充满活力,我们的生活充满活力天哪,猫咪,马蒂斯,尼西,再见。
你为什么不按照WordPress中的方式将你的脚本编入队列?你也应该只添加一个粘性类,而不是使用jQuery切换css。这样你可以说,如果用户立即滚动,就可以将
.sticky
放入css目标,然后使用该类的任何内容。你能提供你的工作url吗?@dingo\d我没有编入队列因为我想内联JS,出于页面速度的原因。关于添加一个类而不是切换CSS-我正在为不同的类添加一堆不同的属性,为每个类创建不同的类,并切换它们似乎同样单调乏味,如果不是更单调的话。@user7357089当然-但请注意,该网站是用希伯来语写的…不是这样在代码方面应该很重要。网站URL是
<nav id="topnav">
  <?php wp_nav_menu( array( 'menu' => 'topmenu', 'container_class' => 'top-menu', 'theme_location' => 'header-menu' ) ); ?>
</nav>
#topnav ul {
    -webkit-padding-start: 0 !important;
    margin: 0;
}
#topnav {
    direction: rtl;
    float: left;
    alignment-adjust:central;
    margin: 0 auto;
    font-weight: 400;
    width: auto;
    text-align: center;
    behavior: url(../js/pie/PIE.htc);
}
#topnav > ul {
    position: relative;
    list-style: none;
    display: block;
    position: relative;
    -webkit-padding-start: 0 !important;
    behavior: url(../js/pie/PIE.htc);
    margin: 0;
}
#topnav li,
#topnav span,
#topnav a {
    border: 0;
    margin: 0 auto;
    padding: 0;
    position: relative;
    text-align: center;
    display: block;
    behavior: url(../js/pie/PIE.htc);
}
#topnav .menu-item-440 {
    margin-left: 20px !important;
}

#topnav > ul {
    position: relative;
    list-style: none;
    display: block;
    position: relative;
    -webkit-padding-start: 0 !important;
    behavior: url(../js/pie/PIE.htc);
    margin: 0;
}
#topnav li,
#topnav span,
#topnav a {
    border: 0;
    margin: 0 auto;
    padding: 0;
    position: relative;
    text-align: center;
    display: block;
    behavior: url(../js/pie/PIE.htc);
}
#topnav .menu-item-440 {
    margin-left: 20px !important;
}
#topnav:after,
#topnav ul:after {
    content: '';
    display: block;
    clear: both;
    margin: 0 auto;
    text-align: center;
    behavior: url(../js/pie/PIE.htc);
}
#topnav a {
    color: #0099cc;
    font-size: 16px;
    font-family: 'Open Sans Hebrew', Arial, Verdana, sans-serif;
    text-decoration: none;
    padding-top: 24px;
    padding-bottom: 19px;
    padding-left: 10px;
    padding-right: 10px;
    overflow: hidden;
    transition: 0.2s;
}
.enru a {
    min-width: 40px !important;
    padding-left: 0px !important;
    padding-right: 0px !important;
}
#topnav > ul > li {
    float: right;
}
#topnav > ul > li.active a,
#topnav > ul > li:hover > a {
    color: #FFFFFF;
    background: #00ace6;
}
#topnav .has-sub {
    z-index: 1;
}
#topnav .has-sub:hover > ul {
    display: block;
    background: #ffffff;
}
#topnav .has-sub:hover > ul > li {
    display: block;
    background: #ffffff;
}
#topnav .has-sub ul {
    display: none;
    position: absolute;
    width: 280px;
    top: 100%;
    right: 0;
    behavior: url(../js/pie/PIE.htc);
}
#topnav .has-sub ul li {
    float: none;
    position: relative;
}
#topnav .has-sub ul li a {
    text-align: right;
    background: #ffffff;
    border-bottom: 1px solid #eeeeee;
    color: #00394d;
    display: block;
    line-height: 160%;
    padding: 15px 20px;
    font-size: 14px;
    margin: 0 !important;
    width: 240px;
}
#topnav .has-sub ul li:hover a {
    background: #FF9900;
    color: #ffffff;
}
#topnav .has-sub .has-sub:hover > ul {
    display: block;
}
#topnav .has-sub .has-sub ul {
    display: none;
    position: absolute;
    right: 100%;
    top: 0;
}
#topnav .has-sub .has-sub ul li a {
    background: #0099CC;

}
#topnav .has-sub .has-sub ul li a:hover {
    background: #4a5662;
}