uniapp开发技术

news2025/2/26 6:33:40

目录

1、js 判断iPhone|iPad|iPod|iOS|Android客户端

2、js实现防抖

3、 js实现节流

4、 页面在弹窗时禁止底部页面滚动(h5端)

@touchmove.stop.prevent

5、scrollIntoView


1、js 判断iPhone|iPad|iPod|iOS|Android客户端

			//	fullScreen代表整个页面最外层的高度height:fullScreen
			//	50px 是底部tabar的高度
			//	env(safe-area-inset-bottom) iphone的一个安全高度
			if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
				window.location.href ="iPhone.html";
				this.fullScreen = 'calc(100vh - 50px - env(safe-area-inset-bottom))'
			} else if (/(Android)/i.test(navigator.userAgent)) {
				window.location.href ="Android.html";
				this.fullScreen = 'calc(100vh - 50px)'
			} else {
				window.location.href ="pc.html";
			};

2、js实现防抖

一般用于按钮的点击,用户点击后,在一段时间后才能点击执行里面的函数

//防抖:在第一次触发事件时,不立即执行函数,而是给出一个限定值,比如200ms,然后:
//如果在200ms内没有再次触发事件,那么执行函数
//如果在200ms内再次触发函数,那么当前的计时取消,重新开始计时
 
//基础版
function debounce(fn, delay) {
    var timer = null;
    return function () {
        if (timer) clearTimeout(timer);
        timer = setTimeout(function () {
            fn();
        },delay)
    }
}
 
//优化版
function debounce(fn, delay) {
  var timer = null;
  return function() {
    if (timer) clearTimeout(timer);
    // 获取this和argument
    var _this = this;
    var _arguments = arguments;
    timer = setTimeout(function() {
      // 在执行时,通过apply来使用_this和_arguments
      fn.apply(_this, _arguments);
    }, delay);
  }
}

下面这个也不算防抖,

但是巧妙运用了loading,就是只有等loading完之后,才能执行该执行的步骤。

还有一种方式就是,在loading的时候,将按钮设置为disable,不能点击

 

 

3、 js实现节流

一般用于高频触发的事件、比如触发底部等

(但触发底部uniapp的生命周期函数已经写好了,不需要我们自己写节流了)

//节流:
//如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效
 
//基础版
    function throttle(fn, interval) {
        var last = 0;
        return function () {
            // this和arugments
            var _this = this;
            var _arguments = arguments;
            var now = new Date().getTime();
            if (now - last > interval) {
                fn.apply(_this, _arguments);
                last = now;
            }
        }
    }
//优化版
    function throttle(fn, interval) {
        var last = 0;
        var timer = null; // 记录定时器是否已经开启
        return function () {
            // this和arguments;
            var _this = this;
            var _arguments = _arguments;
            var now = new Date().getTime();
            if (now - last > interval) {
                if (timer) { //若已经开启,则不需要开启另外一个定时器了
                    clearTimeout(timer);
                    timer = null;
                }
                fn.apply(_this, _arguments);
                last = now;
            } else if (timer === null) { // 没有立即执行的情况下,就会开启定时器
                //只是最后一次开启
                timer = setTimeout(function () {
                    timer = null; // 如果定时器最后执行了,那么timer需要赋值为null
                    fn.apply(_this, _arguments);
                },interval)
            }
        }
    }

4、 页面在弹窗时禁止底部页面滚动(h5端)

@touchmove.stop.prevent

在遮罩层中添加 @touchmove.stop.prevent   

缺点:弹窗里面内容有滚动条的也会无法滚动。

	<view @touchmove.stop.prevent>     </view>

5、scrollIntoView

进入页面某个元素需要出现在可视区

值应为某子元素id(id不能以数字开头)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】STL---list的模拟实现

目录前言一、list和vector的区别二、节点的定义三、list类定义四、push_back函数五、push_front函数六、迭代器七、begin和end函数八、迭代器区间初始化九、迭代器的操作符重载操作符重载操作符- -重载操作符&#xff01;重载操作符重载操作符*重载十、insert函数十一、erase函…

如何应用卫星图像插入到Auto CAD

如何应用卫星图像插入到Auto CAD发布时间&#xff1a;2018-01-17 版权&#xff1a;工具准备BIGEMAP GIS Office&#xff1a;http://www.bigemap.com/reader/download/案例&#xff1a;等高线完美套合卫星影像教程本实例使用AutoCAD2008软件进行影像与矢量数据叠加配准。影像获取…

变压器和特斯拉线圈

目录 变压器用途 变压器的原理 变压器特点 特斯拉线圈用途 特斯拉线圈原理 特斯拉线圈特点 参考&#xff1a; 变压器用途 电压变换、电流变换、阻抗变换、隔离、稳压等 1&#xff09;开关电源&#xff0c;充电器&#xff0c;220v转换为指定电压&#xff0c;以给各类电子…

Revit建模幕墙问题:幕墙添加门/窗和生成幕墙

一、Revit中如何在幕墙当中添加门、窗构件 今天跟大家分享一下幕墙当中添加门窗的方法&#xff0c;这种方法大家可以联想到很多应用上&#xff0c;因为这个既是个方法也是个技巧&#xff0c;好了&#xff0c;我们直接进入主题吧。 首先&#xff0c;我们新建幕墙&#xff0c;给它…

范数的意义与计算方法

1. 范数的意义 范数可以简单的理解为“距离”。由于向量是既有大小又有方向的量&#xff0c;所以向量是不能直接比较大小的&#xff0c;但是范数提供了一种方法&#xff0c;可以将所有的向量转化为一个实数&#xff0c;然后就可以比较向量的大小了。&#xff08;注&#xff1a…

【计算机视觉】Pooling层的作用以及如何进行反向传播

