解决vue的顶部滑动导航组件的一些问题

一.由于默认此组件全屏显示,所以需要取消全屏显示

解决办法: 去掉id为slider元素的一个类名:mui-fullscreen 即可

二.因为这个组件是js组件,自带滑动行为,所以要引入js文件,并初始化scroll控件

解决办法:
1.先导入mui的js文件
2.在它所在的组件被挂载(mounted钩子函数)时将这个完成这个组件的初始化:

mounted() {
		  // 当 组件中的DOM结构被渲染好并放到页面中后,会执行这个 钩子函数
		  // 如果要操作元素了,最好在 mounted 里面,因为,这里时候的 DOM 元素 是最新的
		  // 2. 初始化滑动控件
		  mui(".mui-scroll-wrapper").scroll({
			deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
		  });
		}

三.若初始化后会出现一个错误以下问题:

Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode

这是因为webpack打包的bundle.js中默认是启用了严格模式,严格模式下不可以随意使用arguments , callee , caller ,而mui这个组件总用到了以上三个参数
解决办法:
1.安装插件 yarn add babel-plugin-transform-remove-strict-mode –D
2. 在.babelrc中添加如下代码:

{
  "presets": ["env", "stage-0"],
  "plugins": [
    "transform-runtime", 
    ["component", 
      [
        {
          "libraryName": "mint-ui",
          "style": true
        }
      ]
    ], 
    "transform-remove-strict-mode"
  ] 
}

四.在滑动时一直出现警告
解决办法:将touch-active属性的值定义为pan-y:

<style lang="scss" scoped>
	* {
	  touch-action: pan-y;
	}
</style>

五.还是滑动不了,也没有报错,试着参考如下代码修改

<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" >
						<a class="mui-control-item mui-active" href="#item1mobile" data-wid="tab-top-subpage-1.html">
							西餐牛排
						</a>
						<a class="mui-control-item" href="#item2mobile" data-wid="tab-top-subpage-2.html">
							日式料理
						</a>
						<a class="mui-control-item" href="#item3mobile" data-wid="tab-top-subpage-3.html">
							川菜系列
						</a>
						<a class="mui-control-item" href="#item4mobile" data-wid="tab-top-subpage-4.html">
							粤菜系列
						</a>
						<a class="mui-control-item" href="#item5mobile" data-wid="tab-top-subpage-5.html">
							徽菜专栏
						</a>
					</div>
				</div>
			</div>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值