Element-UI组件实现全局回到顶部功能

目录

一 项目创建步骤

二 删除不必要的文件

三 删除不必要的代码

四 安装 element-ui

五 启动项目

六 测试

七 正式编写的代码

八 测试效果

九 源码地址


一 项目创建步骤

1 创建项目

vue create ele-components

2 选择必要组件

? Check the features needed for your project:
(*) Babel
( ) TypeScript
( ) Progressive Web App (PWA) Support
(*) Router
( ) Vuex
(*) CSS Pre-processors
>( ) Linter / Formatter
( ) Unit Testing
( ) E2E Testing

3 路由模式选择history模式

? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, Router, CSS Pre-processors
? Use history mode for router? (Requires proper server setup for index fallback in production) (Y/n) y

4 预处理器选择 node-sass

? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default):
  Sass/SCSS (with dart-sass)
> Sass/SCSS (with node-sass)
  Less
  Stylus

5 选择默认配置文件

> In dedicated config files
  In package.json

6 不保存为预制项目

? Save this as a preset for future projects? (y/N) n

7 使用npm安装依赖

? Pick the package manager to use when installing dependencies:
  Use Yarn
> Use NPM

8 安装过程

Vue CLI v4.3.1
✨  Creating project in F:\vue\ele-components\ele-components.
⚙️  Installing CLI plugins. This might take a while...

二 删除不必要的文件

About.vue

HelloWord.vue

三 删除不必要的代码

1 index.js删除后的样子

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'

Vue.use(VueRouter)

  const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

2 Home.vue删除后的样子

<template>
  <div>
    home
  </div>
</template>
<script>
  
export default {
  name: 'Home',
  components: {
  }
}
</script>

3 APP.vue删除后的样子

<template>
  <div>
    <router-view/>
  </div>
</template>

<style lang="scss">
</style>

四 安装 element-ui

cnpm i -S element-ui

五 启动项目

npm run serve

六 测试

1 浏览器输入  http://localhost:8080/

2 界面呈现如下

七 正式编写的代码

1 main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
// 导入ElementUI
import ElementUI from 'element-ui'
// 导入ElementUI的样式
import 'element-ui/lib/theme-chalk/index.css'
// 导入全局组件
import './globalComponents'
// 使用导入ElementUI
Vue.use(ElementUI)
Vue.config.productionTip = false


new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

2 Home.vue

<!--主页面-->
<template>
    <div>
        <el-button type="primary" @click="goTo('/backTopOne')">去往页面1</el-button>
        <el-button type="primary" @click="goTo('/backTopTwo')">去往页面2</el-button>
    </div>
</template>
<script>
    export default {
        name: 'Home',
        components: {},
        methods: {
            /*页面跳转*/
            goTo(path) {
                this.$router.push(path)
            }
        }
    }
</script>

3 BackTopOne.vue

<template>
    <div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
        <div>这是回到顶部页面1</div>
    </div>
</template>

<script>
    export default {
        name: "BackTopOne"
    }
</script>

<style scoped>
</style>

4 BackTopTwo.vue

<template>
    <div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
        <div>这是回到顶部页面2</div>
    </div>
</template>

<script>
    export default {
        name: "BackTopTwo"
    }
</script>

<style scoped>
</style>

5 index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'

Vue.use(VueRouter)

const routes = [
    {
        path: '/',
        name: 'Home',
        component: Home
    },
    {
        path: '/backTopOne',
        name: 'backTopOne',
        component: () => import('../views/BackTopOne')
    },
    {
        path: '/backTopTwo',
        name: 'backTopTwo',
        component: () => import('../views/BackTopTwo')
    }
]

const router = new VueRouter({
    mode: 'history',
    base: process.env.BASE_URL,
    routes
})

export default router

6 ele-components\src\globalComponents\index.js

/*注册全局组件*/
import Vue from "vue"
import BackTop from "../components/backTop/BackTop"

Vue.component('backTop',BackTop)

八 测试效果

九 源码地址

https://gitee.com/cakin24/ele-components

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ElementUI并没有提供回到顶部组件功能,但你可以使用一些原生的方式来实现。以下是一个简单的实现方式: 1. 在需要回到顶部的页面添加一个“回到顶部”的按钮。 ```html <template> <div> <!-- 页面内容 --> <button @click="goTop">回到顶部</button> </div> </template> ``` 2. 在Vue组件中添加方法,使用原生的 `window.scrollTo()` 方法将页面滚动到顶部。 ```javascript <script> export default { methods: { goTop() { window.scrollTo(0,0); } } } </script> ``` 3. 如果需要添加动画效果,可以使用第三方库如`animate.css`来实现。 ```html <template> <div> <!-- 页面内容 --> <button @click="goTop" class="animated infinite pulse">回到顶部</button> </div> </template> ``` ```javascript <script> import 'animate.css'; export default { methods: { goTop() { window.scrollTo(0,0); } } } </script> <style> button { position: fixed; bottom: 20px; right: 20px; display: none; } button.show { display: block; } </style> <script> export default { mounted() { window.addEventListener('scroll', this.scrollHandler); }, beforeDestroy() { window.removeEventListener('scroll', this.scrollHandler); }, methods: { scrollHandler() { const scrollTop = document.documentElement.scrollTop || document.body.scrollTop; if (scrollTop > 100) { this.$refs.backTop.classList.add('show'); } else { this.$refs.backTop.classList.remove('show'); } }, goTop() { window.scrollTo({ top: 0, behavior: 'smooth' }); }, }, }; </script> ``` 以上是一个简单的回到顶部实现方式,你可以根据需要进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值