小程序中使用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 相关文章推荐
最简单的js图片切换效果实现代码
Sep 24 Javascript
Java 正则表达式学习总结和一些小例子
Sep 13 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
Sep 19 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
Apr 02 Javascript
JQuery工具函数汇总
Jun 15 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
微信小程序 石头剪刀布实例代码
Jan 04 Javascript
Angular.JS中的指令引用template与指令当做属性详解
Mar 30 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 Javascript
Es6 Generator函数详细解析
Feb 24 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
Nov 12 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
功能完善的小程序日历组件的实现
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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
十天学会php之第四天
2006/10/09 PHP
PHP得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
动态加载iframe
2006/06/16 Javascript
addRule在firefox下的兼容写法
2006/11/30 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python实现购物程序思路及代码
2017/07/24 Python
python实现批量注册网站用户的示例
2019/02/22 Python
python flask安装和命令详解
2019/04/02 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
python字符串反转的四种方法详解
2019/12/02 Python
Python2与Python3的区别点整理
2019/12/12 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
军训 自我鉴定
2014/02/03 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
争先创优心得体会
2014/09/12 职场文书
《山中访友》教学反思
2016/02/24 职场文书
六年级作文之自救
2019/12/19 职场文书
Go 语言结构实例分析
2021/07/04 Golang
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python