1.vue 点击页面定位到指定位置 锚点跳转方法

html部分:

<template><div class="home"><div class="head" :style="{height:liHeight+'px'}" style="background:#e2c08d; transition: height 0.3s;"><li v-for="(item,index) in arr" v-show="index<liIndex" @click="liChange(index)">{{item}}</li></div><div id="li0" style="height:500px; background:pink;">我是第一个盒子</div><div id="li1" style="height:500px; background:skyblue;">我是第二个盒子</div><div id="li2" style="height:500px; background:#57643b;">我是第三个盒子</div><div id="li3" style="height:500px; background:#caa062;">我是第四个盒子</div><div id="li4" style="height:500px; background:#cb1c2d;">我是第五个盒子</div></div>
</template>

js部分:

<script>
export default {data() {return {arr:['跳到第一个盒子','跳到第二个盒子','跳到第三个盒子','跳到第四个盒子','跳到第五个盒子'],flag:false,liHeight:30,liIndex:1,}},methods: {//瞄点定位事件liChange(i){this.$nextTick(function(){ if(i==0&&this.flag==false){  this.flag=true;this.liHeight=150;this.liIndex=10}else if(i==0){this.flag=false,this.liIndex=1;this.liHeight=30}else{ //瞄点定位document.querySelector('#li'+i).scrollIntoView({behavior: "smooth",//其中behavior表示为过渡方式,值有auto和smooth两种,auto表示立即定位到目标元素,smooth表示平滑移动到目标元素,默认为autoblock: "start",   //block表示目标元素出现在屏幕的位置,值有end,center,start三种。inline: "nearest"}); }})}}
}
</script>

此处的$nextTick方法意思是在下次DOM更新循环结束之后执行延迟回调。

锚点定位的主要用到 document.querySelector( '#id名/.类名 ' ).scrollIntoView(true) 方法。

2.uniapp实现锚点定位

在这里我就不上html的代码了,直接上逻辑,你们直接拿走使用就可以实现啦

uni.createSelectorQuery().select('#li'+i).boundingClientRect(data=>{//目标位置的节点:类class或者id
uni.createSelectorQuery().select(".home").boundingClientRect(res=>{//最外层盒子的节点:类class或者id
uni.pageScrollTo({
duration: 1000,  //过渡时间
scrollTop:data.top-50 - res.top,//到达距离顶部的top值 根据自己情况可调//scrollTop:data.top - res.top,//如果置顶})}).exec()
}).exec();

vue、uniapp实现锚点定位相关推荐

  1. vue中实现锚点定位

    vue中实现锚点定位 通过监听滚动事件,高亮显示锚点按钮 添加点击事件,根据锚点滚动至对应区域并实现平滑滚动 这里主要是实现了一个简单的滚动触发锚点高亮,以及点击锚点触发滚动的功能 如果是获取浏览器的 ...

  2. vue页面实现锚点定位

    html代码: <div @scroll="scrollEvent">/****目录部分***/<ul class="titless"> ...

  3. uni-app实现锚点定位功能

    效果图 功能实现 使用uni-app自带scroll-view组件利用scroll-into-view属性来自定滚动到的子元素的id,从而实现锚点功能.需要注意的地方有scroll-view需要指定高 ...

  4. vue中实现锚点定位以及平滑滚动到指定位置

    这里主要是实现了一个简单的滚动触发锚点高亮,以及点击锚点触发滚动的功能 如果是获取浏览器的滚动高度,各个浏览器有所差异,使用以下几种方式: Chrome: document.body.scrollTo ...

  5. vue中实现锚点定位平滑滚动

    下面是简单的代码,拿来即用 html//给div盒子设定单击事件和ref名 <div @click="getThere" ref="cat_box"> ...

  6. vue锚点定位(代码通用) - 总结篇

    vue锚点定位(应用场景) 当前页面锚点 跨页面锚点 hash模式下的锚点 history模式下的锚点 应用前提:(重要的事情,说3+1遍) 任意场景.任意代码.任意框架 都能对接! 都能采用! 都能 ...

  7. Vue中如何正常使用锚点定位?

    问题: 项目中会有一些功能需要用到锚点定位,比如文章目录.点击标题跳转到正文内容等等.但vue的路由设置默认为hash模式,正常使用a标签的锚点定位,在浏览器刷新/后退/前进时,路由会匹配不上,导致页 ...

  8. uniapp锚点定位

    uniapp 锚点定位 需求:在 uniapp 写 App 时,根据后端接口返回的数据渲染图文,并且要对图片进行锚点定位. 前提:后端要给每张图片一个单独的参数,用来区分每张图片. 思路:前端将这个特 ...

  9. vue中使用scrollTo实现锚点定位

    vue利用window.scrollTo快速实现锚点定位 页面部分 <div id="app"><ul class="menus">&l ...

最新文章

  1. appium IOS真机测试
  2. Magento中如何在模块中使用多张数据表并配置多个model?
  3. 来自mooon的最简单的日志类CSimpleLogger
  4. 范数(赋范线性空间、向量范数、矩阵范数)
  5. 协方差、协方差矩阵的解释意义
  6. 字节跳动 java面经_字节跳动Java面经(已offer)
  7. 使用PHP创建一个REST API(Create a REST API with PHP)
  8. MySQL表级完整性约束
  9. 值得使用的CSS库添加图像悬停效果!
  10. c语言长度宏定义运算符,C语言在宏定义中使用语句表达式和预处理器运算符
  11. ajax给表格填值,填报表用ajax实现关联单元格自动填充
  12. 《霸王别姬》经典台词
  13. Spring boot 日志 Logback
  14. 《MySQL技术内幕 InnoDB存储引擎》.pdf
  15. 金蝶K3 WISE 12.3版本系统部署指南
  16. Power BI——数据建模案例分析
  17. java 随机手机验证码_Java随机生成手机短信验证码的方法
  18. C语言定义数组起始地址对齐方式(IAR C99 Kinetis K66)
  19. 通过NFC挂载加载应用
  20. C#操纵Word的坑

热门文章

  1. java毕业生设计运动会管理系统计算机源码+系统+mysql+调试部署+lw
  2. mysql 字节与字符_一文搞懂字符和字节的含义
  3. iOS开发之第三方登录微博-- 史上最全最新第三方登录微博方式实现
  4. Ubuntu MemoryAnalyzer 启动报错:The platform metadata area could not be written
  5. 深度学习制作自己的数据集—为数据集打上标签保存为txt文件,并进行划分和加载数据集
  6. 【英语面试】三.计算机专业英语面试常见问题(个人选择/学业规划篇)
  7. 【机器学习】聚类分析与主成分分析(附例题源码)
  8. 最大公约数(gcd)计算方法
  9. 皮尔逊相关系数php,科学网—[严肃内容] 鲁索(Rousseau)教授对皮尔逊相关系数实质认识的图示 - 杨正瓴的博文...
  10. 测试服mysql突然崩溃