vue2和elementUI 打造落日余晖登录页和滑块校验

文章目录

    • 前言
    • 1 项目搭建
    • 2 依赖引入
    • 3 项目调整
      • ①vue-router
      • ② App.vue
      • ③ main.js
    • 4 写登录页
    • 5 写滑块校验
    • 6 源码下载
    • 7 问题解决
      • ①项目一直报错
      • ② 背景图存在白边


在这里插入图片描述

前言

标题很夸张,实则是AI的功能,今天咱也搞一个登录页,其实满简单的一个东东,大家也都会用到,本次仅限前端,没有任何后台交互,技术vuevue-routerelement-ui,因为背景图是落日,所以就叫它落日余晖登录页
在这里插入图片描述

1 项目搭建

使用指令直接构建的,选择vue2版本

vue create login-admin

构建后的项目,删掉了原始的helloworld组件,最终目标结构如下:
在这里插入图片描述

2 依赖引入

npm install element-ui
npm install vue-router@3

由于项目是基于vue2的,故vue-router不能使用4.x版本,后面会有问题,在文末说了。
在这里插入图片描述

3 项目调整

项目构建成功后,删掉最初的helloworld组件

①vue-router

新建router/index.js文件,将我们要写的登录页路径放进去

import Vue from 'vue'
import VueRouter from 'vue-router'Vue.use(VueRouter)const routes = [{path: '/',name: 'Login',component: () => import('@/views/login.vue'),}
]const router = new VueRouter({routes
})export default router;

② App.vue

移除掉老的App.vue中的全部内容,然后我写一个简单的router-view,让他来展示我们的login页面

<template><div id="app"><router-view></router-view></div>
</template><script>
</script>
<style>body {margin: 0px;
}</style>

这里面的body,由于下面有小坑,所以先给margin清空了

③ main.js

简单调整,将我们写的router引进来,以及element-ui导入进来

import Vue from 'vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';import App from './App.vue'Vue.use(ElementUI);
Vue.config.productionTip = falsenew Vue({router,render: h => h(App),
}).$mount('#app')

4 写登录页

新建页面views/login.vue这就是我们的核心页面,需要跟上面router中写的路径保持一致,太长了,我就简单复制一下

<template><div class="background"><el-form:rules="rules"ref="loginForm":model="loginForm"class="loginContainer"><h3 class="loginTitle">系统登录</h3><el-form-item prop="username"><el-inputtype="text"prefix-icon="el-icon-user"v-model="loginForm.username"placeholder="请输入用户名"></el-input></el-form-item><el-form-item prop="password"><el-inputtype="password"prefix-icon="el-icon-link"v-model="loginForm.password"placeholder="请输入密码"></el-input></el-form-item><el-form-item><SilderVerify ref="verify"></SilderVerify></el-form-item><el-checkbox v-model="checked" class="loginRemember">记住我</el-checkbox><el-button type="primary" style="width: 100%" @click="submitLogin">登录</el-button></el-form></div>
</template>

然后,换上我落日余晖的背景,逼格一下就上来了

.background {position: absolute;background-image: url("../assets/bg.jpg");background-size: cover;background-position: center center;background-repeat: no-repeat;height: 100vh; width: 100%;
}

5 写滑块校验

这里直接给他封装成组件了,来自chatgpt的大力支持,新建文件 components/SilderVerify/index.vue,代码搞进去,太长了,我就简单复制一下

