小程序中使用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 相关文章推荐
JSONP之我见
Mar 24 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
Aug 24 Javascript
js仿手机页面文件下拉刷新效果
Oct 14 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
ES7中利用Await减少回调嵌套的方法详解
Nov 01 Javascript
详解使用mpvue开发github小程序总结
Jul 25 Javascript
layui从数据库中获取复选框的值并默认选中方法
Aug 15 Javascript
Vue下拉框回显并默认选中随机问题
Sep 06 Javascript
vue中,在本地缓存中读写数据的方法
Sep 21 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 Javascript
layui 上传图片 返回图片地址的方法
Sep 26 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 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调用Oracle存储过程的方法
2008/09/12 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
Vue.js 图标选择组件实践详解
2018/12/03 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python性能优化的20条建议
2014/10/25 Python
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
python实现KNN近邻算法
2020/12/30 Python
安全资金保障制度
2014/01/23 职场文书
《日月潭》教学反思
2014/02/28 职场文书
十八届三中全会感言
2014/03/10 职场文书
2014年除四害工作总结
2014/12/06 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android