小程序中使用css var变量(使js可以动态设置css样式属性)


Posted in Javascript onMarch 31, 2020

使用sass,stylus可以很方便的使用变量来做样式设计,其实css也同样可以定义变量,在小程序中由于原生不支持动态css语法,so,可以使用css变量来使用开发工作变简单。

基本用法

基础用法

<!--web开发中顶层变量的key名是:root,小程序使用page-->
page { 
 --main-bg-color: brown;
}

.one {
 color: white;
 background-color: var(--main-bg-color);
 margin: 10px;
}

.two {
 color: white;
 background-color: black;
 margin: 10px;
}
.three {
 color: white;
 background-color: var(--main-bg-color);
}

提升用法

<div class="one">
 <div class="two">
  <div class="three">
  </div>
  <div class="four">
  </div>
 <div>
</div>
.two { --test: 10px; }
.three { --test: 2em; }

在这个例子中,var(--test)的结果是:

  • class="two" 对应的节点: 10px
  • class="three" 对应的节点: element: 2em
  • class="four" 对应的节点: 10px (继承自父级.two)
  • class="one" 对应的节点: 无效值, 即此属性值为未被自定义css变量覆盖的默认值

上述是一些基本概念,大致说明css变量的使用方法,注意在web开发中,我们使用:root来设置顶层变量,更多详细说明参考MDN的文档

妙用css变量

开发中经常遇到的问题是,css的数据是写死的,不能够和js变量直通,即有些数据使用动态变化的,但css用不了。对了,可以使用css变量试试呀

js

// 在js中设置css变量
let myStyle = `
--bg-color:red; 
--border-radius:50%;
--wid:200px;
--hgt:200px;
`

let chageStyle = `
--bg-color:red; 
--border-radius:50%;
--wid:300px;
--hgt:300px;
`
Page({
 data: {
  viewData: {
   style: myStyle
  }
 },
 onLoad(){
  setTimeout(() => {
   this.setData({'viewData.style': chageStyle})
  }, 2000);
 }
})

wxml

<!--将css变量(js中设置的那些)赋值给style-->
<view class="container">
 <view class="my-view" style="{{viewData.style}}">
  <image src="/images/abc.png" mode="widthFix"/>
 </view>
</view>

wxss

/* 使用var */
.my-view{
 width: var(--wid);
 height: var(--hgt);
 border-radius: var(--border-radius);
 padding: 10px;
 box-sizing: border-box;
 background-color: var(--bg-color);
 transition: all 0.3s ease-in;
}

.my-view image{
 width: 100%;
 height: 100%;
 border-radius: var(--border-radius);
}

通过css变量就可以动态设置css的属性值

代码片段

https://developers.weixin.qq.com/s/aWfUGCmG7Efe

github

小程序演示

小程序中使用css var变量(使js可以动态设置css样式属性)

到此这篇关于小程序中使用css var变量的文章就介绍到这了,更多相关小程序使用css var变量内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
Mar 16 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
Feb 27 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
May 07 Javascript
js实现ArrayList功能附实例代码
Oct 29 Javascript
Node.js中HTTP模块与事件模块详解
Nov 14 Javascript
JavaScript中的console.trace()函数介绍
Dec 29 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
Node.js的基本知识简单汇总
Sep 19 Javascript
javascript实现去除HTML标签的方法
Dec 26 Javascript
element-ui使用导航栏跳转路由的用法详解
Aug 22 Javascript
javascript中函数的写法实例代码详解
Oct 28 Javascript
功能完善的小程序日历组件的实现
Mar 31 #Javascript
小程序双头slider选择器的实现示例
Mar 31 #Javascript
JavaScript实现电灯开关小案例
Mar 30 #Javascript
javascript实现计算器功能
Mar 30 #Javascript
详解Webpack抽离第三方类库以及common解决方案
Mar 30 #Javascript
记一次react前端项目打包优化的方法
Mar 30 #Javascript
12 种使用Vue 的最佳做法
Mar 30 #Javascript
You might like
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
python列表推导式操作解析
2019/11/26 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
小学领导班子对照材料
2014/08/23 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
2014年底工作总结
2014/12/15 职场文书
优秀护士事迹材料
2014/12/25 职场文书
2015年检验科工作总结
2015/04/27 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
自荐信范文
2019/05/20 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL