博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iView3.x Anchor(锚点)组件 导航锚点
阅读量:6713 次
发布时间:2019-06-25

本文共 1973 字,大约阅读时间需要 6 分钟。

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://www.cnblogs.com/lovellll/p/10130728.html

你可能感兴趣的文章
DataSource的可配参数有哪些,有哪些DataSource可以用
查看>>
免费的后台管理界面框架
查看>>
本地文件共享服务(nfs samba ftp)
查看>>
scp通过代理proxy传输文件
查看>>
excel 打开时报“发现不可读的内容...”
查看>>
pandas-利用python进行数据分析
查看>>
数据段、代码段、堆栈段、BSS段的区别
查看>>
Apache Bench
查看>>
WebService之Axis2快速入门(5): 管理会话(Session)
查看>>
以太坊RPC接口使用
查看>>
普通html标签<form>和struts2<s:form>的区别
查看>>
安装NTFS For Mac时显示文件已损坏怎么办
查看>>
-webkit-line-clamp实现多行文字溢出隐藏显示省略号
查看>>
Sublime Text 3 - 设置自动换行
查看>>
nil / Nil / NULL / NSNull in Objective-C
查看>>
iphone系统架构以及各层提供的主要服务
查看>>
配置sunspot tomcat结合sunspot_rails
查看>>
数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 执行
查看>>
飞信系统4月29日升级后飞信机器人无法使用的解决办法
查看>>
Linux Epoll介绍和程序实例
查看>>