<template><div class="drag" ref="dragDiv"><div class="drag_bg"></div><div class="drag_text">{{ confirmWords }}</div><divref="moveDiv"@mousedown="mouseDownFn($event)":class="{ handler_ok_bg: confirmSuccess }"class="handler handler_bg"style="position: absolute; top: 0px; left: 0px"></div></div>
</template>
<script>
export default {name: "SilderVerify",data() {return {beginClientX: 0 /*距离屏幕左端距离*/,mouseMoveState: false /*触发拖动状态  判断*/,maxWidth: "" /*拖动最大宽度,依据滑块宽度算出来的*/,confirmWords: "向右拖动滑块验证" /*滑块文字*/,confirmSuccess: false /*验证成功判断*/,};},methods: {//mousedown 事件mouseDownFn: function (e) {console.log('mouseDownFn' + e.clientX)if (!this.confirmSuccess) {e.preventDefault && e.preventDefault(); //阻止文字选中等 浏览器默认事件this.mouseMoveState = true;this.beginClientX = e.clientX;}},//验证成功函数successFunction() {this.confirmSuccess = true;this.confirmWords = "验证通过";if (window.addEventListener) {document.getElementsByTagName("html")[0].removeEventListener("mousemove", this.mouseMoveFn);document.getElementsByTagName("html")[0].removeEventListener("mouseup", this.moseUpFn);} else {document.getElementsByTagName("html")[0].removeEventListener("mouseup", () => {});}document.getElementsByClassName("drag_text")[0].style.color = "#fff";document.getElementsByClassName("handler")[0].style.left =this.maxWidth + "px";document.getElementsByClassName("drag_bg")[0].style.width =this.maxWidth + "px";},//mousemove事件mouseMoveFn(e) {if (this.mouseMoveState) {let width = e.clientX - this.beginClientX;if (width > 0 && width <= this.maxWidth) {document.getElementsByClassName("handler")[0].style.left =width + "px";document.getElementsByClassName("drag_bg")[0].style.width =width + "px";} else if (width > this.maxWidth) {this.successFunction();}}},//mouseup事件moseUpFn(e) {console.log('moseUpFn' + e.clientX)this.mouseMoveState = false;var width = e.clientX - this.beginClientX;if (width < this.maxWidth) {document.getElementsByClassName("handler")[0].style.left = 0 + "px";document.getElementsByClassName("drag_bg")[0].style.width = 0 + "px";}},},mounted() {this.maxWidth =this.$refs.dragDiv.clientWidth - this.$refs.moveDiv.clientWidth;document.getElementsByTagName("html")[0].addEventListener("mousemove", this.mouseMoveFn);document.getElementsByTagName("html")[0].addEventListener("mouseup", this.moseUpFn);},
};
</script>

6 源码下载

https://download.csdn.net/download/QQ727338622/87789070

7 问题解决

①项目一直报错

解决:由于安装 vue-router 时,直接运行了 npm install vue-router 命令,造成直接下载最新版 vue-router 4.x,而 4 以后的版本适用于 vue3.0 版本,用在 vue2.0+ 会报错,故换版本

在这里插入图片描述

② 背景图存在白边

可以看见,左右都有白边,采用了最粗暴的方法,给body的样式margin:0px可以解决,上面也写到了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/44974.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

问卷星录入过程参考

前面讲过的那些这里就不在重复了。直接从录入数据开始讲起&#xff0c; 这里我正好在录入一个问卷内容,以此为例来说一下 因为我首先要录入的是单选题&#xff0c;所以先点击单选添加单选题。 我录入的问题 其他题目的操作都与此类似,可供参考&#xff0c;希望能解决你的疑惑。…

python自动化------问卷星刷问卷3.0版本

接上&#xff0c;之前做的问卷星刷问卷的功能单一&#xff0c;每个题目只能选一个选项。现在的3.0版本功能增加了计数器&#xff08;刷了几份问卷&#xff09;、多选项的选择、通过滑块验证。想要了解之前的相关信息请看下面的链接&#xff1a; 隔壁寝室刷问卷刷疯了&#xff…

如何愉快的填写问卷星

从业务开发&#xff0c;了解http本质。 问卷星代刷方法: pythonselenium 通过自动化测试工具正常填写&#xff0c;方法低效&#xff0c;容易出现安全检测&#xff08;本文不讲&#xff09;。post请求&#xff0c;模拟包发送&#xff0c;简单快捷&#xff0c;跳过安全检测&…

问卷星最新调研爬虫自动填写

利用简单权重设置选项比例分配以及条件判断语句即可将问卷往你选择的放向走&#xff0c;需要对前端稍微了解即可&#xff0c;用谷歌的开发者工具查看元素 例如&#xff1a;check rank[i].find_elements(byBy.CLASS_NAME,value"ui-radio") from selenium import webd…

仿造问卷星--开发一套调查问卷设计工具(2/3)--完整流程

本章主要内容是完善index.js逻辑功能。 1&#xff0c;修改index.html&#xff0c;直接copy html和css文件直接从源码中拷贝&#xff1a; html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-eq…

Python自动化问卷填写-问卷星(含完整代码)

目录 一、环境安装二、代码分析&#xff08;一&#xff09;库的引用&#xff08;二&#xff09;驱动的运行&#xff08;三&#xff09;各类题型的程序&#xff08;四&#xff09;主程序&#xff08;根据问卷客制&#xff09; 三、完整代码 由于网上的问卷星填写代码良莠不齐&am…

Python自动化填写问卷星问卷

本文使用pyhton实现常见的问卷星问卷自动化填写。如果出现智能验证&#xff0c;本文还不能有效绕过问卷星提交时出现的智能检测&#xff0c;还需要手动点击智能检测才能完成问卷的填写。 在网络问卷中&#xff0c;我们常见的问题有单选题、多选题和李克勤量表题&#xff0c;如下…

python自动填写问卷星

python自动填写问卷星 参考链接1 参考链接2 用python实现自动填问卷&#xff0c;通过智能验证以及滑动验证 1. 下载浏览器驱动 python自动化填写问卷需要依赖浏览器驱动,这里使用的是谷歌浏览器&#xff0c;所以需要下载chromedriver&#xff0c;且下载的版本要和浏览器版本…

问卷星问卷数据怎么快速导入SPSSAU?

最近收到小伙伴询问问卷星导入的问卷数据怎么编码&#xff1f; 现在的问卷调查&#xff0c;很多都是通过网络问卷的方式进行&#xff0c;问卷星是一个专业的在线问卷调查、测评投票平台&#xff0c;如果你的问卷正好是在问卷星网站发放&#xff0c;填答&#xff0c;回收数据&am…

python问卷星模拟提交

*一、前言 ** 笔者在家闲得无聊&#xff0c;突然想突破一下问卷星的反爬虫机制&#xff0c;顺便刷刷问卷&#xff0c;于是就开始分析了。 ** 二、分析过程 ** 1、fiddler抓包 模拟提交首先当然是打开fiddler看看提交了什么包啦。 2、分析不变参数 我们先来看不变的参数&…

使用python实现问卷星自动答题功能——基础篇

题主在学习的过程中&#xff0c;老是有人来让填问卷星&#xff0c;就觉得人填的很麻烦&#xff0c;于是就自己动手写了一个python脚本来实现自动填写问卷星 1.首先我们得学会使用python里面的一个库&#xff0c;selenium&#xff0c;这个库是用来专门面对浏览器的一个库&#…

用Python实现问卷星自动填写(超详细!!!)

用Python实现问卷星自动填写&#xff08;超详细&#xff01;&#xff01;&#xff01;&#xff09; 前言一、配置环境1.1安装依赖1.2安装驱动 二、实战处理2.1、引入库函数2.2、程序所需函数详解&#xff08;1&#xff09;自定义单选函数&#xff08;2&#xff09;自定义多选函…

自动填写问卷星并提交

自动填写问卷星并提交 鉴于好多小伙伴要做数据分析的时候发放大量的问卷&#xff0c;但收回来的却寥寥无几&#xff0c;还受到其他小伙伴的冷眼&#xff0c;所以在下决定通过代码的方式&#xff0c;来实现问卷星的自动填写并提交。 以谷歌浏览器为例 1.随便到一个页面&#x…

【python】自动填写问卷星问卷及提交

前言&#xff1a;问卷是很好的网络调查方式之一&#xff0c;近年来&#xff0c;问卷星被广泛应用于各方面的调查。本文介绍了利用python代码自动填写问卷星基本题目&#xff0c;拥有自动填写、解决智能验证、批量提交问卷等功能。 目录 1.下载浏览器驱动 2. selenium基本配置…

利用GoogleTampermonkeyModify Headers实现问卷星调查问卷的自动填写提交

前言 首先一个月没有更新博客&#xff0c;是因为去苏州尝试了一下暑假工&#xff0c;然后对于大家在博客留下的评论和问题也没有来得及回复&#xff0c;实在不好意思。不得不说&#xff0c;暑假工挺累的&#xff0c;而且基本上在消磨时间&#xff0c;说实话也不算后悔&#xf…

Python实现问卷星调查问卷自动填写

文章目录 前言一、配置环境1.1 下载依赖selenium1.2 安装chrome驱动1.3 引入库 二、简易版快速上手教程1.自定义变量2.自定以函数3 主函数编写 三 逐步解析1 基础代码2 实现步骤 四 代码总结 前言 如何使用python实现对问卷的自动填写提交任务并且还能解决智能验证问题。 一、…

Mac 软件出现「意外退出」及「打不开」解决方法

解决方法 方法其实有很多种&#xff0c;这里介绍常用的几种 终端法需先安装Xcode或Apple命令行工具 如未装Xcode可以使用下列命令安装Apple命令行工具&#xff08;如安装有Xcode可忽略&#xff09; xcode-select --install 1.终端法 sudo codesign --force --deep --sign -…

postman能正常打开但不显示窗口

1.最近使用postman偶尔出现以下问题 postman在任务栏能正常打开&#xff0c;如下图&#xff0c;使用AltTab也能看到&#xff0c;但是窗口就是显示不了 2.解决方案 将鼠标放在任务栏上&#xff0c;使用快捷键Alt空格&#xff0c;弹出小窗口&#xff0c;然后点击弹框中的最大化…

MPAndroidChart的HorizontalBarChart数值显示不全问题

现在使用的版本是&#xff1a;v3.1.0 方案一&#xff1a; private HorizontalBarChart hor_bar_chart; hor_bar_chart(HorizontalBarChart) findViewById(R.id.hor_barchart); YAxis leftYAxishor_bar_chart.getAxisLeft(); // 设置y轴边距&#xff0c;解决数值过大显示不全问…