欧阳1
欧阳1
  • 发布:2016-11-16 16:58
  • 更新:2016-11-28 15:18
  • 阅读:1079

【报Bug】

分类:MUI

详细问题描述
[内容]
(1) mui(slider).slider()的横向滚动(循环滚动时),无法监听到滚动事件:
document.getElementById('Gallery').addEventListener('slide', function(e) {});//这个监听不到
(2) 左右滚动,不能判断是向左滚动还是向右滚动,如果能够判断,那就可以实现左滚下一页,右滚上一页。
重现步骤
[步骤]
Hbuilder自带的MUI实例中的grid-pagination.html界面,
步骤:
①左右滚动有3个默认项,删除2个。
②给id为Gallery的div添加监听事件:
document.getElementById('Gallery').addEventListener('slide', function(e) {
//输出log日志[如果滚动项只有1个,这个方法是不执行,如果滚动项有多个,这个方法就会执行]
console.log(e.detail.slideNumber);
});

[结果] 监听事件不执行
[期望]
在左右滚动时,无论滚动项有多少个(最少1个),那监听方法也需要执行。因为在项目中,很多操作需要左右滚动完成后才开始调用执行(比如界面中部分动画效果),如果只有一个滚动项,就无法确认滚动的结束时间,导致滚动结束后的相关效果无法完成。

运行环境 谷歌浏览器 F12 手机模式
[系统版本]
[浏览器版本] 54.0.2840.99 m
[IDE版本] 7.6.0.201611071800
[mui版本] Mui v3.1.0

附件
[代码片段] mui.init();
mui.ready(function() {
var slider = document.getElementById('Gallery');
var group = slider.querySelector('.mui-slider-group');
var items = mui('.mui-slider-item', group);
//克隆第一个节点
var first = items[0].cloneNode(true);
first.classList.add('mui-slider-item-duplicate');
//克隆最后一个节点
var last = items[items.length - 1].cloneNode(true);
last.classList.add('mui-slider-item-duplicate');
//处理是否循环逻辑,若支持循环,需支持两点:
//1、在.mui-slider-group节点上增加.mui-slider-loop类
//2、重复增加2个循环节点,图片顺序变为:N、1、2...N、1
var sliderApi = mui(slider).slider();
function toggleLoop(loop) {
if(loop) {
group.classList.add('mui-slider-loop');
group.insertBefore(last, group.firstChild);
group.appendChild(first);
sliderApi.refresh();
sliderApi.gotoItem(0);
} else {
group.classList.remove('mui-slider-loop');
group.removeChild(first);
group.removeChild(last);
sliderApi.refresh();
sliderApi.gotoItem(0);
}
}
//按下“循环”按钮的处理逻辑;
document.getElementById('Gallery_Toggle').addEventListener('toggle', function(e) {
var loop = e.detail.isActive;
toggleLoop(loop);
});
document.getElementById('Gallery').addEventListener('slide', function(e) {
console.log(e.detail.slideNumber);
});
});
[安装包]

联系方式
[QQ] 369731934
[电话]

2016-11-16 16:58 负责人:无 分享
已邀请:
欧阳1

欧阳1 (作者)

没有人给回答么?是我写的有问题还是什么?这个真的挺捉急的....

项目需要实现单界面可以左(右)无限制的翻页,翻页后需要展示动画效果。

现在遇到的问题如上面所说,如果单界面进行左右无限制的滚动,事件不监听。多个进行切换数据处理起来麻烦。

欧阳1

欧阳1 (作者)

就没人回答么???这里这么凄凉?

该问题目前已经被锁定, 无法添加新回复