Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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/jquery中,如何将文本和图像与单击图像对齐?_Javascript_Jquery_Html_Css - Fatal编程技术网

在javascript/jquery中,如何将文本和图像与单击图像对齐?

在javascript/jquery中,如何将文本和图像与单击图像对齐?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我看到下面的截图,复制了一个: 屏幕截图和小提琴的工作方式是,如果我点击上面的任何一项,就会发生以下变化: 背景色变为绿色 图标和文本变成白色 为了实现这一点,我使用了以下示例JQuery代码: $("#franchisehub").click(function() { if ($('.franchisehubtv').css('display') == "flex") { $('.arrow-down').css('display', 'none'); $('.franc

我看到下面的截图,复制了一个:

屏幕截图和小提琴的工作方式是,如果我点击上面的任何一项,就会发生以下变化:

  • 背景色变为绿色
  • 图标和文本变成白色
  • 为了实现这一点,我使用了以下示例JQuery代码:

    $("#franchisehub").click(function() {
      if ($('.franchisehubtv').css('display') == "flex") {
        $('.arrow-down').css('display', 'none');
        $('.franchisehubtv').css('display', 'none');
        $('#franchisehub img.black').css('display', 'none');
    
      } else {
        resetAll();
        $('#franchisehub').css('background-color', 'green');
        $('#franchisehub p').css('color', 'white');
        $('.franchisehubtv').css('display', 'flex');
        $('#franchisehub img.black').css('display', 'none');
        $('#franchisehub img.white').css('display', 'inline-block');
    
      }
    
    });
    

    问题陈述:

    在小提琴中,当我点击任何一个项目时,文本(出现在方框中)会朝着框的中心移动,而当它没有被点击时,它会出现在方框之外(我不希望发生这种情况)


    我想知道我需要在小提琴中做些什么更改,以便在单击项目和不单击项目时,它应该保持在相同的位置

    如果您可以共享HTML代码,那就太好了,无论如何,这里是您如何用一种简单的方式实现这一点的

    $(.main div”)。在('click',function()上{
    $(this.css('background-color','green');
    $(this.css('color','white');
    });
    
    
    一些文本
    一些文本
    一些文本
    
    未选择框时,两个图像都会显示,这会向下推送文本。
    另外,我建议不要使用内联CSS样式,而是使用更通用的选择器来保持它

    下面是一个例子:

    jQuery('.product')。在('click',function()上){
    jQuery(this).toggleClass('selected');
    });
    
    。产品所有内容{
    背景色:#f0;
    }
    .产品内容{
    左边距:15%;
    右边距:15%;
    显示器:flex;
    证明内容:之间的空间;
    对齐项目:居中;
    填充:1rem;
    }
    .产品内容{
    宽度:10%;
    文本对齐:居中;
    高度:150像素;
    垫面:1%;
    左:1%;
    右:1%;
    边框样式:实心;
    边框宽度:3倍;
    边框颜色:rgb(145147150);
    背景色:白色;
    边界半径:10px;
    字体大小:15px;
    字体系列:“Roboto”;
    线高:1.2;
    颜色:rgb(58,59,60);
    }
    .选定的产品{
    背景颜色:绿色;
    颜色:白色;
    }
    .产品名称:白色{
    显示:无;
    }
    .产品图片为黑色{
    显示:块;
    }
    .product.selected img.white{
    显示:块;
    }
    .product.selected img.black{
    显示:无;
    }
    
    特许经营中心

    基于云计算和移动

    商业分析

    技术支持

    订单管理

    员工管理

    白标

    品牌控制

    潜在客户跟踪与管理;客户关系管理

    自定义发票

    目标设定

    定制工具

    版税计算器

    电子邮件营销


    这是一个很长的答案,所以我把它放在这里

    在原始CSS中,您应该首先隐藏第二个图像

    .white{
     display: none;
    }
    
    然后,在脚本中,单击时可以隐藏.black:

     $("#franchisehub").click(function() {
          if ($('.franchisehubtv').css('display') == "flex") {
            $('.arrow-down').css('display', 'none');
            $('.franchisehubtv').css('display', 'none');
            $('#franchisehub img.white').css('display', 'inline-block');   
            $('#franchisehub img.black').css('display', 'none');
    
          } else {
            resetAll();
            $('#franchisehub').css('background-color', 'green');
            $('#franchisehub p').css('color', 'white');
            $('.franchisehubtv').css('display', 'flex');
            $('#franchisehub img.black').css('display', 'none');
            $('#franchisehub img.white').css('display', 'inline-block');
    
          }
    
    在resetAll()中,还应该有以下内容:

      $('#franchisehub img.black').css('display', 'inline-block');
      $('#franchisehub img.white').css('display', 'none');
    

    但是您的代码有这么多重复,您应该找到减少代码量的方法。这个功能应该缩短很多

    当一个框未被选中时,这两个图像似乎都会显示,这会将文本向下推。
    resetAll()
    函数中有什么?此外,我建议使用更通用的选择器,这样您就不必重复自己的操作。请参阅。@showdev为了使我的代码模块化,我使用了resetAll()函数,这样就不必编写代码行。是的,两个图像被显示,当它被点击时显示白色,当它没有被点击时显示黑色。我的意思是,当一个框没有被选中时,两个图像都显示出来。我假设您想在这两个图像之间切换。@showdev是对的。你应该隐藏第二个图像,然后单击时显示。@DaleNguyen有什么办法,我们可以用当前代码吗?单击后文本似乎再次下降。我不能为你做任何事情,请看第一个框!没关系。你可以将修复程序应用到其他框中,如果可能的话,找到一种使代码干净的方法。没有时间清理jquery和html代码。很快就可以了。你只需要为你的第二个盒子设置原始的CSS,它就会很好#cloudbasedmobile.white{display:inline block;}#cloudbasedmobile.black{display:none;}现在看起来不错。你给了我周末的计划。将尝试使用toggle类来查看如何执行此操作。