小程序中使用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遍历input取得input的name
Apr 27 Javascript
javascript中callee与caller的用法和应用场景
Dec 08 Javascript
jquery利用event.which方法获取键盘输入值的代码
Oct 09 Javascript
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
Nov 17 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
Jan 12 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
Mar 05 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
JS/HTML5游戏常用算法之追踪算法实例详解
Dec 12 Javascript
Vue项目中使用WebUploader实现文件上传的方法
Jul 21 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
如何给phpadmin一个保护
2006/10/09 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python计算字符宽度的方法
2016/06/14 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
税务干部鉴定材料
2014/02/11 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
擅自离岗检讨书
2014/09/12 职场文书
学校会议通知范文
2015/04/15 职场文书
《搭石》教学反思
2016/02/18 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python