封装函数通过输入(元素,属性,目标值)改变div样式

## 假设一个div样式如下
```html
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}

div {
width: 100px;
height: 100px;
background-color: red;
left: 0;
top: 0;
position: absolute;
opacity: 1;
}
</style>
</head>

<body>
<div></div>
<script src="./animation.js"></script>
<script>
var div = document.querySelector(‘div‘);
// animate(div, ‘width‘, 500);
// animate(div, ‘opacity‘, 50);
animate(div, {
width: 200,
left: 500,
opacity: 50
});
</script>
</body>

</html>
```

## 只针对于单个样式

```javascript
function getstyle(el, property) {
if (getComputedStyle) {
return getComputedStyle(el)[property]
} else {
return el.currentstyle[property];
}
}

function animate(el, properties) { //el:元素;properties{property:属性;target:目标};
clearInterval(el.timerId)
el.timerId = setInterval(function() {
for (var property in properties) {
var current;
var target = properties[property];
if (property === ‘opacity‘) {
current = Math.round(parseFloat(getstyle(el, ‘opacity‘)) * 100)
} else {
current = parseInt(getstyle(el, property))
}
var speed = (target - current) / 30;
speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
if (property === ‘opacity‘) {
el.style.opacity = ((current + speed) / 100)
} else {
el.style[property] = (current + speed) + ‘px‘;
}
}
}, 10)
}
```

## 针对多个样式
```javascript
function getstyle(el, property) {
if (getComputedStyle) {
return getComputedStyle(el)[property]
} else {
return el.currentstyle[property];
}
}

function animate(el, properties) { //el:元素;properties{property:属性;target:目标};
clearInterval(el.timerId)
el.timerId = setInterval(function() {
for (var property in properties) {
var current;
var target = properties[property];
if (property === ‘opacity‘) {
current = Math.round(parseFloat(getstyle(el, ‘opacity‘)) * 100)
} else {
current = parseInt(getstyle(el, property))
}
var speed = (target - current) / 30;
speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
if (property === ‘opacity‘) {
el.style.opacity = ((current + speed) / 100)
} else {
el.style[property] = (current + speed) + ‘px‘;
}
}
}, 10)
}
```

原文地址:https://www.cnblogs.com/lilansheng/p/11621247.html

时间: 2024-10-08 19:46:43

封装函数通过输入(元素,属性,目标值)改变div样式的相关文章

JS改变Div样式属性示例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

作品第一课----改变DIV样式属性

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .btn { margin: 0 auto; padding-left: 30%;} .img { width: 200px; height:

在线改变div样式的颜色以及高跟宽度的JS特效代码

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> body { background: #00b38a center no-repeat; overflow: hidden; color: whit

监听元素属性改变事件的方法

一.onchange事件只在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效.(就是说你在输入框中输入完内容,输入完了,然后鼠标点别的地方触发该事件)二.oninput事件oninput 事件在用户输入时触发.不支持JS等赋值改变的元素属性.该事件在 <input> 或 <textarea> 元素的值发生改变时触发.(也就是说,不用输入完,边输入边触发该事件)①但是,这个方法是HTML5中的标准事件,IE9以下的浏览器是不支持oninput事件的.②使用时,还需要oni

变速动画函数封装增加任意多个属性、透明度和层级

//计算后的样式属性---- 一个元素的任意的一个样式属性值function getStyle(element,attr) { //判断这个浏览器是否支持这个方法 return window.getComputedStyle?window.getComputedStyle(element,null)[attr]:element.currentStyle[attr];}//匀速动画function animate(element,json,fn) { //element--元素 attr--属性名

jquery获取、改变元素属性值

//标签的属性称作元素属性,在JS里对应的DOM对象的对应属性叫DOM属性.JS里的DOM属性名有时和原元素属性名不同. //==================================操作元素属性================================== //返回元素指定属性值 var txt1_val=$("#txt1").attr("value"); //通过元素的DOM属性名更改DOM属性值 $("#txt1").att

绑定元素属性改变不通知界面

情景假设:绑定的是一个Point,当Point的X或者Y属性发生改变时,绑定的点也随界面改变 此时界面不会发生改变 原因:当X或者Y属性发生改变时并没有触发Point的Set方法 1 <Grid> 2 <Grid.Resources> 3 <local:PConverter x:Key="converter"/> 4 <local:PointsConverter x:Key="pointsC"/> 5 6 <St

变速动画函数封装增加任意多个属性值

//计算后的样式属性---- 一个元素的任意的一个样式属性值function getStyle(element,attr) { //判断这个浏览器是否支持这个方法 return window.getComputedStyle?window.getComputedStyle(element,null)[attr]:element.currentStyle[attr];}//匀速动画function animate(element,json,fn) { //element--元素 attr--属性名

jQuery元素属性attr设置多个键值或函数

Js代码   $("Element").attr(name) '取得第一个匹配的属性值,比如$("img").attr("src") $("Element".attr(key,value)") '某一个元素设置属性 $("Element".attr({key:value,key1:value,....})) ‘为某个元素一次性设置多个属性 $("Element").attr(k