简体   繁体   English

Div样式随着动画而改变吗?

[英]Div style change with animation?

Is it possible add an animation when changing the style.display of an div to none/block? 将div的style.display更改为none / block时是否可以添加动画?

HTML: HTML:

 <label><input type="radio" name="All" id="all" onclick="onChange(this);" value="all" />All</label>

JS: JS:

function onChange(vl){
    let a = String(vl.value);

    if (a=="all"){
     var divsToHide = document.getElementsByClassName("prs");

    for(var i = 0; i < divsToHide.length; i++)
    {
    divsToHide[i].style.display = "block";
    }
    }
 }

you means fadeout ? 你的意思是淡出吗?

.prs {
  transition: all 1s;     
  opacity: 1;
}

.prs.hidden {
  opacity: 0;
  width: 0;
  height: 0;
  padding: 0;
}

when you want to hide .prs , 当您想隐藏.prs

change the class to operate the style.display 更改类以操作style.display

I don't what you mean exactly but you can use jQuery's Toggle. 我不是您的意思,但是您可以使用jQuery的Toggle。 When you click the button the div will show & hide animated. 当您单击按钮时,div将显示并隐藏动画。

See my fiddle: https://fiddle.jshell.net/leagz/8urn5qxh/1/ 看看我的小提琴: https : //fiddle.jshell.net/leagz/8urn5qxh/1/

i was create only with in a pure java script .if you need some animation effect add some class 我是用纯Java脚本创建的。如果需要一些动画效果,请添加一些class

 var check =""; function change(vl){ let a = String(vl.checked); var divsToHide = document.getElementsByClassName("prs"); if ((vl.checked)&& (check == 0)){ for(var i = 0; i < divsToHide.length; i++) { divsToHide[i].style.display = "block"; } check=1; } else{ vl.checked = false; check=0; for(var i = 0; i < divsToHide.length; i++) { divsToHide[i].style.display = "none"; } } } 
 .prs{display:none;} 
 <label><input type="radio" name="All" id="all" onclick="change(this)" value="all" />All</label> <div class="prs">hello</div> <div class="prs">hello</div> <div class="prs">hello</div> 

Animation with class 课堂动画

  var check =""; function change(vl){ let a = String(vl.checked); var divsToHide = document.getElementsByClassName("prs"); if ((vl.checked)&& (check == 0)){ for(var i = 0; i < divsToHide.length; i++) { divsToHide[i].classList.toggle("show"); } check=1; } else{ vl.checked = false; check=0; for(var i = 0; i < divsToHide.length; i++) { divsToHide[i].classList.toggle("show"); } } } 
  .prs{opacity:0; width:0;height:0;} .show{width:200px;height:30px;border:1px solid red;display:block;opacity:1;} div{transition:all 0.3s ease-in;position:relative;} 
 <label><input type="radio" name="All" id="all" onclick="change(this)" value="all" />All</label> <div class="prs" >hello</div> <div class="prs">hello</div> <div class="prs">hello</div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM