IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 项目【官网】第四天--首页的编写 -> 正文阅读

[JavaScript知识库]项目【官网】第四天--首页的编写

项目【官网】第四天–首页的编写


总目录 :项目【官网】的诞生

项目【官网】第一天----后端整体框架搭建

项目【官网】第二天----后端C端接口的编写

项目【官网】第三天----前端框架搭建


第一步:【官网】两个字的编写

<span class="el_table_font" >官网</span>

然后设置样式

.el_table_font {
  text-decoration: none;
  position: fixed;
  top: 28%;
  left: 42%;
  font-size: 420%;
  font-family: "方正舒体","YouYuan","华文隶书", "FZShuTi","微软雅黑";
}

页面效果

image-20220107222600981

第二步输入框

<el-input
      style="position: fixed;width: 25%;top: 45%;left: 32%"
      placeholder="请输入要查询的内容"
      v-model="input"
      clearable
      small
    >
    </el-input>

image-20220107222922946

第三步: 搜索按钮

		<el-row>
        <el-button style="position: fixed ;top: 45%;left: 58%" type="primary" icon="el-icon-search" >搜索</el-button>
    </el-row>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vzxTD79h-1641567104402)(/Users/shoplazza/Library/Application Support/typora-user-images/image-20220107223117162.png)]

这样效果就差别多了,但是还有加东西

第四步: 遮罩层

遮罩层就是,加一次灰色透明的一层,当点击输入框时,就显示遮罩层,然后输入框和按钮在遮罩层上面

效果

image-20220107223512951

我的办法是:

  • 加一个透明的div,
  • 然后用z-index进行分层,
  • 设置一个变量ture false判断是否显示, module: false
  • 输入框焦点事件和失去焦点事件
//加一个透明div
		<div v-if=this.module class="mask">

    </div>
    .mask{
  z-index: 5;
  background-color: rgb(0,0,0,0);
  opacity: 0.3;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
	}
//z-index分层
//官网在底层
.el_table_font {
  text-decoration: none;
  position: fixed;
  top: 28%;
  left: 42%;
  font-size: 420%;
  font-family: "方正舒体","YouYuan","华文隶书", "FZShuTi","微软雅黑";
  z-index: 4;
}
//输入框在上层
		<el-input
      style="position: fixed;width: 25%;top: 45%;left: 32%;z-index: 6"
      placeholder="请输入要查询的内容"
      v-model="input"
      clearable
      small
      @focus="kl"  
      @blur="bl" 	
    >
    </el-input>
    <el-row>
      <router-link
        :to="{
        path: 'home',
        query: { input: this.input, }
        }"
      >
        <el-button style="position: fixed ;top: 45%;left: 58%;z-index:6 " type="primary" icon="el-icon-search" >搜索</el-button>
      </router-link>
    </el-row>
    
    //事件
    kl (){
      this.module = true
    },
    bl (){
      this.module=false
    }

第五步:点击按钮

点击搜索按钮后可以跳转到下一个展示页面

  • 新建一个Home.vue
  • 添加路由
  • 用router-link包裹button
  • 需要携带输入框的内容到Home.vue
		<router-link
        :to="{
        path: 'home',
        query: { input: this.input, }
        }"
      >
        <el-button style="position: fixed ;top: 45%;left: 58%;z-index:6 " type="primary" icon="el-icon-search" >搜索</el-button>
      </router-link>
第六步:输入框回车事件

效果就是输入框回车就可以跳转Home.vue,不需要点击按钮(参照浏览器搜索的效果,少了点击直接回车减少操作时间)

    <el-input
      style="position: fixed;width: 25%;top: 45%;left: 32%;z-index: 6"
      placeholder="请输入要查询的内容"
      v-model="input"
      clearable
      small
      @keyup.enter.native="inputEnter"
      @focus="kl"
      @blur="bl"
    >
    </el-input>
    
    inputEnter () {
      this.$router.push( {path : '/home',query : {input : this.input} } )
    },

首页就写完了,还有写细节还没写好,技术还没到

总体代码

<template>
  <div>
    <span class="el_table_font" >官网</span>
    <el-input
      style="position: fixed;width: 25%;top: 45%;left: 32%;z-index: 6"
      placeholder="请输入要查询的内容"
      v-model="input"
      clearable
      small
      @keyup.enter.native="inputEnter"
      @focus="kl"
      @blur="bl"
    >
    </el-input>
    <el-row>
      <router-link
        :to="{
        path: 'home',
        query: { input: this.input, }
        }"
      >
        <el-button style="position: fixed ;top: 45%;left: 58%;z-index:6 " type="primary" icon="el-icon-search" >搜索</el-button>
      </router-link>
    </el-row>
    <div v-if=this.module class="mask">

    </div>

  </div>
</template>

<script>
export default {
  name: 'Main',
  data () {
    return {
      input: '',
      module: false
    }
  },
  created () {
  },
  methods: {
    inputEnter () {
      this.$router.push( {path : '/home',query : {input : this.input} } )
    },
    kl (){
      this.module = true
    },
    bl (){
      this.module=false
    }
  }
}
</script>

<style scoped lang="less">
@height: calc(100vh-60px);
/deep/.body {
  height: 100vh;
  background: #ffffff;
}
.el-input__inner {
  background-color: #fefefe ;
}
.el_table_font {
  text-decoration: none;
  position: fixed;
  top: 28%;
  left: 42%;
  font-size: 420%;
  font-family: "方正舒体","YouYuan","华文隶书", "FZShuTi","微软雅黑";
  z-index: 4;
}
.mask{
  z-index: 5;
  background-color: rgb(0,0,0,0);
  opacity: 0.3;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/deep/ .el-input__inner {
  background-color: #f2f3f4;
}
/deep/ .el-divider--horizontal {
  margin: 0px;
}
</style>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 13:54:34  更:2022-01-08 13:55:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:55:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码