IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue 之 获取并修改元素样式(比如案例取色器的实现) -> 正文阅读

[JavaScript知识库]Vue 之 获取并修改元素样式(比如案例取色器的实现)

Vue 之 获取并修改元素样式(经典案例取色器)

一、利用原生 js

利用相关dom api 取到元素(如果你的项目中引入了 jQuery,也可以使用 jq 的 api ),这里使用的是原生的;

注:

  1. 如果你使用的是单个样式修改的是带中横线的样式属性(如 margin-top),那么代码中的样式需要修改成驼峰格式的(如 marginTop );多个样式的写法可使用模板字符串(反引号),使用模板字符串的写法不用将中横线的样式属性改成驼峰格式,且可进行代码换行;
  2. 如果你使用的是class,因为 class 定义的不是唯一性,所以存在多个的情况,取到的值是一个数组,那么你取值或者赋值的时候需要找到对应的那个元素,这个自行打开控制台查找(最好使用唯一的class,这样默认就是 [0]id 的话就不存在这个情况);
  3. 这种方式只支持行内样式

选其一即可

  • 利用 id
// 单个样式
document.getElementById('xxx').style.color
// 多个样式
document.getElementById('xxx').style.cssText 
  • 利用 class
// 单个样式
document.getElementsByClassName('xxx')[0].style.color
// 多个样式
document.getElementsByClassName('xxx')[0].style.cssText
  • 示例

单个样式:

let oldBoxColor = document.getElementsByClassName('oldBox')[0].style.color;
document.getElementsByClassName('newBox')[0].style.color = oldBoxColor;

多个样式:

document.getElementsByClassName('newBox')[0].style.cssText = `
	background-color: #ccc;
	color: blue;
`;

?
?
?

二、利用 Vue的 v-bind 指令和 ref 属性

?

<div id="app">
    <div class="oldBox" ref="oldBox" style="color: #ccc;">oldBox</div>
    <br>
    <div class="newBox" ref="newBox" :style="{ color: selectedColor }" @click="getOldBoxColor">newBox</div>
</div>

?

注:这种方式同样只支持行内样式,通过 ref 值和原生 js 的写法本质上是一样的;

let vm = new Vue({
    el: '#app',
    data(){
        return {
            selectedColor: ''
        }
    },
    methods: {
        getOldBoxColor() {
        	// 这两种写法都能实现
            // this.selectedColor = this.$refs.oldBox.style.color; // 第一种写法
            this.$refs.newBox.style.color = this.$refs.oldBox.style.color; // 第二种写法
        }
    }
});

?
另:

  1. 如果需要通过动态切换 js变量来切换元素绑定的 class类名,达到元素样式的变化也可;只是这种情况需要先写好各自类型对应的样式,看实际需求而定;
  2. 多个样式的写法同原生 js,可参考上面的描述。

?
?
?

如有不足,望大家多多指点! 谢谢!

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:15:09  更:2021-11-22 12:16:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:17:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码