1、看了api,按照其说的做了,发现不能定位,于是网上查资料,有人说是因为iview 引入vue-router 后锚点就失效了,推荐

这样写

  document.getElementById('id').scrollIntoView();

这样确实可以实现锚点定位,但是不符合我的需求,于是新建项目不加入vue-router ,测试,发现iview 锚点居然就可以定位,但是不死心,又加了vue-router再次测试,发现锚点定位居然还可以用。仔细对比了项目和新建的项目,发现我新建的项目锚点是打在了div 上,而工作项目中锚点在Card上,于是在Card外层放了了一个空div,用来打锚点,测试发现锚点可以用了。

结论:vue-router 不影响iview锚点定位,但是锚点必须是打在div上

附代码:

            <Anchor show-ink>
                <AnchorLink v-for="(filterObject, index) in filterObjects"    :href="'#'+filterObject.name" :title="filterObject.name" :key="index"/>
            </Anchor>
        </Affix>
        <div v-for="(filterObject, index) in filterObjects"  :key="index">
            <div :id="filterObject.name"></div> //空的div,打锚点用
            <Card  class="card">
                <p  slot="title">{{ filterObject.comment }}</p>
                <Table  :loading="loading" stripe :columns="columns" :data="filterObject.children" size="small"></Table>
            </Card>
        </div>

 

 

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