整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

简单实用的图片自动无缝轮播

是一个朋友前天刚接触这个行业不久问我的一个问题,我网上也查了一些,看了下代码,不喜欢;所以

自己动手做了这个小demo;希望大家可以借鉴一下

首先页面布局:其中最主要的是对类wrapper设置position:relative;overflow:hidden;

类items设置:position:absolute等属性;

接下来就事分析如何轮播:

我的思路是:点击下一页的时候:items的animate向左移动

animate({"marginLfet":"-800px"},1000,function(){});其中function({})里执行的方法:

首先将item-1放到$(".items li")最后面,然后items({marginLeft:0})

【一开始在想,将item-1追加到$(".items li")最后面之后,那么一开始item-1是不是要移除掉呢,

然后我观察了下一页的方法执行后的页面元素,才发现这个担心是多余的】

下面是执行下一页之后的页面元素:

【大家发现了没有,第一个li元素跑到最后面了,然后接下来点击上一页的时候,我们只需要取最后一个li元素就行了】

思路:点击上一页的时候,items的css向左移动({"marginLfet":0}),然后$(".items li").eq(3)放在items第一个位置里,然后动画aniamte({"marginLeft":0},1000);

这时候大家脑补一下:items的css向左移动({"marginLfet":0})和$(".items li").eq(3)[即item-1]放在items第 一个位置里都是瞬间完成,人眼是看不出来的;所以再之后执行aniamte({"marginLeft":0},1000)时候,发现item-1慢悠悠从左侧出来

js代码如下:

接下来就是定时器了:自动轮播

【timer一定去做下判断,不然会导致连续点击的时候,图片移动会越来越快】

还有最后一个setTimeout这个:在点击上下一页的时候,我会清除定时器,所有我会在其事件里添加它,然后三秒之后再执行show(),自动轮播;

最后点击事件:

总体页面展示:

者:紫云飞

转发链接:https://zhuanlan.zhihu.com/p/38251413

握:如何在浏览器中无缝集成Ant Design of Vue,打造高性能前端应用

一、前言:Ant Design of Vue的魅力与价值



在当前复杂多变的Web开发环境中,构建高效、美观且易于维护的前端应用显得尤为重要。Ant Design of Vue(以下简称“AoV”)作为一款基于Vue.js的高质量UI组件库,以其严谨的设计规范、丰富的组件体系以及出色的性能表现,为开发者提供了构建企业级中后台应用的强大工具。本篇文章将带领您深入理解AoV的核心特性,并详细演示如何在浏览器中无缝集成AoV,以打造高性能的前端应用。

二、Ant Design of Vue核心特性概览

1. **统一设计语言与规范**:AoV遵循Ant Design的设计体系,提供一致的视觉风格和交互体验,使您的应用具备高度的一致性和专业感。

2. **丰富且易用的组件库**:包含表格、表单、按钮、图标、布局、提示、对话框等近200种组件,满足各类业务场景需求。每个组件均提供详尽的API文档和示例,便于快速上手。

3. **响应式设计与无障碍支持**:AoV组件天然支持移动端适配,确保在不同设备上的良好展示效果。同时,其对无障碍访问(a11y)的重视,让应用更具包容性。

4. **灵活的定制与主题化**:通过Less变量和CSS预处理器,AoV允许开发者轻松调整或替换主题样式,实现个性化定制。

5. **高性能优化**:AoV通过组件懒加载、虚拟滚动、异步加载数据等技术手段,有效提升大型应用的性能表现。

三、环境准备与AoV安装

1. 环境准备



确保已安装以下环境:

- Node.js(推荐使用最新LTS版本)
- Vue CLI(用于项目初始化)

2. 创建Vue项目

bash
vue create my-app
cd my-app

使用Vue CLI创建新项目:

3. 安装Ant Design of Vue

bash
npm install ant-design-vue --save

在项目根目录下运行以下命令:

四、配置AoV并引入基础样式

1. 引入全局样式

javascript
import 'ant-design-vue/dist/antd.css';

import { createApp } from 'vue';
import App from './App.vue';

const app = createApp(App);
// ...其他配置
app.mount('#app');