问题 CNN网络在反向传播中需要逐层向前求梯度,然而pooling层没有可学习的参数,那它是如何进行反向传播的呢? 此外,CNN中为什么要加pooling层,它的作用是什么? Pooling层 CNN一般采用average pooling或max pooling来进行池化操作,而池化操作会改变feature map的大小,…

swagger的使用与步骤

1、导入maven工程首先我们创建一个 Spring Boot 项目&#xff0c;并引入 Swagger3 的核心依赖包&#xff0c;如下&#xff1a;<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.…

2022年度游戏本行业数据报告:十大热门品牌销量排行榜

2022年游戏本市场的总体局面是&#xff1a;产品竞争极为激烈&#xff0c;同时又各具特色卖点。今年的游戏本市场&#xff0c;市场格局并未有较大的变化&#xff0c;但是新技术、新产品层出不穷&#xff0c;各个游戏本厂商们通过不断创新、提升产品性能&#xff0c;推出了体验感…

高等数学(第七版)同济大学 习题11-5 个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题11-5 函数作图软件&#xff1a;Mathematica 1.按对坐标的曲面积分的定义证明公式∬Σ[P1(x,y,z)P2(x,y,z)]dydz∬ΣP1(x,y,z)dydz∬ΣP2(x,y,z)dydz.\begin{aligned}&1. \ 按对坐标的曲面积分的定义证明公式\\\\&…

【javascript】有计算功能的简易计算器

外观不满意&#xff0c;可以自行修改。 主要用到的有&#xff1a;grid布局 js原生 阿里字体图标 eval函数 eval() 函数计算 JavaScript 字符串&#xff0c;并把它作为脚本代码来执行。 如果参数是一个表达式&#xff0c;eval() 函数将执行表达式。如果参数是Javascript语句&a…

Vmware 16 安装 Anolis 8.6

Vmware 安装 Anolis一.Anoliso镜像下载二.Vmware虚拟机安装Anolisos1.新建自定义2.稍后安装操作系统3.选择系统4.设置虚拟机名称和安装位置5.按需修改磁盘大小6.最后点击完成即可7.编辑虚拟机设置8.选择镜像8.开启虚拟机9.安装10.设置root密码并开始安装11.完成后重启12.登录三…

Mysql底层原理与性能调优

在工作中&#xff0c;公司就线上生产环节&#xff0c;有没有时常碰到过一些慢SQL查询&#xff0c;那我相信大多时候第一时间想到的优化策略&#xff0c;我相信肯定就是索引&#xff0c;可能第一时间就会想到&#xff0c;看一下SQL是不是有加合适的索引&#xff0c;它的条件里面…

1.3 认识程序开发

文章目录1.程序开发流程1.1 软件定义期&#xff08;研究分析阶段&#xff09;1.2 软件开发期&#xff08;开发阶段&#xff09;1.3 软件上线期&#xff08;部署运行阶段&#xff09;2.认识浏览器2.1 浏览器如何实现访问网站的&#xff1f;2.2 HTTP协议2.3 URL地址的构成2.4 如何…

C++/Qt 小知识记录2

工作中遇到的一些小问题&#xff0c;总结的小知识记录&#xff1a;C/Qt 小知识RGBA/ARGB转16进制颜色int与RGB互转int转Hex值VS2015代码粗略统计QTableWidget设置列宽设置整行选中Item设置可选中但不可编辑C std路径相关操作文件写出绝对路径转为相对路径字符替换打印出GBK的平…

OAuth 2.0(四):手把手带你写代码接入 OAuth 2.0 授权服务

一、业务背景 近期团队帮银行做了一个互动营销活动&#xff0c;活动入口在行方的 App 上&#xff0c;当用户在行方 App 点击活动 banner 页跳转活动的时候参与。 在进活动之前作为业务方自然需要知道参与活动的人是谁&#xff0c;如何给它构建登录态。 这就是为什么橘长这边需…

Node.js--》详解express中的身份认证

目录 Web开发模式 身份认证 Session认证机制 在Express中使用Session认证 JWT认证机制 在Express中使用JWT Web开发模式 目前主流的Web开发模式有两种&#xff1a; 基于服务端渲染的传统Web开发模式 服务端渲染的概念&#xff1a;服务器发送给客户端的HTML页面&#x…

【JavaEE】进入Web开发的世界-CSS

目录 一、CSS的基本规则 二、HTML中如何引入CSS规则&#xff08;html资源如何和css资源产生联系&#xff09; 三、选择器&#xff08;selector&#xff09;规则 3.1各种选择器 3.2普通选择器使用 3.3选择器之间的优先级规则(即覆盖规则) 3.4进一步的选择器规则 3.5伪类…

测试必会 Docker 实战(一):掌握高频命令,夯实内功基础

在 Dokcer 横空出世之前&#xff0c;应用打包一直是大部分研发团队的痛点。在工作中&#xff0c;面对多种服务&#xff0c;多个服务器&#xff0c;以及多种环境&#xff0c;如果还继续用传统的方式打包部署&#xff0c;会浪费大量时间精力。在 Docker 出现后&#xff0c;它以更…

Java设计模式-外观模式Facade

介绍 外观模式&#xff08;Facade&#xff09;&#xff0c;也叫“过程模式&#xff1a;外观模式为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口&#xff0c;用以…

回溯法--n皇后问题

回溯法有两个模板--子集树、排列树&#xff0c;他们有回溯法的共同特点&#xff1a;深度优先搜索&#xff0c;如果一条路走不通&#xff0c;再退回来&#xff08;类似递归&#xff09;问题描述八皇后问题的历史八皇后问题最早是由国际象棋棋手马克斯贝瑟尔&#xff08;Max Bezz…