使用Aplayer时的一些问题

  • 643 字
  • 次阅读
  • 条评论

aplayer引入了一个叫smoothScroll的包,用于在歌单列表选择歌曲后将列表滚动到合适的位置。

这个工具还会自动给页面上的所有 hashtag 链接添加 click 监听事件,以实现自动按标题跳转的功能。但是这个功能有 bug,其不兼容一般的 unicode 字符,比如中文。

­源代码地址
1
2
3
4
5
6
7
document.addEventListener("DOMContentLoaded", function () {
var internal = document.querySelectorAll('a[href^="#"]:not([href="#"])'),
a;
for (var i = internal.length; (a = internal[--i]); ) {
a.addEventListener("click", linkHandler, false);
}
});

解决方法就是删掉这几行代码,因为 Kratos-Rebirth 自带标题跳转功能。

另一个 bug,当歌单较长,选择靠后的歌曲时,滚动位置不精确,这是计算目标位置时舍入的问题:

­link
1
smoothScroll(this.index * 33, 500, null, this.player.template.list);

第一个参数 33 是列表中,单个歌曲元素的高度,这个值是取整后的,改成 32.667 即可修复。

分享这一刻
让朋友们也来瞅瞅!