1. 借助于 MUI 的 tab-top-webview-main.html
控件来实现
2. 当拿到 UI 代码片段之后,需要把 mui-fullscreen
去掉
--因为这个属性是铺满整个界面,遮盖住界面
<!-- 图片分类区域 顶部滑动条区域--> <div id="slider" class="mui-slider"> <div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted"> <div class="mui-scroll"> <span :class="['mui-control-item', item.id === 0 ? 'mui-active' : '' ]" v-for="item in category" :key="item.id" @tap="getPhotoByCategory(item.id)"> {{ item.title }} </span> </div> </div> </div>
// 1.1导入 mui 的JS文件, 这样,就可以使用 mui 来初始化 滑动控件了 import mui from "../../../lib/mui/js/mui.js";
## 当在项目中引入了MUI的JS文件报错的问题:
> 报错信息:Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
1. 分析问题的原因:
+ webpack 打包出来的 bundle.js 中,默认启用了严格模式
+ 在项目中,import 导入的 mui.js 中,使用了 callee caller 这些特性, 但是这些特性在严格模式中不支持,会报错;
+ 经过分析:发现,关闭webpack的严格模式,更容易一些,因为不再需要修改mui.js的源代码了;
+ 如何关闭webpack的严格模式呢?使用一个webpack的插件:https://github.com/genify/babel-plugin-transform-remove-strict-mode
下载插件:npm install babel-plugin-trasform-remove-strict-mode
在babelrc文件中导入
transform-remove-strict-mode
{
"plugins": ["transform-runtime", "transform-remove-strict-mode"],
"presets": ["env", "stage-0"]
1. 主要原因:需要在mounted
钩子函数中来初始化
2. 因为,如果当前的 图片分享列表组件,还没有挂载到页面上,那么,调用mui()
方法 初始化组件是没有任何意义的;因为此时页面上没有任何的元素;
解决办法在mounted生命周期里初始化
1.2//初始化控件
mounted() { // 当此钩子函数执行的时候,我们才可以进行控件或插件的初始化工作; mui(".mui-scroll-wrapper").scroll({ deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006 }); }
<style lang="scss" scoped> .mui-slider { touch-action: pan-x; }
## 如何移除滑动区域的警告问题
1. 为 mui-slider
类样式,添加,touch-action: pan-x;