iView3.x Anchor(锚点)组件 导航锚点


iview 3.x框架中新添了一个Anchor(锚点组件),用这个组件去做页面的分类导航正好合适,但是苦于官方文档太过抽象研究了一整天,才勉强可以在项目中应用。下面是我研究后的一点总结:


首先在main.js中引入iview 3.x
我使用部分引用组件的方法所以要单独引入Anchor组件


import {Anchor} from 'iview' Vue.component('Anchor', Anchor) // 这两句就可以在页面中使用组件了

接着在要使用锚点的页面中引入组件

注意:在页面中这里引用的是AnchorLink
原因是在页面中Anchor 被渲染成了多层嵌套的div 只有AnchorLink是以组件形式存在于渲染后的页面中所以真正的组件是AnchorLink
但是main.js文件中引入还是要引入Anchor...

就这一点小坑硬是把我卡住了好久,最后在层层的Elements中终于发现了问题的所在。


import {AnchorLink} from 'iview' components: {
AnchorLink
}

html中锚点列表部分的代码

Anchor标签中container属性表示的是可以滚动的区域节点,表示方法与CSS相同"."表示class,"#"表示id
affix属性是图钉效果,根据自己想表现的效果选择是否使用;show-ink是锚点前的小圆点都是按需选择的属性.


<Anchor show-ink :affix="false" container=".goodShow">
<AnchorLink href="#basic_usage" title="Basic Usage" />
<AnchorLink href="#static_position" title="Static Position" />
</Anchor>

代码中href的值是该锚点跳转位置的ID title是该锚点的名称

锚点对应的滚动区代码

滚动区中div的id对应的是锚点部分的href


<div class="goodShow">
<div id="basic_usage" style="height:30rem;">12312312312</div>
<div id="static_position" style="height:30rem;">123123123123</div>
</div>

CSS代码部分


.goodShow{position: relative;overflow-y: scroll;}

注意:必须要把滚动区设计成带滚动条的部分不然完成不了滚动效果。
也就是说无论滚动区和锚点列表在html中的顺序是如何,但是一定要把Anchor标签中container对应的文档节点,设置为滚动区的节点。
例如:


<div class="goodShow"> // 滚动区域 <Anchor show-ink :affix="false" container=".goodShow"> // 锚点列表
<AnchorLink href="#basic_usage" title="Basic Usage" />
<AnchorLink href="#static_position" title="Static Position" />
</Anchor> <div id="basic_usage" style="height:30rem;">12312312312</div> // 锚点列表中对应的文档位置
<div id="static_position" style="height:30rem;">123123123123</div> </div>

补充说明: 如果页面中的数据是通过v-for循环渲染的,则有可能出现'offset undefined一类的报错',出现这种报错的大概率会影响页面的滚动效果,产生的原因是:锚点列表的数据与滚动的页面的展示数据是分开获取的,由于时间差的原因会导致其中一个渲染完成之后另一部分并没有被渲染.也就会造成组件在获取offset时找不到(也就是undefined),报错并导致失去原有的页面效果.
解决办法:设法使两部分数据同一时间赋值给渲染的变量,比如分两个接口获取锚点的分类和内容,在create中调用接口获取数据,但不要再两个接口中分别赋值.统一到一个接口数据获取完成后再赋值,这样就可以避免这种报错.


最后,纪念一下这忙碌的一天。。


END

来源:https://segmentfault.com/a/1190000016667659

iView3.x Anchor(锚点)组件 导航锚点的更多相关文章

  1. jquer导航锚点链接动画效果和返回顶部代码

    $(function(){ $(".index_nav li a").click(function(event){ //绑定按钮的单击事件 var index = this.tit ...

  2. Javascript实现导航锚点滚动效果实例

    本篇文章主要介绍了Javascript实现页面滚动时导航智能定位,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 常见的开发页面中可能会有这么一个需求,页面中会有多个模块,每个模块对应一个导航,当页 ...

  3. Vue 组件中锚点定位的问题

    1 当前组件的顶部 this.$el.scrollIntoView() 2 指定的 Element this.$el.querySelector(selector).scrollIntoView() ...

  4. ⑩bootstrap组件 导航 使用基础案例

        <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...

  5. vue组件导航栏动态添加class

  6. [UE4]UMG编辑器:控件作为变量、预设锚点和自由锚点

  7. HoloLens开发手记 - Unity之World Anchor空间锚

    World Anchor空间锚提供了一种能够将物体保留在特定位置和旋转状态上的方法.这保证了全息对象的稳定性,同时提供了后续在真实世界中保持全息对象位置的能力.简单地说,你可以为全息物体来添加空间锚点 ...

  8. Unity 基础-------------------------关于Anchor锚点的理解

    Unity进阶技巧 - RectTransform详解 Zui 关注 2016.02.17 01:27 字数 1704 阅读 22157评论 13喜欢 57赞赏 2 RectTransform属性一览 ...

  9. jquery 滚轴滚动 导航定位和锚点定位

    自己写的,只测试了ie9+, firefox,chrome 以下js更好 var fixbar={ init:function(){ "use strict"; // 滚轴 导航位 ...

随机推荐

  1. Java 多线程同步和异步详解

    java线程 同步与异步 线程池 1)多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线 程的处理的数据,而B线程又修改了A线程处理的数理.显然这是由于全局资源造成 ...

  2. HBase的安装与配置

  3. xlwt/xlwt/Style.py excel样式源文件

    from __future__ import print_function # -*- coding: windows-1252 -*- from . import Formatting from . ...

  4. [编织消息框架][netty源码分析]11 ByteBuf 实现类UnpooledHeapByteBuf职责与实现

    每种ByteBuf都有相应的分配器ByteBufAllocator,类似工厂模式.我们先学习UnpooledHeapByteBuf与其对应的分配器UnpooledByteBufAllocator 如何 ...

  5. Vue.nextTick()的介绍和使用场景

    每次都很好奇这个干嘛的,然后百度之后还是不明白.今天就彻彻底底好好的弄明白这是干嘛的!! 首先看一下vue文档 nextTick(),是将回调函数延迟在下一次DOM更新数据后调用,简单的理解是:当数据 ...

  6. ES5-ES8 数组拥有的方法

    1.判断是否是数组 Array.isArray( arg ) 有兼容性 2.toString 数组转字符串 arr.toString(); 3.join 数组每一项间的拼接 arr.join(); S ...

  7. MyBatis配置文件(九)--mappers映射器

    映射器是MyBatis中最复杂.最核心的组件,本文先介绍映射器的引入方法,其他的在我日后会再做分析和总结. 之前的文章中有提到过,映射器是由一个接口和一个XML配置文件组成,XML文件中需要定义一个命 ...

  8. Leetcode142. Linked List Cycle II环形链表2

    给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 说明:不允许修改给定的链表. 进阶: 你是否可以不用额外空间解决此题? 方法一:使用map 方法二: 分两个步骤,首先通 ...

  9. Leetcode137. Single Number II只出现一次的数字2

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: ...

  10. 【vuex】vue2-happyfri

    我发现我对使用vuex并不擅长,现在跟我一起多多研究项目,好好补补vuex吧 这个开源项目地址为:https://github.com/bailicangdu/vue2-happyfri 这是一个答题 ...