VUE中实现MUI轮播图效果

1 篇文章 0 订阅

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>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值