当前位置:首页 > 技术分析 > 正文内容

Vue基础入门,第15节 一键页面换新衣,动态修改样式的3种方法

ruisui883个月前 (02-03)技术分析20

更改样式通常有3种方法可以实现,几乎可以应对所有可能性的需求。

样式更改分为:字符串修改、数组修改、对象修改。

一、 字符串形式对样式进行更改,适用于样式名字不确定,需要动态指定的情况

1、定义5个css样式,

<style>
    .c {
        /*居中对其*/
        text-align: center
    }

    .c1 {
        font-size: 25px;
        color: blue;
        text-decoration: line-through
    }

    .c2 {
        font-size: 15px;
        color: red;
        text-decoration: underline
    }

    .c3 {
        font-family: "楷体";
        font-style: italic;
    }

    .c4 {
        font-family: "黑体";
        font-style: oblique
    }
</style>

2、定义2个展示区域,内容是对应文本,基本样式为c c1(或c2),附加样式x1(或x2)。

<!--    绑定class样式, 字符串写法,适用于样式名字不确定,需要动态指定-->
<p class="c c1" :class="x1">Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。</p>
<br>
<!--    绑定class样式, 字符串写法,适用于样式名字不确定,需要动态指定-->
<p class="c c2" :class="x2">Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。</p>

3、定义2个按钮,用于改变展示区域的样式内容,@click="x1 = `c4`"即将样式内容更改为c4

<button class="btn btn-block btn-primary" @click="x1 = `c4`">更换第1行字体样式</button>
<button class="btn btn-block btn-success" @click="x2 = `c3`">更换第2行字体样式</button>

执行效果:

二、 数组形式对样式进行更改,适用于样式个数不确定,名字不确定的情况

1、定义5个CSS样式,同上第1步

2、定义展示区域

<p class="c" :class="x9">
    Vue 要实现异步加载需要使用到 vue-resource 库。<br>
    Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。
</p>

3、定义按钮,对字体内容更新更改

<button class="btn btn-block btn-danger" @click="change3()">更换第3行字体样式</button>

4、定义按钮对应的click方法,实现为随机进行更改样式

change3() {
    let arr = ["c1", "c2", "c3", "c4"]
    let x = Math.floor(Math.random() * arr.length)
    console.log(x, arr[x])
    this.x9 = [arr[x], "c1"]
},

5、执行效果

三、采用对象的写法修改class样式,适用于样式个数确定,名字确定,需要使用的动态指定的情况

1、指定展示区域,x91为样式的对象

<p class="c" :class="x91">
    Vue 要实现异步加载需要使用到 vue-resource 库。<br>
    Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。
</p>

2、定义1个按钮,用于改变样式

<button class="btn btn-block btn-danger" @click="change4()">更换第3行字体样式</button>

3、定义X91的样式对象

data: {
    x91: {
        c1: true,
        c2: true,
        c3: true,
        c4: true
    }
},

4、通过按钮操作方法change4,将值取反

methods: {
    change4() {
        this.x91.c1 = !this.x91.c1
        this.x91.c2 = !this.x91.c2
        this.x91.c3 = !this.x91.c3
        this.x91.c4 = !this.x91.c4
    }
},

5、效果展示:

代码截图

全部源码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="static/css/bootstrap.css">
    <script src="static/js/vue.js"></script>
    <script src="static/js/axios.js"></script>
    <style>
        .c {
            /*居中对其*/
            text-align: center
        }

        .c1 {
            font-size: 25px;
            color: blue;
            text-decoration: line-through
        }

        .c2 {
            font-size: 15px;
            color: red;
            text-decoration: underline
        }

        .c3 {
            font-family: "楷体";
            font-style: italic;
        }

        .c4 {
            font-family: "黑体";
            font-style: oblique
        }
    </style>
</head>
<body class="container">
<div id="app">
    <button class="btn btn-block btn-primary" @click="x1 = `c4`">更换第1行字体样式</button>
    <button class="btn btn-block btn-success" @click="x2 = `c3`">更换第2行字体样式</button>
    <button class="btn btn-block btn-danger" @click="change3()">更换第3行字体样式</button>
    <button class="btn btn-block btn-danger" @click="change4()">更换第3行字体样式</button>
    <!--    绑定class样式, 字符串写法,适用于样式名字不确定,需要动态指定-->
    <p class="c c1" :class="x1">Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。</p>
    <br>
    <!--    绑定class样式, 字符串写法,适用于样式名字不确定,需要动态指定-->
    <p class="c c2" :class="x2">Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。</p>

    <!--    绑定class样式, 数组写法,适用于样式个数不确定,名字不确定-->
    <p class="c" :class="x9">
        Vue 要实现异步加载需要使用到 vue-resource 库。<br>
        Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。
    </p>

    <!--    绑定class样式, 对象写法,适用于样式个数确定,名字确定,需要使用的动态指定-->
    <p class="c" :class="x91">
        Vue 要实现异步加载需要使用到 vue-resource 库。<br>
        Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。
    </p>
</div>
<script>
    Vue.config.productionTip = false
    new Vue({
        el: "#app",
        data: {
            x1: "c3",
            x2: "c4",
            x9: ["c1", "c3"],
            x91: {
                c1: true,
                c2: true,
                c3: true,
                c4: true
            }
        },
        methods: {
            change3() {
                let arr = ["c1", "c2", "c3", "c4"]
                let x = Math.floor(Math.random() * arr.length)
                console.log(x, arr[x])
                this.x9 = [arr[x], "c1"]
            },
            change4() {
                this.x91.c1 = !this.x91.c1
                this.x91.c2 = !this.x91.c2
                this.x91.c3 = !this.x91.c3
                this.x91.c4 = !this.x91.c4
            }
        },
        computed: {},
        watch: {},
    })
</script>
</body>
</html>

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1513.html

标签: vue 多页面
分享给朋友:

“Vue基础入门,第15节 一键页面换新衣,动态修改样式的3种方法” 的相关文章

Vue.js 组件通信的 3 大妙招

在 Vue.js 中,组件化是其核心概念之一,允许你将复杂的界面拆分成多个独立的、可复用的组件。在构建大型应用时,如何高效地在组件之间传递数据和触发事件是非常重要的。Vue.js 提供了多种方式来处理组件间的通信,下面是最常用的 3 种方式:1.父子组件通信:通过 Props 和 Events在 V...

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

7 招教你轻松搭建以图搜图系统

作者 | 小龙责编 | 胡巍巍当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。Milvus 作为一款针对海量特征向量的相似性检索引擎,旨在...

虚幻引擎5.5现已发布 手游开发、动画制作重大改进

Epic在今天发布了虚幻引擎5.5,现可通过Epic Launcher下载。此版本在动画创作、渲染、虚拟制片、移动端游戏开发和开发人员迭代工具集等方面做出了重大改进。 官方博客:虚幻引擎5.5现已发布,在动画创作、虚拟制作和移动游戏开发方面取得了显著进步,渲染、摄像机内视觉特效和开发人员迭代等领域的...

vue中router常见的三种传参方式

目录:我们在使用vue开发的过程中使用router跳转的时候肯定会遇到传参的情况;一般情况就三种传参是最常见的;那我们就来看看都有那几种传参方式吧!第一种:{ path: '/mall:id', name: 'Mall', component:...

Vue进阶(二十六):详解router.push()

在Vue2.0路由跳转中,除了使用 <router-link> 声明式创建 a 标签来定义导航链接,还可以借助 router 的实例方法,通过编码式编写代码来实现。router.push(location)想要导航到不同的 URL,则使用 router.push 方法。这个方法会向 hi...