[bugfix] IndexBar: Select event repeated trigger (#3409)

This commit is contained in:
dongj0316 2019-05-30 18:57:53 +08:00 committed by neverland
parent 1c6feaa650
commit 0678c7d30b
3 changed files with 12 additions and 7 deletions

View File

@ -136,15 +136,19 @@ export default sfc({
const { clientX, clientY } = event.touches[0];
const target = document.elementFromPoint(clientX, clientY);
this.scrollToElement(target);
if (target) {
const { idx } = target.dataset;
/* istanbul ignore else */
if (this.touchActiveIdx !== idx) {
this.touchActiveIdx = idx;
this.scrollToElement(target);
}
}
}
},
scrollToElement(element, setActive) {
if (!element) {
return;
}
const { index } = element.dataset;
if (!index) {
return;
@ -178,6 +182,7 @@ export default sfc({
<span
class={bem('index')}
style={idx === this.activeAnchorIndex ? this.highlightStyle : null}
data-idx={idx}
data-index={index}
>
{index}

View File

@ -13,7 +13,7 @@ exports[`renders demo correctly 1`] = `
<div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane" style="">
<div class="van-index-bar">
<div class="van-index-bar__sidebar" style="z-index: 1;"><span data-index="A" class="van-index-bar__index">A</span><span data-index="B" class="van-index-bar__index">B</span><span data-index="C" class="van-index-bar__index">C</span><span data-index="D" class="van-index-bar__index">D</span><span data-index="E" class="van-index-bar__index">E</span><span data-index="F" class="van-index-bar__index">F</span><span data-index="G" class="van-index-bar__index">G</span><span data-index="H" class="van-index-bar__index">H</span><span data-index="I" class="van-index-bar__index">I</span><span data-index="J" class="van-index-bar__index">J</span><span data-index="K" class="van-index-bar__index">K</span><span data-index="L" class="van-index-bar__index">L</span><span data-index="M" class="van-index-bar__index">M</span><span data-index="N" class="van-index-bar__index">N</span><span data-index="O" class="van-index-bar__index">O</span><span data-index="P" class="van-index-bar__index">P</span><span data-index="Q" class="van-index-bar__index">Q</span><span data-index="R" class="van-index-bar__index">R</span><span data-index="S" class="van-index-bar__index">S</span><span data-index="T" class="van-index-bar__index">T</span><span data-index="U" class="van-index-bar__index">U</span><span data-index="V" class="van-index-bar__index">V</span><span data-index="W" class="van-index-bar__index">W</span><span data-index="X" class="van-index-bar__index">X</span><span data-index="Y" class="van-index-bar__index">Y</span><span data-index="Z" class="van-index-bar__index">Z</span></div>
<div class="van-index-bar__sidebar" style="z-index: 1;"><span data-idx="0" data-index="A" class="van-index-bar__index">A</span><span data-idx="1" data-index="B" class="van-index-bar__index">B</span><span data-idx="2" data-index="C" class="van-index-bar__index">C</span><span data-idx="3" data-index="D" class="van-index-bar__index">D</span><span data-idx="4" data-index="E" class="van-index-bar__index">E</span><span data-idx="5" data-index="F" class="van-index-bar__index">F</span><span data-idx="6" data-index="G" class="van-index-bar__index">G</span><span data-idx="7" data-index="H" class="van-index-bar__index">H</span><span data-idx="8" data-index="I" class="van-index-bar__index">I</span><span data-idx="9" data-index="J" class="van-index-bar__index">J</span><span data-idx="10" data-index="K" class="van-index-bar__index">K</span><span data-idx="11" data-index="L" class="van-index-bar__index">L</span><span data-idx="12" data-index="M" class="van-index-bar__index">M</span><span data-idx="13" data-index="N" class="van-index-bar__index">N</span><span data-idx="14" data-index="O" class="van-index-bar__index">O</span><span data-idx="15" data-index="P" class="van-index-bar__index">P</span><span data-idx="16" data-index="Q" class="van-index-bar__index">Q</span><span data-idx="17" data-index="R" class="van-index-bar__index">R</span><span data-idx="18" data-index="S" class="van-index-bar__index">S</span><span data-idx="19" data-index="T" class="van-index-bar__index">T</span><span data-idx="20" data-index="U" class="van-index-bar__index">U</span><span data-idx="21" data-index="V" class="van-index-bar__index">V</span><span data-idx="22" data-index="W" class="van-index-bar__index">W</span><span data-idx="23" data-index="X" class="van-index-bar__index">X</span><span data-idx="24" data-index="Y" class="van-index-bar__index">Y</span><span data-idx="25" data-index="Z" class="van-index-bar__index">Z</span></div>
<div>
<div>
<div class="van-index-anchor">A</div>

View File

@ -2,7 +2,7 @@
exports[`custom anchor text 1`] = `
<div class="van-index-bar">
<div class="van-index-bar__sidebar" style="z-index: 1;"><span data-index="A" class="van-index-bar__index">A</span><span data-index="B" class="van-index-bar__index">B</span><span data-index="C" class="van-index-bar__index">C</span><span data-index="D" class="van-index-bar__index">D</span><span data-index="E" class="van-index-bar__index">E</span><span data-index="F" class="van-index-bar__index">F</span><span data-index="G" class="van-index-bar__index">G</span><span data-index="H" class="van-index-bar__index">H</span><span data-index="I" class="van-index-bar__index">I</span><span data-index="J" class="van-index-bar__index">J</span><span data-index="K" class="van-index-bar__index">K</span><span data-index="L" class="van-index-bar__index">L</span><span data-index="M" class="van-index-bar__index">M</span><span data-index="N" class="van-index-bar__index">N</span><span data-index="O" class="van-index-bar__index">O</span><span data-index="P" class="van-index-bar__index">P</span><span data-index="Q" class="van-index-bar__index">Q</span><span data-index="R" class="van-index-bar__index">R</span><span data-index="S" class="van-index-bar__index">S</span><span data-index="T" class="van-index-bar__index">T</span><span data-index="U" class="van-index-bar__index">U</span><span data-index="V" class="van-index-bar__index">V</span><span data-index="W" class="van-index-bar__index">W</span><span data-index="X" class="van-index-bar__index">X</span><span data-index="Y" class="van-index-bar__index">Y</span><span data-index="Z" class="van-index-bar__index">Z</span></div>
<div class="van-index-bar__sidebar" style="z-index: 1;"><span data-idx="0" data-index="A" class="van-index-bar__index">A</span><span data-idx="1" data-index="B" class="van-index-bar__index">B</span><span data-idx="2" data-index="C" class="van-index-bar__index">C</span><span data-idx="3" data-index="D" class="van-index-bar__index">D</span><span data-idx="4" data-index="E" class="van-index-bar__index">E</span><span data-idx="5" data-index="F" class="van-index-bar__index">F</span><span data-idx="6" data-index="G" class="van-index-bar__index">G</span><span data-idx="7" data-index="H" class="van-index-bar__index">H</span><span data-idx="8" data-index="I" class="van-index-bar__index">I</span><span data-idx="9" data-index="J" class="van-index-bar__index">J</span><span data-idx="10" data-index="K" class="van-index-bar__index">K</span><span data-idx="11" data-index="L" class="van-index-bar__index">L</span><span data-idx="12" data-index="M" class="van-index-bar__index">M</span><span data-idx="13" data-index="N" class="van-index-bar__index">N</span><span data-idx="14" data-index="O" class="van-index-bar__index">O</span><span data-idx="15" data-index="P" class="van-index-bar__index">P</span><span data-idx="16" data-index="Q" class="van-index-bar__index">Q</span><span data-idx="17" data-index="R" class="van-index-bar__index">R</span><span data-idx="18" data-index="S" class="van-index-bar__index">S</span><span data-idx="19" data-index="T" class="van-index-bar__index">T</span><span data-idx="20" data-index="U" class="van-index-bar__index">U</span><span data-idx="21" data-index="V" class="van-index-bar__index">V</span><span data-idx="22" data-index="W" class="van-index-bar__index">W</span><span data-idx="23" data-index="X" class="van-index-bar__index">X</span><span data-idx="24" data-index="Y" class="van-index-bar__index">Y</span><span data-idx="25" data-index="Z" class="van-index-bar__index">Z</span></div>
<div>
<div class="van-index-anchor">Title A</div>
</div>