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

回到顶部