首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改切换后正文的背景色和不透明度

更改切换后正文的背景色和不透明度
EN

Stack Overflow用户
提问于 2019-10-13 23:49:41
回答 1查看 101关注 0票数 0

我昨天发布了这个问题(jQuery/JavaScript if statement for two toggles),我想防止用户同时打开两个切换。从一些用户的建议中,我得到了我想要的结果,代码如下:

代码语言:javascript
复制
$(document).ready(function() {
  $('.toggle-1').click(function() {
    if ($('.toggle-2').hasClass('active')) {
      // remove toggle-2 active classes
      $('.toggle-2').removeClass('active');
      $('.toggle-2-content').removeClass('active');
    }

    $('.toggle-1').toggleClass('active');
    $('.toggle-1-content').toggleClass('active');
  });

  $('.toggle-2').click(function() {
    if ($('.toggle-1').hasClass('active')) {
      // remove toggle-1 active classes
      $('.toggle-1').removeClass('active');
      $('.toggle-1-content').removeClass('active');
    }

    $('.toggle-2').toggleClass('active');
    $('.toggle-2-content').toggleClass('active');
  });
});

现在,我试图使用户不能在背景中滚动,在活动切换后设置不同的背景色和不透明度,但添加以下代码无法成功做到这一点:

代码语言:javascript
复制
                                    $('body').css({
  overflow: 'hidden',
  background-color: 'black',
  opacity: '0.5'
 });

我在上面的代码中插入新代码的方式如下:

代码语言:javascript
复制
$(document).ready(function() {
  $('.toggle-1').click(function() {
    if ($('.toggle-2').hasClass('active')) {
      // remove toggle-2 active classes
      $('.toggle-2').removeClass('active');
            $('.toggle-2-content').removeClass('active');
    }

    $('.toggle-1').toggleClass('active');
    $('.toggle-1-content').toggleClass('active');


    $('body').css({
      overflow: 'hidden',
      background-color: 'black',
      opacity: '0.5'
     });
  });



  $('.toggle-2').click(function() {
    if ($('.toggle-1').hasClass('active')) {
      // remove toggle-1 active classes
      $('.toggle-1').removeClass('active');
            $('.toggle-1-content').removeClass('active');
    }

    $('.toggle-2').toggleClass('active');
    $('.toggle-2-content').toggleClass('active');
  });
});

现在,切换甚至不起作用了。如果有人能告诉我我做错了什么,我将不胜感激。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-13 23:59:53

这是因为background-color的破折号,对于js来说把破折号放在变量中是无效的。(它将被解释为减法运算符)

试一试

代码语言:javascript
复制
$('body').css({
      overflow: 'hidden',
      'background-color': 'black',
      opacity: '0.5'
});

代码语言:javascript
复制
$('body').css({
      overflow: 'hidden',
      backgroundColor: 'black', // this is valid in jQuery css function
      opacity: '0.5'
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58365223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档