样式
div{
width: 100px;
height: 100px;
background-color: red;
opacity: 1;
margin-bottom: 100px;
border: 1px solid;
}
<div>width</div>
<div>height</div>
<div>opacity</div>
<div>borderwidth</div>
<script>
var divlist = document.getElementsByTagName("div");
var arrAttr = ['width','height','opacity','borderWidth'];
var targetAttr = [500,200,50,50]
for(let i=0;i<divlist.length;i++){
divlist[i].onclick = function(){
move(this,arrAttr[i],targetAttr[i])
}
}
function move(ele,attr,target){
clearInterval(ele.timer);
var ispeed = null;
var icur = null;
ele.timer = setInterval(function(){
if(attr == 'opacity'){
icur = parseFloat(getStyle(ele,attr)) *100;
}else{
icur = parseFloat(getStyle(ele,attr));
}
ispeed = (target - icur) / 9;
ispeed = ispeed > 0 ? Math.ceil(ispeed) : Math.floor(ispeed);
if(target == icur){
clearInterval(ele.timer)
}else{
if(attr == 'opacity'){
ele.style[attr] = (icur + ispeed) / 100;
}else{
ele.style[attr] = icur + ispeed + 'px';
}
}
},30)
}
function getStyle(elem,prop){
if(window.getComputedStyle){
return window.getComputedStyle(elem)[prop]
}else{
return elem.currentStyle[prop]
}
}
</script>