npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

upp-touch

v1.1.1

Published

基于vue触屏滑动方案

Downloads

5

Readme

upp-touch

基于vue的移动端滑动方案。


什么是 upp-touch

uppTouch 处理移动端的滑动事件

  • [x] 可锁定方向,禁止横轴或者纵轴滑动
  • [x] 上下左右滑动有对应事件触发并且携带距离值
  • [x] 自动处理边界,到达边界后不会继续移动
  • [x] 如果移动时已经处于对应方向的边界,则会触发新的事件,以便和移动事件区分开
  • [x] 暴露直达上下左右边界的方法
  • [x] 简单快捷,轻松上手

安装

npm install upp-touch --save

在指定区域内滑动

  • 通过设置自定义样式使用,注意不要忘记添加 overflow 属性
<template>
    <upp-touch :diyStyle="diyStyle">
        <div class="scrollWrapper"></div>  // 滚动的盒子
    </upp-touch>
</template>

<script>
    import uppTouch from 'upp-touch'

    export default {
        data() {
          return {
            diyStyle: {
              width: '100px',
              height: '100px',
              overflow: 'hidden'
            }
          }
        },

        components: {
            uppTouch
        }
    }
</script>
  • 通过外层再加一个盒子使用
<template>
    <div id="touchWrapper">
        <upp-touch>
            <div class="scrollWrapper"></div>  // 滚动的盒子
        </upp-touch>
    </div>
</template>

<style scoped>
  #touchWrapper {
    width: 100px;
    height: 200px;
    overflow: hidden;
  }
</style>

注意一:建议组件包裹起来的盒子有且只有一个,多个DOM将无法检测到

  • 正确的写法(非必看文档):
<template>
    <div id="out">
        <upp-touch>
            <div class="scrollWrapper">……</div>
        </upp-touch>
    </div>
</template>
  • 错误的写法(非必看文档):
<template>
    <div id="out">
        <upp-touch>
            <div class="scrollWrapper">……</div>
            <div class="any">……</div>
            ……
        </upp-touch>
    </div>
</template>

注意二:要滚动的盒子必须满足以下任意一个要求(比如上方类名为 scrollWrapper 的盒子): 1、设置了宽高 2、设置为行内或者行内块级元素让其宽度由内容撑开

配置

| 属性名 | 描述 | 类型 | 默认值 | | -------- | :----: | :----: | :----: | | lockX | 锁定横轴,禁止滚动 | Boolean | false | | lockY | 锁定纵轴,禁止滚动 | Boolean | false | | preventDefault | 在滑动时阻止默认事件 | Boolean | false | | scrollTransitionTime | 滑动过渡时间 | Number | 0.3S | | commonSlideTransition | 滑动时是否开启过渡效果 | Boolean | false | | diyStyle | 包裹滚动区域盒子的样式 | Object | {} |

说一下 commonSlideTransition,默认的过渡效果只触发在对外封装的方法中生效,如果要在正常的滑动中也添加过渡效果,修改这个属性即可。

封装的方法

| 方法名 | 描述 | | :----: | :----: | | toLeft | 滚动到横轴起始的位置 | | toRight | 滚动到横轴末尾处 | | toTop | 滚动到纵轴起始的位置 | | toBottom | 滚动到纵轴末尾处 |

过渡效果默认只在调用这几个方法的时候生效,如果要在正常的滑动中也生效,修改配置属性 commonSlideTransition

特性: 1、在滚动的盒子小于滚动区域的时候,自动锁定对应方向无法滑动,但是这几个方法仍然可以生效; 2、在用户主动锁定横轴或者纵轴方向时,这几个方法仍然可以生效。

观察者模式

| 派发的事件 | 描述 | 追加描述 | :----: | :----: | :----: | | x-start | 横轴方向移动到起始位置时触发 | - | x-end | 横轴方向移动到末尾时触发 | - | y-start | 纵轴方向移动到起始位置时触发 | - | y-end | 纵轴方向移动到末尾时触发 | - | XStart | 右滑行为时如果已经处于起始位置触发 | 上拉加载下拉刷新利器 | XEnd | 左滑行为时如果已经处于末尾触发 | 上拉加载下拉刷新利器 | YStart | 下拉行为时如果已经处于起始触发 | 上拉加载下拉刷新利器 | YEnd | 上拉行为时如果已经处于末尾触发 | 上拉加载下拉刷新利器 | leftMoving | 页面向左滑动的时候触发 | 可通过形参接收已移动距离 | rightMoving | 页面向右滑动的时候触发 | 可通过形参接收已移动距离 | topMoving | 页面向上滑动的时候触发 | 可通过形参接收已移动距离 | bottomMoving | 页面向下滑动的时候触发 | 可通过形参接收已移动距离

可以利用这几个事件进行一些扩展的行为,比如上拉加载、下拉刷新等,可以查看Demo便于理解这几个事件的表现。