2. 配置按需加载

javascript
module.exports = {
  plugins: [
    ['import', {
      libraryName: 'ant-design-vue',
      libraryDirectory: 'es',
      style: true, // 导入对应组件的css
    }, 'ant'],
  ],
};

为了减小打包体积,推荐使用`babel-plugin-import`实现组件的按需加载。首先安装该插件:

五、实战:使用AoV组件构建典型页面

1. 布局组件:Layout、Header、Sider、Content、Footer

html
<template>
  <a-layout>
    <a-layout-sider collapsible>
      <a-menu mode="inline" :defaultSelectedKeys="['1']">
        <!-- 菜单项... -->
      </a-menu>
    </a-layout-sider>
    <a-layout>
      <a-layout-header>
        <!-- 顶部导航栏... -->
      </a-layout-header>
      <a-layout-content>
        <!-- 页面主体内容... -->
      </a-layout-content>
      <a-layout-footer>
        <!-- 底部版权信息... -->
      </a-layout-footer>
    </a-layout>
  </a-layout>
</template>

利用AoV的布局组件,快速搭建一个响应式的侧边导航布局:

2. 表格组件:Table

html
<template>
  <a-table :columns="columns" :data-source="dataSource" :pagination="pagination" :row-selection="{ type: 'checkbox' }">
    <!-- 其他表格配置... -->
  </a-table>
</template>

<script>
export default {
  data() {
    return {
      columns: [...], // 列定义
      dataSource: [...], // 数据源
      pagination: {
        pageSizeOptions: ['10', '20', '50', '100'],
        showSizeChanger: true,
        showQuickJumper: true,
      },
    };
  },
  methods: {
    handleTableChange(pagination, filters, sorter) {
      // 处理表格变化,如分页、排序、筛选
    },
  },
};
</script>

实现一个带有分页、排序、筛选功能的数据表格:

3. 表单组件:Form、Input、Select、DatePicker等

html
<template>
  <a-form :form="form" @submit="handleSubmit">
    <a-form-item label="用户名">
      <a-input v-model="form.username" />
    </a-form-item>
    <a-form-item label="性别">
      <a-select v-model="form.gender">
        <a-select-option value="male">男</a-select-option>
        <a-select-option value="female">女</a-select-option>
      </a-select>
    </a-form-item>
    <a-form-item label="出生日期">
      <a-date-picker v-model="form.birthday" format="YYYY-MM-DD" />
    </a-form-item>
    <a-button type="primary" html-type="submit">提交</a-button>
  </a-form>
</template>

<script>
export default {
  data() {
    return {
      form: this.$form.createForm(this),
      model: {
        username: '',
        gender: '',
        birthday: null,
      },
    };
  },
  methods: {
    handleSubmit(e) {
      e.preventDefault();
      this.form.validateFields((err, values) => {
        if (!err) {
          console.log('Received values of form: ', values);
        }
      });
    },
  },
};
</script>

构建一个包含输入框、选择器、日期选择器的表单:

六、进阶:AoV性能优化实践

1. 组件懒加载

javascript
// router.js
{
  path: '/some-page',
  component: () => import('@/views/SomePage.vue'),
}

利用Vue的动态导入功能,实现路由级别的组件懒加载:

2. 数据懒加载与虚拟滚动

html
<a-table :columns="columns" :data-source="dataSource" :pagination="pagination" :scroll="{ y: 'calc(100vh - 240px)' }">
  <!-- 其他表格配置... -->
</a-table>

并在后端接口中实现分页与数据懒加载。

3. 使用SSR提升首屏加载速度



考虑使用Vue官方推荐的Nuxt.js框架,或自行配置Vue SSR(服务器端渲染),以提升首屏加载速度和SEO效果。

七、总结

通过本文的学习,您已经掌握了如何在浏览器中无缝集成Ant Design of Vue,充分利用其丰富的组件库、统一的设计规范以及强大的性能优化特性,打造出高性能、高颜值的前端应用。AoV不仅简化了开发流程,更提升了应用的整体质量与用户体验。在实际项目中,持续关注AoV的更新动态,结合最佳实践进行优化,定能使您的前端开发工作事半功倍。