better-scroll: https://better-scroll.github.io/docs/zh-CN/guide/

影院列表数据使用better-scroll来完成数据的展示,此插件对于移动站点的滚动非常友好

安装   cnpm i -S better-scroll

html结构一定要规定好

<template>
<div>
<nav>
<router-link to="/cities">恩施</router-link>
</nav>
<!-- 列表容器外层的盒子 -->
<div class="box" :style="{ height }">
<!-- 所有列表项的容器 -->
<div class="item" v-for="item in cinemas" :key="item.cinemaId" @clikc="fn">
<div class="left">
<div>{{ item.name }}</div>
<div>{{ item.address }}</div>
</div>
<div class="right">
<div>¥25起</div>
<div>5km</div>
</div>
</div>
</div>
</div>
</template> <script>
import Vue from 'vue'
// 引入组件
import { Toast, Notify } from 'vant'
import BetterScroll from 'better-scroll'
import { cinemaData } from './api/api'
Vue.use(Toast)
Vue.use(Notify)
export default {
data() {
return {
cinemas: [],
// 滚动容器的高度 计算出来
height: 0,
// 滚动对象
scroll: null
}
},
mounted() {
this.getData()
// 外层滚动容器高度
this.height = document.documentElement.clientHeight - 50 + 'px'
// 异步执行完毕后执行的方法
this.$nextTick(() => {
this.scroll = new BetterScroll('.box', {
// 上拉事件
pullUpLoad: true,
// 下拉
pullDownRefresh: true,
click: true
})
// 上拉事件
this.scroll.on('pullingUp', () => {
this.getData(2)
this.scroll.finishPullUp()
})
// 下拉
this.scroll.on('pullingDown', () => {
this.getData(1)
this.scroll.finisPullDown()
})
})
},
beforeDestroy() {
// 组件销毁之前要清掉所创建的动画
this.scroll = null
Toast.clear()
},
methods: {
fn() {
console.log('我点击了')
},
// 获取数据
async getData(flag = 1) {
// 加载提示框==》 动态创建组件
Toast.loading({
// 持续加载中
duration: 0,
message: '加载中。。。。',
// 透明蒙层
forbidClick: true
})
// 异步,在刚开始没有数据
const ret = await cinemaData()
if (flag == 1) {
// 从顶部添加数据分页数据
this.cinemas = [...ret.data.dta.cinemas, ...this.cinemas]
} else {
this.cinemas = [...this.cinemas, ...ret.data.data.cinemas]
}
// 关闭提示
Toast.clear()
// 通知一下
Notify({ type: 'success', message: '这里是通知内容' })
}
}
}
</script>
<style lang="scss" scoped>
nav {
  height: 50px;
  background: white;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1;
}
.box {
  width: 100%;
  overflow: hidden;
  .itembox {
    margin-top: 50px;
    .item {
      margin-top: 5px;
      padding: 5px;
      border-bottom: 1px solid #ccc;
      display: flex;
      .left {
        flex: 2;
        div:nth-of-type(1) {
          color: #191a1b;
          font-size: 16px;
        }
        div:nth-of-type(2) {
          color: #797d82;
          font-size: 12px;
        }
      }
      .right {
        margin-top: 5px;
        div:nth-of-type(1) {
          color: #ff5f16;
          font-size: 12px;
        }
        div:nth-of-type(2) {
          color: #797d82;
          font-size: 12px;
        }
      }
    }
  }
}
</style>
 

异步获取数据时封装的cinemaData()


// 引入封装头信息和请求域名的axios对象
import http from './http'
// 引入请求的url地址
import {
  // 请求uri地址
  cinemaUri
} from '../config/uri'

export const cinemaData = () => {
return http.get(cinemaUri, {
headers: {
// 由于请求头信息中不同的需求不同的请求头,所以要判断所用的条件
'info': 'cinema'
}
})
}

封装请求头信息和axios

import Vue from 'vue'
import axios from "axios" axios.defaults.baseURL = 'https://maaaaaa.com'
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
let host = "mall.film-ticket.film.list"
let info = config.headers.info
 if ('cinema' == info) {
    host = 'mall.film-ticket.cinema.list'
  }
config.headers = {
    "X-Client-Info":
      '{"a":"3000","ch":"1002","v":"5.0.4","e":"1598087896889693885431809","bc":"110100"}',
    "X-Host": host,
  }
  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});
export default axios

