小程序中使用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 小练习(实例代码)
Aug 07 Javascript
javascript客户端解决方案 缓存提供程序
Jul 14 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
jQuery判断checkbox是否选中的小例子
Dec 02 Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 Javascript
AngularJs实现分页功能不带省略号的代码
May 30 Javascript
微信小程序微信支付接入开发实例详解
Apr 12 Javascript
bootstrap 设置checkbox部分选中效果
Apr 20 Javascript
p5.js实现斐波那契螺旋的示例代码
Mar 22 Javascript
JavaScript中call和apply方法的区别实例分析
Aug 03 Javascript
详解react-refetch的使用小例子
Feb 15 Javascript
在weex中愉快的使用scss的方法步骤
Jan 02 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
删除无限级目录与文件代码共享
2006/07/12 PHP
图书管理程序(二)
2006/10/09 PHP
php类常量的使用详解
2013/06/08 PHP
PHP7多线程搭建教程
2017/04/21 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
IE与firefox之jquery用法区别
2008/10/03 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
Python三级目录展示的实现方法
2016/09/28 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python如何实现内容写在图片上
2018/03/23 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
超市采购员岗位职责
2014/02/01 职场文书
高中军训感言400字
2014/02/24 职场文书
学习型党组织心得体会
2014/09/12 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
学雷锋日活动总结
2015/02/06 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
红色影片观后感
2015/06/18 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js