Jquery 如何仅在移动设备上添加菜单图标?

Jquery 如何仅在移动设备上添加菜单图标?,jquery,Jquery,当我将页面缩小到769px以下时,如何添加菜单图标 为了在移动设备上显示菜单,我在正在开发的一页网站上添加了一个按钮 在jquery中使用此选项: if($(window).width() < 769){ $('html').append('<i class="fa fa-bars menu-icon" aria-hidden="true"></i>'); } if($(窗口).width()

当我将页面缩小到769px以下时,如何添加菜单图标

为了在移动设备上显示菜单,我在正在开发的一页网站上添加了一个按钮

在jquery中使用此选项:

if($(window).width() < 769){
    $('html').append('<i class="fa fa-bars menu-icon" aria-hidden="true"></i>');
}
if($(窗口).width()<769){
$('html')。附加('');
}
如果最初启动站点时窗口大小低于769px,则会显示菜单。但是,如果我在大屏幕上加载页面,并尝试将窗口大小调整为769以下的宽度,则不会立即显示菜单图标。相反,我必须刷新页面以使其显示


提前感谢您,因为您运行的脚本只运行一次。。。我猜是页面加载。为什么它会在调整窗口大小时做出反应?您在脚本中没有指定这一点

只需在原始html中添加图标,并使用以下选项显示/隐藏图标,即可轻松得多:


也可以,而不仅仅是基于窗口宽度。

因为您运行的脚本只运行一次。。。我猜是页面加载。为什么它会在调整窗口大小时做出反应?您在脚本中没有指定这一点

只需在原始html中添加图标,并使用以下选项显示/隐藏图标,即可轻松得多:


也可以,不仅仅是基于窗口宽度。

您必须将代码放入
$(窗口)中。调整大小()
如下所示,以便在页面大小被修改时;处理程序将被调用,您可以相应地运行逻辑:

$('html').append('<i class="fa fa-bars menu-icon" aria-hidden="true"></i>'); //append the icon to html
$("i.fa-bars.menu-icon").hide(); //hide it initially

$(window).resize(function() {
    if($(window).width() < 769){
        $("i.fa-bars.menu-icon").show(); //show it on mobile view
    }
    else
    {
        $("i.fa-bars.menu-icon").hide(); //hide it on bigger screen
    }
}).trigger('resize');//firing the resize immediately
$('html')。追加(“”)//将图标附加到html
$(“i.fa-bar.menu icon”).hide()//先把它藏起来
$(窗口)。调整大小(函数(){
如果($(窗口).width()<769){
$(“i.fa-bar.menu icon”).show();//在移动视图上显示它
}
其他的
{
$(“i.fa-bar.menu icon”).hide();//在更大的屏幕上隐藏它
}
}).trigger('resize')//立即启动调整大小命令

您必须将代码放入
$(窗口)中。调整大小()
如下所示,以便在修改页面大小时;处理程序将被调用,您可以相应地运行逻辑:

$('html').append('<i class="fa fa-bars menu-icon" aria-hidden="true"></i>'); //append the icon to html
$("i.fa-bars.menu-icon").hide(); //hide it initially

$(window).resize(function() {
    if($(window).width() < 769){
        $("i.fa-bars.menu-icon").show(); //show it on mobile view
    }
    else
    {
        $("i.fa-bars.menu-icon").hide(); //hide it on bigger screen
    }
}).trigger('resize');//firing the resize immediately
$('html')。追加(“”)//将图标附加到html
$(“i.fa-bar.menu icon”).hide()//先把它藏起来
$(窗口)。调整大小(函数(){
如果($(窗口).width()<769){
$(“i.fa-bar.menu icon”).show();//在移动视图上显示它
}
其他的
{
$(“i.fa-bar.menu icon”).hide();//在更大的屏幕上隐藏它
}
}).trigger('resize')//立即启动调整大小命令


Hi@Wosley,请检查基于媒体查询的CSS显示/隐藏是更好的方法。Hi@Wosley,请检查基于媒体查询的CSS显示/隐藏是更好的方法。这将在每次调整指定宽度下的窗口大小时添加一个图标。现在,您正在模拟CSS媒体查询,对每个调整大小的像素进行宽度检测。这不是性能,也不是性能necessary@Alex-我同意。。。!我试过了,但问题是,只有当你调整页面大小时,它才会添加。如果我在“移动视图”中立即打开页面,按钮将永远不会显示,因为你永远无法在移动视图中调整大小。另外,在你的回答中,你使用了.hide()函数。这对搜索引擎优化不是坏事吗?谢谢你advance@WosleyAlarico-更新代码位以处理您在移动设备上面临的问题。我真的不能判断你的搜索引擎优化问题。。。!这将在每次在指定宽度下调整窗口大小时添加一个图标。现在,您正在模拟css媒体查询,并对每个调整大小的像素进行宽度检测。这不是性能,也不是性能necessary@Alex-我同意。。。!我试过了,但问题是,只有当你调整页面大小时,它才会添加。如果我在“移动视图”中立即打开页面,按钮将永远不会显示,因为你永远无法在移动视图中调整大小。另外,在你的回答中,你使用了.hide()函数。这对搜索引擎优化不是坏事吗?谢谢你advance@WosleyAlarico-更新代码位以处理您在移动设备上面临的问题。我真的不能判断你的搜索引擎优化问题@Alex.我不喜欢使用display:none,因为我认为它可能对SEO有害,因为它仍然会作为隐藏内容出现。如果我错了,希望你能纠正我。@WosleyAlarico不,它只是一个隐藏图标。。。由于google for instane认识到您的站点对移动设备友好,所以关于seo的理由就更好了。这绝对是最好的practice@WosleyAlarico所有的大框架,比如bootstrap,都是这样做的:)这就是媒体查询的目的!非常感谢你的解释。谢谢。那么我更喜欢它,因为它比使用jquery更简单。@WosleyAlarico没问题,不客气。不过,你应该知道,在做网站的时候…@Alex。我不喜欢使用display:none,因为我认为这对搜索引擎优化不好,因为它仍然会作为隐藏内容出现。如果我错了,希望你能纠正我。@WosleyAlarico不,它只是一个隐藏的图标。。。由于google for instane认识到您的站点对移动设备友好,所以关于seo的理由就更好了。这绝对是最好的practice@WosleyAlarico所有的大框架,比如bootstrap,都是这样做的:)这就是媒体查询的目的!非常感谢你的解释。谢谢。那么我更喜欢它,因为它比使用jquery更简单。@WosleyAlarico没问题,不客气。不过,你应该知道,在做网站的时候。。。