当前位置: 首页 > news >正文

vue 锚点跳转,适用移动端和web端

分3步,

第一步,创建个 锚点组件,文件名indexData.js,TopicBg1之类名字的需要和页面id对应上,在后面代码可以看到

import Vue from 'vue'
const vm = new Vue()const dialog = (text) => {vm.$dialog.alert({title: '温馨提示',message: text})
}
// 锚点跳转
const goAnchor = (selector) => {document.querySelector(selector).scrollIntoView({// behavior: 'smooth', // 加这个动画在网页上瞄点跳转有问题block: 'start'})
}export const verificationForn = (form) => {if (form.phone1 === '') {dialog('第1道题未回答')goAnchor('#TopicBg1')return false}if (form.phone2 === '') {dialog('第2道题未回答')goAnchor('#TopicBg2')return false}if (form.phone3 === '') {dialog('第3道题未回答')goAnchor('#TopicBg3')return false}if (form.phone4 === '') {dialog('第4道题未回答')goAnchor('#TopicBg4')return false}if (form.phone5 === '') {dialog('第5道题未回答')goAnchor('#TopicBg5')return false}if (form.phone6 === '') {dialog('第6道题未回答')goAnchor('#TopicBg6')return false}if (form.phone7 === '') {dialog('第7道题未回答')goAnchor('#TopicBg7')return false}return true
}

第二步,因为是一块块白色的样式,所以又封装了一个组件,用做样式展示,文件名goToHome.vue

<template><div><div class="box"><div class="title">{{title}}</div><slot></slot></div></div>
</template><script>
export default {data () {return {}},props: {title: {default: ''}}
}
</script><style lang="less" scoped>
.box {background: #fff;padding: 20px;margin: 20px;box-sizing: border-box;border-radius: 4px;.title {font-weight: bold;}
}
</style>

第三步,页面

<template><div><van-form><GoToHome title="学不会" id="TopicBg1"><van-field v-model="form.phone1" label="1.紧急联系人手机号" type="digit" placeholder="请输入" maxlength="11" label-width="180px" input-align="right" /></GoToHome><GoToHome title="学不会2" id="TopicBg2"><van-field v-model="form.phone2" label="2.紧急联系人手机号" type="digit" placeholder="请输入" maxlength="11" label-width="180px" input-align="right" /></GoToHome><GoToHome title="学不会3" id="TopicBg3"><van-field v-model="form.phone3" label="3.紧急联系人手机号" type="digit" placeholder="请输入" maxlength="11" label-width="180px" input-align="right" /></GoToHome><GoToHome title="学不会4" id="TopicBg4"><van-field v-model="form.phone4" label="4.紧急联系人手机号" type="digit" placeholder="请输入" maxlength="11" label-width="180px" input-align="right" /></GoToHome><GoToHome title="学不会5" id="TopicBg5"><van-field v-model="form.phone5" label="5.紧急联系人手机号" type="digit" placeholder="请输入" maxlength="11" label-width="180px" input-align="right" /></GoToHome><GoToHome title="学不会6" id="TopicBg6"><van-field v-model="form.phone6" label="6.紧急联系人手机号" type="digit" placeholder="请输入" maxlength="11" label-width="180px" input-align="right" /></GoToHome><GoToHome title="学不会7" id="TopicBg7"><van-field v-model="form.phone7" label="7.紧急联系人手机号" type="digit" placeholder="请输入" maxlength="11" label-width="180px" input-align="right" /></GoToHome></van-form><van-button type="primary" @click="onSubmit()">提交</van-button></div>
</template><script>
import GoToHome from './goToHome.vue'
import { verificationForn } from './indexData'
export default {data () {return {form: {phone1: '',phone2: '',phone3: '',phone4: '',phone5: '',phone6: '',phone7: ''}}},methods: {onSubmit () {if (verificationForn(this.form)) {console.log(1111)}}},components: {GoToHome}
}
</script><style lang="less" scoped>
/deep/ .van-cell {border: 1px solid black;border-radius: 4px;
}
</style>

相关文章:

  • 【相机开发问题总结】锁屏下相机资源释放问题
  • 常见的100个Shell命令,超级实用!
  • mars3d的V2版本的Video2D与V3版本的Video2D实现数据快速迁移
  • Springboot阶段项目---《书城项目》
  • 大厂程序员离职,开发一个盲盒小程序2万,一周开发完!
  • centos 安装mysql8 客户端
  • SpringBoot集成腾讯云敏感词校验API流程
  • vlan综合实验
  • 运维笔记.MySQL.基于mysqldump数据备份与恢复
  • 【Linux】- HBase集群部署 [19]
  • Ubuntu 22.04 docker方式启动artifactory相关
  • linux替换文件中的字符串
  • C语言 | Leetcode C语言题解之第108题将有序数组转换为二叉搜索树
  • 网上的面经【面试准备】
  • Docker打包nginx镜像丢失挂载的配置文件
  • hexo+github搭建个人博客
  • #Java异常处理
  • angular组件开发
  • Bootstrap JS插件Alert源码分析
  • js写一个简单的选项卡
  • Kibana配置logstash,报表一体化
  • nodejs:开发并发布一个nodejs包
  • Odoo domain写法及运用
  • Phpstorm怎样批量删除空行?
  • react-native 安卓真机环境搭建
  • TCP拥塞控制
  • 对JS继承的一点思考
  • 检测对象或数组
  • 将 Measurements 和 Units 应用到物理学
  • 将回调地狱按在地上摩擦的Promise
  • 前端设计模式
  • 前嗅ForeSpider中数据浏览界面介绍
  • 嵌入式文件系统
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 实习面试笔记
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 正则表达式
  • k8s使用glusterfs实现动态持久化存储
  • Nginx实现动静分离
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #{} 和 ${}区别
  • #QT(串口助手-界面)
  • #每日一题合集#牛客JZ23-JZ33
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (C语言)fgets与fputs函数详解
  • (NSDate) 时间 (time )比较
  • (办公)springboot配置aop处理请求.
  • (六)c52学习之旅-独立按键
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (正则)提取页面里的img标签
  • .net 使用ajax控件后如何调用前端脚本