VUE中实现MUI轮播图效果
1、配置App.vue
文件,通过<router-view></router-view>
加载轮播图页面
<template>
<div class="app-container">
<header id="header" class="mui-bar mui-bar-nav">
<h1 class="mui-title">vue-cms</h1>
</header>
<router-view></router-view>
<footer>
<nav class="mui-bar mui-bar-tab">
<router-link class="mui-tab-link" to="/home">
<span class="mui-icon mui-icon-home"></span>
<span class="mui-tab-label">首页</span>
</router-link>
<router-link class="mui-tab-link" to="/member">
<span class="mui-icon mui-icon-contact"></span>
<span class="mui-tab-label">会员</span>
</router-link>
<router-link class="mui-tab-link" to="/shopcar">
<span class="mui-icon mui-icon-extra mui-icon-extra-cart">
<span class="mui-badge">0</span>
</span>
<span class="mui-tab-link">购物车</span>
</router-link>
<router-link class="mui-tab-item" to="/search">
<span class="mui-icon mui-icon-search"></span>
<span class="mui-tab-label">搜索</span>
</router-link>
</nav>
</footer>
</div>
</template>
<script>
</script>
<style lang="scss" scoped>
.app-container {
padding-top: 44px;
.mui-bar-nav {
background-color: #0d8ff7;
}
.mui-bar-tab .mui-tab-link.mui-active {
color: #0d8ff7;
}
.mui-bar-tab .mui-tab-link {
display: table-cell;
overflow: hidden;
width: 1%;
height: 50px;
text-align: center;
vertical-align: middle;
white-space: nowrap;
text-overflow: ellipsis;
color: #929292;
}
.mui-bar-tab .mui-tab-link .mui-icon {
top: 3px;
width: 24px;
height: 24px;
padding-top: 0;
padding-bottom: 0;
}
.mui-bar-tab .mui-tab-link .mui-icon ~ .mui-tab-label {
font-size: 11px;
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
}
</style>
2、配置.babelrc
文件,vue里会使用严格模式,而mui不支持严格模式会报错
方式一:
先执行npm i babel-plugin-transform-remove-strict-mode -D
再在.babelrc文件中配置 "plugins": [ "transform-remove-strict-mode" ]
方式二:
"ignore": [
"./src/lib/mui/js/mui.min.js"
]
4、配置HomeContainer.vue
文件,实现基本功能
从 chrome56 开始,在 window、document 和 body 上注册的 touchstart 和 touchmove 事件处理函数,会默认为是 passive: true。如果在以上这 3 个元素的 touchstart 和 touchmove 事件处理函数中调用 e.preventDefault() ,会被浏览器忽略掉,并不会阻止默认行为。浏览器控制台会报错。
通过设置样式* { touch-action: pan-y };
不会报错。详细解决方法参考地址
<template>
<div class="home-contain">
<div id="slider" class="mui-slider">
<div class="mui-slider-group mui-slider-loop">
<!-- 额外增加的一个节点(循环轮播:第一个节点是最后一张轮播) -->
<div class="mui-slider-item mui-slider-item-duplicate">
<a href="#">
<img src="../images/yuantiao.jpg">
</a>
</div>
<!-- 第一张 -->
<div class="mui-slider-item">
<a href="#">
<img src="../images/shuijiao.jpg">
</a>
</div>
<!-- 第二张 -->
<div class="mui-slider-item">
<a href="#">
<img src="../images/muwu.jpg">
</a>
</div>
<!-- 第三张 -->
<div class="mui-slider-item">
<a href="#">
<img src="../images/cbd.jpg">
</a>
</div>
<!-- 第四张 -->
<div class="mui-slider-item">
<a href="#">
<img src="../images/yuantiao.jpg">
</a>
</div>
<!-- 额外增加的一个节点(循环轮播:最后一个节点是第一张轮播) -->
<div class="mui-slider-item mui-slider-item-duplicate">
<a href="#">
<img src="../images/shuijiao.jpg">
</a>
</div>
</div>
<div class="mui-slider-indicator">
<div class="mui-indicator mui-active"></div>
<div class="mui-indicator"></div>
<div class="mui-indicator"></div>
<div class="mui-indicator"></div>
</div>
</div>
</div>
</template>
<script>
import mui from "../../lib/mui/js/mui.min.js";
export default {
data() {
return {};
},
mounted() {
mui.init({
// 启用滑动
swipeBack: true
});
var slider = mui("#slider");
// 配置定时轮播滑动
slider.slider({
interval: 2000
});
},
methods: {}
};
</script>
<style lang="scss" scoped>
* { touch-action: pan-y; }
</style>
5、底部标签不能正常切换问题,需要将类名mui-tab-item
替换为其它名称如mui-tab-link
,然后再去自定义底部样式。
<router-link class="mui-tab-link" to="/home">
<span class="mui-icon mui-icon-home"></span>
<span class="mui-tab-label">首页</span>
</router-link>
还没有评论,来说两句吧...