Authored by 陈峰

品牌字母bug

1 <template> 1 <template>
2 <div class="brand-list-box"> 2 <div class="brand-list-box">
3 <div v-for="(item, index) in brandList" :key="index" class="per-brand-box"> 3 <div v-for="(item, index) in brandList" :key="index" class="per-brand-box">
4 - <div class="index"><a :href="'#' + item.index" :name="item.index">{{item.index}}</a></div> 4 + <div class="index"><a :href="'#' + item.index" :id="item.index" :name="item.index">{{item.index}}</a></div>
5 <div class="brand-big-box clearfix"> 5 <div class="brand-big-box clearfix">
6 <div class="brand-box" v-for="brand in item.brands" :key="brand.name"> 6 <div class="brand-box" v-for="brand in item.brands" :key="brand.name">
7 <a v-brand-href="brand.domain"> 7 <a v-brand-href="brand.domain">
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 </div> 10 </div>
11 </div> 11 </div>
12 </div> 12 </div>
13 - <index-list class="index-list" :index-list="indexList"></index-list> 13 + <index-list class="index-list" :index-list="indexList" @loc-index="locIndex"></index-list>
14 </div> 14 </div>
15 </template> 15 </template>
16 <style> 16 <style>
@@ -141,6 +141,19 @@ @@ -141,6 +141,19 @@
141 }).fail(() => { 141 }).fail(() => {
142 tip('网络错误'); 142 tip('网络错误');
143 }); 143 });
  144 + },
  145 + locIndex(index) {
  146 + let $el = document.querySelector(`a[name="${index}"]`);
  147 +
  148 + if ($el) {
  149 + let top = document.querySelector(`a[name=${index}]`).offsetTop;
  150 + let header = document.querySelector('.blk-header');
  151 +
  152 + if (header) {
  153 + top -= header.clientHeight + 2;
  154 + }
  155 + window.scrollTo(0, top);
  156 + }
144 } 157 }
145 }, 158 },
146 components: { 159 components: {
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 </div> 9 </div>
10 </dd> 10 </dd>
11 </dl> 11 </dl>
12 - <index-list class="filter-index-list" :index-list="indexData"></index-list> 12 + <index-list class="filter-index-list" :index-list="indexData" @loc-index="locIndex"></index-list>
13 </div> 13 </div>
14 </template> 14 </template>
15 <script> 15 <script>
@@ -88,6 +88,15 @@ @@ -88,6 +88,15 @@
88 value: this.currentValue, 88 value: this.currentValue,
89 subType: 'brand' 89 subType: 'brand'
90 }); 90 });
  91 + },
  92 + locIndex(index) {
  93 + let $el = document.querySelector(`#${index}`);
  94 +
  95 + if ($el) {
  96 + let top = $el.offsetTop;
  97 +
  98 + document.querySelector('.filter-sub-detail').scrollTop = top;
  99 + }
91 } 100 }
92 }, 101 },
93 created() { 102 created() {
@@ -49,13 +49,7 @@ @@ -49,13 +49,7 @@
49 }, 49 },
50 methods: { 50 methods: {
51 loc(index) { 51 loc(index) {
52 - let $el = document.querySelector(`#${index}`);  
53 -  
54 - if ($el) {  
55 - let top = $el.offsetTop;  
56 -  
57 - document.querySelector('.filter-sub-detail').scrollTop = top;  
58 - } 52 + this.$emit('loc-index', index);
59 } 53 }
60 }, 54 },
61 created() { 55 created() {