如何在用jQuery的remove移除样式时加入过渡时间,没有过渡直接删除感觉十分僵硬?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在用jQuery的remove移除样式时加入过渡时间,没有过渡直接删除感觉十分僵硬?相关的知识,希望对你有一定的参考价值。

如何在用jQuery的remove移除样式时加入过渡时间,没有过渡直接删除感觉十分僵硬,下面是我的代码: $("#wudi").click(function()
if($("#firstpane").hasClass("haha"))
$("#firstpane").removeClass("haha");
else
$("#firstpane").addClass("haha");
);
用css3加入tranform或者过渡时间的话都是add的时候过渡起作用,而删除的时候过渡就不起作用了,用jq先隐藏在删除样式会出现问题,它把整个元素都删除了或者隐藏了,先淡出在移除也是一样,元素直接消失了

参考技术A

监听动画结束。看你是animation还是transition了。例如你定义了haha的动画,那么jquery来监听haha的动画结束


transition

transitionend 事件会在 CSS transition 结束后触发. 当transition完成前移除transition时,比如移除css的transition-property 属性,事件将不会被触发.如在transition完成前设置  display 为"none",事件同样不会被触发。



animation

animationend 事件会在一个 CSS 动画完成时触发(不包括完成前就已终止的情况,例如元素变得不可见或者动画从元素中移除)。


本回答被提问者和网友采纳

[ jquery 文档处理 empty() remove([expr]) detach([expr]) ] 此方法用于把所有匹配的元素移除

此方法用于把所有匹配的元素移除:

remove([expr])

概述

从DOM中删除所有匹配的元素

这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除

 

empty()

概述

删除匹配的元素集合中所有的子节点

detach([expr])

概述

从DOM中删除所有匹配的元素。

这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来

实例:

<html lang=‘zh-cn‘>
<head>
<title>Insert you title</title>
<meta http-equiv=‘description‘ content=‘this is my page‘>
<meta http-equiv=‘keywords‘ content=‘keyword1,keyword2,keyword3‘>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type=‘text/javascript‘ src=‘./js/jquery-1.12.1.min.js‘></script>
<style type="text/css">
    *{margin:0;padding:0;}
    html{font:400 15px/1.2em ‘Courier New‘;color:#666;width:750px;margin:25px auto;}
    ul{list-style:none;}
    .hover{color:#FF96EC;}
    .wrapAll{color:#FF96EC;}
</style>
<script type=‘text/javascript‘>
    $(function(){
      $(‘.wrap‘).empty();   //删除子节点(包含文本节点),但是保留元素节点本身
      $(‘li‘).remove(‘.active‘); // 从DOM中删除节点,但是不会从jquery对象中将节点删除,但是节点本身的绑定事件,附加的数据呀都会被删除,也就是说只是保留了节点本身
      $(‘li‘).detach(‘.detach‘); // 从DOM中删除所有匹配的元素,这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素,与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来
    });
</script>
</head>
<body>
    <div id=‘demo‘>
        <div class=‘noClassDemo‘>
            <ul class=‘list‘>
                <li>Index value :</li>
                <li>Index value :</li>
                <li>Index value :</li>
                <li>Index value :</li>
                <li>Index value :</li>
                <li class=‘detach‘>Index value :</li>
                <li class=‘active‘>Index</li>
                <li class=‘wrap‘>Index value :</li>
                <li>Index value :</li>
            </ul>
            <div>
                <p class=‘list‘>this is unwrap test</p>
            </div>
        </div>
        <p class=‘list‘>this is unwrap test</p>
    </div>
</body>
</html>

 

 

以上是关于如何在用jQuery的remove移除样式时加入过渡时间,没有过渡直接删除感觉十分僵硬?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用jquery移除CSS样式

怎样用jq在某个样式中删除某一条样式

jquery 点击增加样式,点击移除样式

jquery之remove(),detach()方法详解

JQuery实现样式设置追加移除与切换的方法

jquery中怎么删除<ul>中的整个<li>包括节点