vue移动端 滚动的更多相关文章

  1. vue移动端 滚动 鼠标按下效果

    <div class="item" :id="item.RowID" @touchstart="touchstart(item.RowID)&q ...

  2. Vue项目移动端滚动穿透问题

    概述 今天在做 Vue 移动端项目的时候遇到了滚动穿透问题,在网上查资料后,选取了我觉得最好的方法,记录下来供以后开发时参考,相信对其他人也有用. 上层无需滚动 如果上层无需滚动的话,直接屏蔽上层的 ...

  3. [vue] vue服务端渲染nuxt.js

    初始化 使用脚手架工具 create-nuxt-app 快速创建 npx create-nuxt-app <项目名> npx create-nuxt-app 执行一些选择 在集成的服务器端 ...

  4. vue监听滚动事件,实现滚动监听

    在vue中实现滚动监听和原生js无太大差异,下面是一个简单的demo,可在控制台查看结果 <!DOCTYPE html> <html lang="en"> ...

  5. Egg + Vue 服务端渲染工程化实现

    在实现 egg + vue 服务端渲染工程化实现之前,我们先来看看前面两篇关于Webpack构建和Egg的文章: 在 Webpack工程化解决方案easywebpack 文章中我们提到了基于 Vue ...

  6. Vue移动端项目模板

    一个集成移动端开发插件的Vue移动端模板包含1.css: 使用stylus开发css 集成reset样式文件 修改UI组件文件 统一样式处理(如主题色等)2.UI组件 使用热门的vant与mint-u ...

  7. vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图

    vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图 Mand Mobile是面向金融场景设计的移动端组件库,基于Vue.js实现.目前已实际应用于滴滴四大金融业务板块的1 ...

  8. vue移动端h5页面根据屏幕适配的四种方案

    最近做了两个关于h5页面对接公众号的项目,不得不提打开微信浏览器内置地图导航的功能确实有点恶心.下次想起来了的话,进行总结分享一下如何处理.在vue移动端h5页面当中,其中适配是经常会遇到的问题,这块 ...

  9. vue服务端渲染axios预取数据

    首先是要参考vue服务端渲染教程:https://ssr.vuejs.org/zh/data.html. 本文主要代码均参考教程得来.基本原理如下,拷贝的原文教程. 为了解决这个问题,获取的数据需要位 ...

  10. vue服务端渲染简单入门实例

    想到要学习vue-ssr的同学,自不必多说,一定是熟悉了vue,并且多多少少做过几个项目.然后学习vue服务端渲染无非解决首屏渲染的白屏问题以及SEO友好. 话不多说,笔者也是研究多日才搞明白这个服务 ...

随机推荐

  1. 框架hash/history实现简单原理

    1.hahs <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  2. nuxt按需引入组件库(却加载所有图标问题),nuxt性能优化。

    做一个官网,nuxt按需引入了antd_vue组件库,但是项目打包时,图标却又500K+,经过排查,发现icon和其他组件环环相扣的.如下:(我引入了这个翻页的组件,里面包含了两个翻页的图标) 但是它 ...

  3. 【Oracle】PL/SQL制作唯一标识,固定字段+日期+流水码,流水码每日重置

    [Oracle]PL/SQL制作唯一标识,固定字段+日期+流水码,流水码每日重置 首先创建序列 create sequence sequence_name minvalue 0 maxvalue 99 ...

  4. 【笔记】Linux基础指令

    Linux基础指令 cd 跳转文件夹 cd 到根目录 cd usr 到根目录下的usr目录 cd .. 到上一级目录 cd ~ 到home目录 cd - 到上次访问的目录 sh 执行sh命令 ls 查 ...

  5. 1.css的初认识

    1.什么是CSS? Cascading Style Sheet 层叠级联样式表 CSS:表现层(美化网页) 字体.颜色.边距.高度.宽度.背景图片.网页定位.网页浮动.... 2.CSS发展史 CSS ...

  6. 通过 MSE 实现基于Apache APISIX的全链路灰度

    简介: 无论是微服务网关还是微服务本身都需要识别流量,根据治理规则做出动态决策.当服务版本发生变化时,这个调用链路的转发也会实时改变.相比于利用机器搭建的灰度环境,这种方案不仅可以节省大量的机器成本和 ...

  7. 智能logo免费体验|如何让餐饮logo在点评网站上一眼出众?

    ​简介:一个新的餐饮店铺,还没有人知晓,Logo就是这个重要的"门面",所传递的信息让人快速识别,就能产生记忆点,愿意进一步了解,从而为店铺带来流量和收益.如何让你的餐饮店铺log ...

  8. Databricks 企业版 Spark&Delta Lake 引擎助力 Lakehouse 高效访问

    ​简介:本文介绍了Databricks企业版Delta Lake的性能优势,借助这些特性能够大幅提升Spark SQL的查询性能,加快Delta表的查询速度. 作者: 李锦桂(锦犀) 阿里云开源大数据 ...

  9. 关于Git和Svn的区别

    关于Git 和 Svn 的选用,详细列出区别 Git 是分布式的,而 Svn 不是分布的; Git 把内容按元数据方式存储,而 SVN 是按文件; Git 没有一个全局版本号,而 SVN 有:目前为止 ...

  10. Jmeter-线程组下篇

    线程组 线程组作为JMeter测试计划的核心组件之一,对于模拟并发用户的行为至关重要.线程组元件是整个测试计划的入口,所有的取样器和控制器必须放置在线程组下. 可以将线程组视为一个虚拟用户池,其中每个 ...