微信小程序中用WebStorm使用LESS


Posted in Javascript onMarch 08, 2017

前提

自己前端不熟悉,很多都需要练习

网上找了一个css的demo, 放到微信小程序后,可以运行

这里,只要创建less文件,就会自动生成对应的wxss文件了(当然,写好保存less文件,会自动刷新wxss文件,很方便吧)

直接wxss和 less的比较

我们先看下页面

页面很简单

就只有一个 sky 套用 3个cloud 类

view class="container">
 <view class="sky">
  <view class="clouds_one"> </view >
  <view class="clouds_two"> </view >
  <view class="clouds_three"> </view >
  <view class="clouds_three"></view>
 </view>

</view>

再看看css

.sky {
 height: 480px;
 background: #007fd5;
 position: relative;
 overflow: hidden;
 animation: sky_background 50s ease-out infinite;
}
.sky .clouds_one {
 background: url("../../resources/cloud/cloud_one.png");
 position: absolute;
 left: 0;
 top: 0;
 height: 100%;
 width: 300%;
 animation: cloud 50s linear infinite;
 transform: translate3d(0, 0, 0);
}
.sky .clouds_two {
 background: url("../../resources/cloud/cloud_two.png");
 position: absolute;
 left: 0;
 top: 0;
 height: 100%;
 width: 300%;
 animation: cloud 75s linear infinite;
 transform: translate3d(0, 0, 0);
}
.sky .clouds_three {
 background: url("../../resources/cloud/cloud_three.png");
 position: absolute;
 left: 0;
 top: 0;
 height: 100%;
 width: 300%;
 animation: cloud 120s linear infinite;
 transform: translate3d(0, 0, 0);
}
@keyframes cloud {
 0% {
 left: 0;
 }
 100% {
 left: -200%;
 }
}

我们发现有很多重复的地方

功能不难,但是占了70行,并且很难复用

修改的画,还要看里面的逻辑

修改也不方便

Less的使用

我们简单定义变量 和 方法以后

用less 大体是这样的

@dodo-out-height : 480px; //@dodo-out-height : 480rpx;
@dodo-bg-sky : #007fd5;
@dodo-img-url-clouds_one : "../../resources/cloud/cloud_one.png";
@dodo-img-url-clouds_two : "../../resources/cloud/cloud_two.png";
@dodo-img-url-clouds_three : "../../resources/cloud/cloud_three.png";

.sky {
 height: @dodo-out-height;
 background: @dodo-bg-sky;
 position: relative;
 overflow: hidden;
 animation: sky_background 50s ease-out infinite;
}
.sky .clouds_one {
 .dodo_clouds(@url:@dodo-img-url-clouds_one, @time: 50s)
}
.sky .clouds_two {
 .dodo_clouds(@url:@dodo-img-url-clouds_two, @time: 75s)
}
.sky .clouds_three {
 .dodo_clouds(@url:@dodo-img-url-clouds_three, @time: 120s)
}
.dodo_clouds (@url: @dodo-img-url-clouds_one, @height: 100%, @width: 300%, @time: 100s){
 background: url(@url);
 position: absolute;
 left: 0;
 top: 0;
 height: 100%;
 width: 300%;
 animation: cloud @time linear infinite;
 transform: translate3d(0, 0, 0);
}
@keyframes cloud {
 0% {
 left: 0
 }
 100% {
 left: -200%
 }
}

保存后,

我们发现对应的wxss文件,也改变了,直接生成了可以读取的文件

和之前直接写的文件没有太大区别

也不会出现对应的变量和方法

.sky {
 height: 480px;
 background: #007fd5;
 position: relative;
 overflow: hidden;
 animation: sky_background 50s ease-out infinite;
}
.sky .clouds_one {
 background: url("../../resources/cloud/cloud_one.png");
 position: absolute;
 left: 0;
 top: 0;
 height: 100%;
 width: 300%;
 animation: cloud 50s linear infinite;
 transform: translate3d(0, 0, 0);
}
.sky .clouds_two {
 background: url("../../resources/cloud/cloud_two.png");
 position: absolute;
 left: 0;
 top: 0;
 height: 100%;
 width: 300%;
 animation: cloud 75s linear infinite;
 transform: translate3d(0, 0, 0);
}
.sky .clouds_three {
 background: url("../../resources/cloud/cloud_three.png");
 position: absolute;
 left: 0;
 top: 0;
 height: 100%;
 width: 300%;
 animation: cloud 120s linear infinite;
 transform: translate3d(0, 0, 0);
}
@keyframes cloud {
 0% {
 left: 0;
 }
 100% {
 left: -200%;
 }
}

预览下:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
javascript new 需不需要继续使用
Jul 02 Javascript
Jquery中Event对象属性小结
Feb 27 Javascript
JavaScript中的对象与JSON
Jul 03 Javascript
有关Promises异步问题详解
Nov 13 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
Dec 02 Javascript
JS+html5制作简单音乐播放器
Sep 13 Javascript
AngularJS实现tab选项卡的方法详解
Jul 05 Javascript
vue调用语音播放的方法
Sep 27 Javascript
react+antd 递归实现树状目录操作
Nov 02 Javascript
Vue常用指令V-model用法
Mar 08 #Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 #Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 #Javascript
js实现倒计时效果(小于10补零)
Mar 08 #Javascript
详解Vue监听数据变化原理
Mar 08 #Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 #Javascript
Vue 父子组件、组件间通信
Mar 08 #Javascript
You might like
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
javascript数组使用调用方法汇总
2007/12/08 Javascript
js parseInt(&quot;08&quot;)未指定进位制问题
2010/06/19 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
vue实现弹幕功能
2019/10/25 Javascript
python executemany的使用及注意事项
2017/03/13 Python
Python全排列操作实例分析
2018/07/24 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
python logging模块的使用详解
2020/10/23 Python
Python wordcloud库安装方法总结
2020/12/31 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
成人大专生实习期的自我评价
2013/10/02 职场文书
促销活动方案模板
2014/02/24 职场文书
公司周年庆活动方案
2014/08/25 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
SQL Server中锁的用法
2022/05/20 SQL Server