vue、uniapp实现锚点定位
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实现锚点定位相关推荐
- vue中实现锚点定位
vue中实现锚点定位 通过监听滚动事件,高亮显示锚点按钮 添加点击事件,根据锚点滚动至对应区域并实现平滑滚动 这里主要是实现了一个简单的滚动触发锚点高亮,以及点击锚点触发滚动的功能 如果是获取浏览器的 ...
- vue页面实现锚点定位
html代码: <div @scroll="scrollEvent">/****目录部分***/<ul class="titless"> ...
- uni-app实现锚点定位功能
效果图 功能实现 使用uni-app自带scroll-view组件利用scroll-into-view属性来自定滚动到的子元素的id,从而实现锚点功能.需要注意的地方有scroll-view需要指定高 ...
- vue中实现锚点定位以及平滑滚动到指定位置
这里主要是实现了一个简单的滚动触发锚点高亮,以及点击锚点触发滚动的功能 如果是获取浏览器的滚动高度,各个浏览器有所差异,使用以下几种方式: Chrome: document.body.scrollTo ...
- vue中实现锚点定位平滑滚动
下面是简单的代码,拿来即用 html//给div盒子设定单击事件和ref名 <div @click="getThere" ref="cat_box"> ...
- vue锚点定位(代码通用) - 总结篇
vue锚点定位(应用场景) 当前页面锚点 跨页面锚点 hash模式下的锚点 history模式下的锚点 应用前提:(重要的事情,说3+1遍) 任意场景.任意代码.任意框架 都能对接! 都能采用! 都能 ...
- Vue中如何正常使用锚点定位?
问题: 项目中会有一些功能需要用到锚点定位,比如文章目录.点击标题跳转到正文内容等等.但vue的路由设置默认为hash模式,正常使用a标签的锚点定位,在浏览器刷新/后退/前进时,路由会匹配不上,导致页 ...
- uniapp锚点定位
uniapp 锚点定位 需求:在 uniapp 写 App 时,根据后端接口返回的数据渲染图文,并且要对图片进行锚点定位. 前提:后端要给每张图片一个单独的参数,用来区分每张图片. 思路:前端将这个特 ...
- vue中使用scrollTo实现锚点定位
vue利用window.scrollTo快速实现锚点定位 页面部分 <div id="app"><ul class="menus">&l ...
最新文章
- appium IOS真机测试
- Magento中如何在模块中使用多张数据表并配置多个model?
- 来自mooon的最简单的日志类CSimpleLogger
- 范数(赋范线性空间、向量范数、矩阵范数)
- 协方差、协方差矩阵的解释意义
- 字节跳动 java面经_字节跳动Java面经(已offer)
- 使用PHP创建一个REST API(Create a REST API with PHP)
- MySQL表级完整性约束
- 值得使用的CSS库添加图像悬停效果!
- c语言长度宏定义运算符,C语言在宏定义中使用语句表达式和预处理器运算符
- ajax给表格填值,填报表用ajax实现关联单元格自动填充
- 《霸王别姬》经典台词
- Spring boot 日志 Logback
- 《MySQL技术内幕 InnoDB存储引擎》.pdf
- 金蝶K3 WISE 12.3版本系统部署指南
- Power BI——数据建模案例分析
- java 随机手机验证码_Java随机生成手机短信验证码的方法
- C语言定义数组起始地址对齐方式(IAR C99 Kinetis K66)
- 通过NFC挂载加载应用
- C#操纵Word的坑
热门文章
- java毕业生设计运动会管理系统计算机源码+系统+mysql+调试部署+lw
- mysql 字节与字符_一文搞懂字符和字节的含义
- iOS开发之第三方登录微博-- 史上最全最新第三方登录微博方式实现
- Ubuntu MemoryAnalyzer 启动报错:The platform metadata area could not be written
- 深度学习制作自己的数据集—为数据集打上标签保存为txt文件,并进行划分和加载数据集
- 【英语面试】三.计算机专业英语面试常见问题(个人选择/学业规划篇)
- 【机器学习】聚类分析与主成分分析(附例题源码)
- 最大公约数(gcd)计算方法
- 皮尔逊相关系数php,科学网—[严肃内容] 鲁索(Rousseau)教授对皮尔逊相关系数实质认识的图示 - 杨正瓴的博文...
- 测试服mysql突然崩溃