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. 力扣578(MySQL)-查询回答率最高的问题(中等)

    题目: 从 survey_log 表中获得回答率最高的问题,survey_log 表包含这些列:id, action, question_id, answer_id, q_num, timestamp ...

  2. 「开源人说」|AI普惠,阿里灵杰开源历程与思考

    简介: 施兴 阿里巴巴资深技术专家 阿里巴巴开源项目EasyRec负责人 以下为开发者社区「开源人说」第四期--大数据&AI专场的主题分享,点击链接了解更多精彩详情 https://devel ...

  3. Dubbo-go-Mesh 开启新一代 Go 微服务形态

    ​简介:Proxyless Service Mesh 能力将跟随 Dubbo-go 下一版本发布,稳定的性能需要社区成员们共同的关注与建设.在此基础之上,我们还会进一步探索轻量级 sdk + side ...

  4. 来电科技:基于 Flink + Hologres 的实时数仓演进之路

    简介: 本文将会讲述共享充电宝开创企业来电科技如何基于 Flink + Hologres 构建统一数据服务加速的实时数仓 作者:陈健新,来电科技数据仓库开发工程师,目前专注于负责来电科技大数据平台离线 ...

  5. [FAQ] Python的虚拟环境和包管理

      1. 创建虚拟环境 $ python -m venv test-env 2. 激活虚拟环境 windows:tutorial-env\Scripts\activate (powershell: . ...

  6. [Gin] gin-jwt 中间件的请求流程与使用思路

    gin-jwt 中间件是对 jwt-go 的封装以适应 gin 框架.gin-jwt 对不同的请求流程有不同的 handler: 登录请求流程 是用 LoginHandler. 需要 jwt 令牌的后 ...

  7. Region-区域

    定义Region的方式有两种: 一种是在XAML定义 RegionManager.RegionName(XAML) 一.View代码 1 <Viewbox Grid.Column="1 ...

  8. WPF 使用 ManipulationDemo 工具辅助调试设备触摸失效问题

    本文将和大家介绍我所在的团队开源的 ManipulationDemo 工具.通过 ManipulationDemo 工具可以提升调试设备触摸失效的效率 此工具在 GitHub 上完全开源,请看 htt ...

  9. dotnet 警惕使用 StackTrace 加获取方法标记 Attribute 特性在 Release 下被内联

    大家都知道,在 dotnet 里的 Debug 下和 Release 下的一个最大的不同是在 Release 下开启了代码优化.启用代码优化,将会对生成的 IL 代码进行优化,同时优化后的 IL 也会 ...

  10. WPF 更改 DrawingVisual 的 RenderOpen 用到的对象的内容将持续影响渲染效果

    在 WPF 里面,可以通过 DrawingVisual 来进行使用底层的绘制方法,此方法需要调用 DrawingVisual 的 RenderOpen 拿到 DrawingContext 类型的对象, ...