vue项目中使用原生css3的:root 和 val() 失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue项目中使用原生css3的:root 和 val() 失效相关的知识,希望对你有一定的参考价值。

vue项目中使用原生css3的:root 和 val() 失效

参考技术A vue2.0 + webpack做移动端项目,如果在项目中使用了CSS3 animation动画属性,会发现在ios上完全没问题,但是在安卓手机上依然失效,尽管把animation在五大浏览器各种兼容都写了还是不行,原因其实很简答。其实在 vue-cli脚手架package.json配置文件里面就有对浏览器的版本做css的前缀处理
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
意思是 只兼容主流浏览器的最新两个版本。如果我们要兼容所有的就必须把这改成
"browserslist": [
"> 1%",
"last 5 versions",
"android >= 4.0",
"not ie <= 8"
]
就可以了。
CSS部分我们也需要做好兼容写法,优雅降级和渐进增强都可以。
.audio-play-show
-webkit-animation: say 12s linear infinite;
-moz-animation: say 12s linear infinite;
-ms-animation: say 12s linear infinite;
-o-animation: say 12s linear infinite;
animation: say 12s linear infinite;


@-webkit-keyframes say
0%
100%
-webkit-transform: rotateZ(360deg);



@-moz-keyframes say
0%
100%
-moz-transform: rotateZ(360deg);



@-ms-keyframes say
0%
100%
-ms-transform: rotateZ(360deg);



@-o-transforms say
0%
100%
-o-transform: rotateZ(360deg);



@keyframes say
0%
100%
transform: rotateZ(360deg);

Vue webapp项目通过HBulider打包原生APP

1、webapp项目已经通过vue-cli搭建的脚手架写好了,然后通过webpack打包成一个部署文件list,如下:

技术分享图片

 

2、打开HBulider,打开目录,选择这个list,项目名称自己更改。(或者直接新建一个app项目,然后把里边的unpackage和manifest这两个保留下来,其他的替换成自己dist文件里边的内容)

 

技术分享图片

这个时候是web项目,需要改为APP项目(如果直接新建的app,请忽略此步)

技术分享图片

 

更改前:技术分享图片

 

更改后: 技术分享图片

 

3、在HB中打开这个dist,可以看到有一个manifest.json的文件。这个文件是用来配置应用信息的。入口文件一定要对应好,我用VUE写的单页应用,所以就一个index.html。

技术分享图片

然后配置图标

技术分享图片

按着自己项目的要求配置就行了,HB下面列举的很详细。

4、接下来可以通过手机用USB线与电脑连接进行真机调试。(必须通过USB线连接才可以,人家HB不支持什么通过无线连接的方式)windows电脑不用说了,可以用一些360助手什么的就可以解决了。如果你的手机是安卓的,在苹果电脑下面就没那么好搞了。后来通过百度加自己的摸索也搞出来。方法就是在苹果电脑上下载一个使用 Android File Transfer这个软件。要收费时,点击试用就可以了。手机上需要打开usb调试,然后选择 内置光盘 就可以与苹果电脑连接了。手机自己也有提示(真的很暖心技术分享图片

技术分享图片

连接成功之后,就可以进行真机调试了。

技术分享图片

 

注:网上很多说自己的VUE项目项目打开一片空白,记得改一下config下面的index.js中bulid模块导出的路径。因为index.html里边的内容都是通过script标签引入的,而你的路径不对,打开肯定是空白的。先看一下默认的路径。

 

module.exports = {
  build: {
    env: require(‘./prod.env‘),
    index: path.resolve(__dirname, ‘../dist/index.html‘),
    assetsRoot: path.resolve(__dirname, ‘../dist‘),
    assetsSubDirectory: ‘static‘,
    assetsPublicPath: ‘/‘,
    productionSourceMap: true,

 

assetsPublicPath默认的是  ‘/’  也就是根目录。而我们的index.html和static在同一级目录下面。  所以要改为  ‘./ ’

 

另外还需要注意一点。src里边router/index.js路由配置里边默认模式是hash,如果你改成了history模式的话,打开也会是一片空白。所以改为hash或者直接把模式配置删除,让它默认的就行 。

 

// mode: ‘history‘  // 默认hash

 

5、如果真机测试没有问题。那么就可以真正的进行打包成APP了。

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

打包成功后,可以通过手动下载,或者直接打开下载目录里边下载好的。把这个xxxx.apk文件通过qq或者其他的发送到你的手机上,点击安装。就可以了。

 

6、最后,展示一下手机上的效果。

 

技术分享图片

 

 

 

转载的:http://blog.csdn.net/wang1006008051/article/details/78065226

以上是关于vue项目中使用原生css3的:root 和 val() 失效的主要内容,如果未能解决你的问题,请参考以下文章

也许 vue + css3 做交互特效更简单

了解CSS3原生变量var

vue 项目中能使用原生html js吗

vue+css实现夜间模式

vue项目开发遇见bug

详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)