• 基于vue实现bilibili网页


    学校要求的实验设计,基于vue实现bilibili网页版,可实现以下功能

    (1)基本的悬浮动画和页面渲染

    (2)可实现登录和未登录的页面变化

    (3)在登录页面的,实现密码判断,或者短信验证方式的倒数功能

    (4)实现轮播图

    (5)实现预览视频(GIF)

    (6)页面下拉到一定高度出现top栏以及右下角的返回功能

    由于篇幅,代码较长,本文仅罗列一些基本代码,要源码的伙伴直接在本文评论即可

     1.基本页面

    1.1未登录

    1.2已登录 

    以下是基本框架代码

    2.登录页面

    2.1实现锁定密码框时,左右下角图片的变化

     

     

    1. <img src="../assets/img/login_L.png" alt="" class="e-l-img" v-if="isFocus">
    2. <img src="../assets/img/closeL.png" alt="" class="e-l-img" v-else>
    3. <img src="../assets/img/login_R.png" alt="" class="e-r-img" v-if="isFocus">
    4. <img src="../assets/img/closeR.png" alt="" class="e-r-img" v-else>

    利用v-if即可,在获得输入框获得焦点时候,让isFocus相对应变化即可

    2.2自由切换短信/密码登录

     利用点击事件切换对应变量的值即可

    1. <el-form labor-width="150px" class="entry_Form" v-if="EntryMethod === 'mima'">
    2. <el-form-item label="账号" class="userInput">
    3. <el-input placeholder="请输入账号" v-model="UserNameInput">el-input>
    4. el-form-item>
    5. <el-form-item label="密码" class="passInput"
    6. >
    7. <el-input placeholder="请输入密码" @focus="isFocus=false" @blur="isFocus=true" ref="PassInput" :type="inputType" v-model="passWordInput" @keyup.enter.native="handleLogin">el-input>
    8. <div class="p-right" v-if="!isCheck">
    9. <span><i class="iconfont icon-chakanmima" @mousedown.prevent="handleEyeClose">i>span>
    10. <a href="javascript:;">忘记密码?a>
    11. div>
    12. <div class="p-right" v-else>
    13. <span><i class="iconfont icon-chakanmima1" @mousedown.prevent="handleEyeOpen">i>span>
    14. <a href="javascript:;">忘记密码?a>
    15. div>
    16. el-form-item>
    17. el-form>
    18. <el-form labor-width="150px" class="entry_Form" v-else>
    19. <el-form-item label="+86" class="userInput">
    20. <el-input placeholder="请输入手机号" v-model="PhoneNumInput">el-input>
    21. <el-divider class="en-divider" direction="horizontal">el-divider>
    22. <el-button :disabled="(!isPhoneNumberValid ) || (downCount !== 0)" @click="handleGetCaptcha">{{ GetButtonText }}el-button>
    23. el-form-item>
    24. <el-form-item label="验证码" class="passInput" >
    25. <el-input placeholder="请输入验证码" @focus="isFocus=false" @blur="isFocus=true" ref="passwordInput" v-model="CaptchaInput" @keyup.enter.native="handleLoginByCaptcha">el-input>
    26. el-form-item>
    27. el-form>

    2.3只有当手机号输入为11位数字的时候,按钮才启动

    2.4对应的错误提示弹框

     

     

     

    1. handleLoginByCaptcha(){
    2. if(this.CaptchaInput === '12345'){
    3. this.UserNameInput = ''
    4. this.passWordInput = ''
    5. this.$emit('changeIsLogin',true)
    6. this.handleClick_entryBox()
    7. clearInterval(this.timer_ET);
    8. this.downCount = 0
    9. }else if(this.CaptchaInput === ''){
    10. this.getErrorShowText = '请输入验证码'
    11. this.passWordError = true
    12. setTimeout(() => {
    13. this.passWordError = false;
    14. },1000)
    15. }else{
    16. this.getErrorShowText = '验证码错误'
    17. this.passWordError = true
    18. setTimeout(() => {
    19. this.passWordError = false;
    20. },1000)
    21. }
    22. },
    23. handleGetCaptcha(){
    24. if (!(/^\d{11}$/.test(this.PhoneNumInput))) {
    25. this.getErrorShowText = '请输入正确的手机号'
    26. this.passWordError = true
    27. setTimeout(() => {
    28. this.passWordError = false;
    29. },1000)
    30. return;
    31. }

    2.5获取验证码倒计时

    1. startCountDown(){
    2. this.downCount = 60;
    3. this.timer_ET = setInterval(() => {
    4. if(this.downCount > 0){
    5. this.downCount--;
    6. }else{
    7. clearInterval(this.timer_ET);
    8. this.timer_ET = null
    9. }
    10. },1000)
    11. },

     3.底部右下角

    3.1悬浮展开

     

    3.2点击回到顶部

    1. class="backBox" @click="scrollToTop">
    2. <i class="iconfont icon-jiantou_down">i>
    3. <div>顶部div>
    1. scrollToTop() {
    2. window.scrollTo(0, 0);
    3. },

     4.总结

    还有其他功能由于篇幅问题就不全部展示,需要源码的伙伴直接文字评论即可

  • 相关阅读:
    【计算机组成原理】定点数和浮点数
    # 杂谈偶感 × 如何引用参考文献
    【大数据技术】!重要!MySQL里按某字段指定内容顺序排序的几种实现方法
    基于单片机的红外遥控解码程序设计与实现
    Linux/Ubuntu环境搭建(二):创建添加新磁盘、搭建Samba服务器
    C语言下的文件详解
    后入能先出,一文搞懂栈
    【初学者】Vue使用axios向Node.js发起请求以及跨域问题的解决
    论文答辩小技巧!
    C语言笔记之指针
  • 原文地址:https://blog.csdn.net/m0_60963435/article/details/136680906