Vue实现背景更换颜色操作
如下所示:
<!-- 分页上下页改变背景图效果 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="">
<script type="text/javascript" src="../node_modules/vue/dist/vue.js"></script>
<style type="text/css" media="screen">
.page{
list-style: none;
}
.page>li{
float: left;
margin-left: 10px;
}
.page>li>a{
text-decoration: none;
}
.active{
color: red;
text-decoration: display;
}
div{
width: 500px;height: 500px;
}
</style>
</head>
<body >
<div id="app" v-bind:style="{backgroundColor:bgCol}">
<ul class="page">
<li>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" v-on:click="decrease" >上一页</a>
</li>
<li v-for="n in totalPage">
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" v-bind:class="n==activeNum?'active':''">{{n}}</a>
</li>
<li>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="increase">下一页</a>
</li>
</ul>
</div>
<script type="text/javascript">
var exampleData={
//msg:"Hello Vue",
bgCol:"#DB8623FF",
totalPage:10,
activeNum:3,
}
var app = new Vue({
el:'#app',
data:exampleData,
methods:{
decrease:function(){
this.activeNum==1?'':this.activeNum-=1;
this.bgCol=this.getRandom();
},
increase:function(){
this.activeNum==10?'':this.activeNum+=1;
this.bgCol=this.getRandom();
},
getRandom:function(){
var r=Math.floor(Math.random()*256);
var g=Math.floor(Math.random()*256);
var b=Math.floor(Math.random()*256);
var a=Math.random().toFixed(1);
return `rgba(${r},${g},${b},${a})`
}
}
})
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>自定义指令实现随机背景</title>
<style type="text/css" media="screen">
#app{
width: 999px;
height: 999px;
}
</style>
</head>
<body>
<h3>自定义指令</h3>
<div id="app" v-change-background-color="myBgColor">
<h3 >
<input type="text" v-model="myBgColor" placeholder="请输入16进制颜色">
</h3>
</div>
<script src="../node_modules//vue/dist/vue.js"></script>
<script>
var exampleData = {
myBgColor: "#5FCA34",
};
new Vue({
el: "#app",
data: exampleData,
methods:{
getRandom:function(){
var r=Math.floor(Math.random()*256);
var g=Math.floor(Math.random()*256);
var b=Math.floor(Math.random()*256);
var a=Math.random().toFixed(1);
return `rgba(${r},${g},${b},${b})`
}
},
directives: {
changeBackgroundColor: {
bind: function(el, bindings) {
//el:指定绑定dom元素 h3dom对象
//bindings:自定义指令对象
//v-change-background-color="myBgColor"
//bindings.value;=="#ff0000"
var r=Math.floor(Math.random()*256);
var g=Math.floor(Math.random()*256);
var b=Math.floor(Math.random()*256);
var a=Math.random().toFixed(1);
el.style.backgroundColor =`rgba(${r},${g},${b},${a})`;
console.log("绑定成功");
},
update: function(el, bindings) {
console.log('已更新数据');
var r=Math.floor(Math.random()*256);
var g=Math.floor(Math.random()*256);
var b=Math.floor(Math.random()*256);
var a=Math.random().toFixed(1);
el.style.background = `rgba(${r},${g},${b},${a})`
}, //更新数据
}
}
});
</script>
</body>
</html>
补充知识:vue统一设置了背景色,单独改变某一页的背景色
有时我们会遇到单独改变某个组件的背景填充色,而我们已经在index.html中引入了公用的css样式(body中设置了背景色),由于单个组件没有body标签,于是要修改单个组件的背景色只需添加如下代码即可。
beforeCreate () {
document.querySelector('body').setAttribute('style', 'margin: 0 auto; width: 100%; max-width: 750px;min-width: 300px; background:#171b2a; overflow-x: hidden;height: 100%;');
}
以上这篇Vue实现背景更换颜色操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
以上是 Vue实现背景更换颜色操作 的全部内容, 来源链接: utcz.com/p/237498.html