Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 Can';t通过使用jQuery切换类来触发转换_Javascript_Jquery_Css - Fatal编程技术网

Javascript Can';t通过使用jQuery切换类来触发转换

Javascript Can';t通过使用jQuery切换类来触发转换,javascript,jquery,css,Javascript,Jquery,Css,我想做一个简单的转换,但很难用jQuery完成。 我在eventListener中创建要在JS中转换的元素,如下所示: const searchHint = ` <h3 id="search_hint" class="invizible"> Enter a search term to continue! </h3> ` $('#search_label').append(searchHint) $('#search_hint').removeClass(

我想做一个简单的转换,但很难用jQuery完成。 我在eventListener中创建要在JS中转换的元素,如下所示:

const searchHint = `
  <h3 id="search_hint" class="invizible">
    Enter a search term to continue!
  </h3>
`
$('#search_label').append(searchHint)
$('#search_hint').removeClass('invizible').addClass('make_vizible')
据我所知,这将导致搜索提示元素慢慢淡入。我使用invizible类创建它,其中存在一个transition属性以及要转换的属性的起始值。然后我将这些类切换到具有不同颜色值的类

发生的情况是,元素只是显示,而不是动画

有什么想法吗?

有两个问题:

  • transition
    属性在
    invizible
    类中设置。因此,一旦删除它,该属性就不适用。要解决此问题,请将
    转换关联到元素id

  • 渲染时,
    removeClass
    addClass
    可能会应用到附加
    #search_hint
    的同一帧。为了缓解这种情况,可以等待帧渲染,然后添加/删除该类。我使用超时值为零的
    setTimeout
    完成了此操作

  • const searchHint=`
    输入搜索条件以继续!
    `;
    $('search_label')。追加(searchHint);
    setTimeout(函数(){
    $('search_hint').removeClass('invizible').addClass('make_vizible');
    },0);
    
    #搜索提示{
    颜色:白色;
    过渡:颜色1s轻松;
    }
    #搜索提示不可修改{
    颜色:白色;
    }
    #搜索提示{
    颜色:#404040;
    }
    
    
    有两个问题:

  • transition
    属性在
    invizible
    类中设置。因此,一旦删除它,该属性就不适用。要解决此问题,请将
    转换关联到元素id

  • 渲染时,
    removeClass
    addClass
    可能会应用到附加
    #search_hint
    的同一帧。为了缓解这种情况,可以等待帧渲染,然后添加/删除该类。我使用超时值为零的
    setTimeout
    完成了此操作

  • const searchHint=`
    输入搜索条件以继续!
    `;
    $('search_label')。追加(searchHint);
    setTimeout(函数(){
    $('search_hint').removeClass('invizible').addClass('make_vizible');
    },0);
    
    #搜索提示{
    颜色:白色;
    过渡:颜色1s轻松;
    }
    #搜索提示不可修改{
    颜色:白色;
    }
    #搜索提示{
    颜色:#404040;
    }
    
    
    您必须在超时时间内包装类的更改,以便浏览器有时间重新绘制等。您必须在超时时间内包装类的更改,以便浏览器有时间重新绘制等。
    #search_hint.invizible {
      color: white;
      transition: color 1s ease;
    }
    
    #search_hint.make_vizible {
      color: #404040;
    }