小程序中使用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 相关文章推荐
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 Javascript
js对字符的验证方法汇总
Feb 04 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
Sep 17 Javascript
非常优秀的JS图片轮播插件Swiper的用法
Jan 03 Javascript
关于页面刷新vuex数据消失问题解决方案
Jul 03 Javascript
详解Angular Reactive Form 表单验证
Jul 06 Javascript
详解开源的JavaScript插件化框架MinimaJS
Oct 26 Javascript
Javascript数组方法reduce的妙用之处分享
Jun 10 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
Aug 01 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
详解关闭令人抓狂的ESlint 语法检测配置方法
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抓取https的内容的代码
2010/04/06 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
PHP如何实现跨域
2016/05/30 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
jquery中ajax学习笔记3
2011/10/16 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
javascript中new关键字详解
2015/12/14 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
室内设计自我鉴定
2013/10/15 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
校园之星获奖感言
2014/01/29 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
小学运动会通讯稿
2015/07/18 职场文书
校园之声广播稿
2015/08/18 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python