当前位置: 首页 > news >正文

石家庄做网络推广的网站搜外友链平台

石家庄做网络推广的网站,搜外友链平台,益阳一站式网站建设公司,系统开发板效果展示 键盘未弹起时 键盘弹起后: 实现方式 话就不多说了 我直接贴代码了 原理就是用你点击的输入框的底部 距离顶部的位置 减去屏幕高度除以2,然后设成负值,再将这个值给到最外层相对定位的盒子的top属性,这样就不会出现顶…

效果展示

键盘未弹起时
在这里插入图片描述
键盘弹起后:
在这里插入图片描述

实现方式

话就不多说了 我直接贴代码了
原理就是用你点击的输入框的底部 距离顶部的位置 减去屏幕高度除以2,然后设成负值,再将这个值给到最外层相对定位的盒子的top属性,这样就不会出现顶部导航上移的问题了具体实现如下:

首先封装一个js工具包,这个包其实有很多东西的,但是对键盘没什么用,我就去掉了,是一个设备工具类,没事的话可以去研究,设备工具类在开发的过程中还是用处比较大的。

工具类实现


/*** 设备工具类*/
class DeviceUtil {/*** 获取当前环境  开发工具  安卓  IOS* 'ios': iOS微信(包含 iPhone、iPad);'android': Android微信;'windows': Windows微信;'mac': macOS微信;'devtools': 微信开发者工具;*/getCurrentEnv() {var platform = '';wx.getSystemInfo({success(res) {platform = res.platform}})console.log(platform);return platform;}/*** 获取设备的屏幕高度*/getDeviceHeight() {var screenHeight = '';wx.getSystemInfo({success: (res) => {screenHeight = res.windowHeight}});return screenHeight;}/*** 监听点击输入框页面弹起事件* 使用说明:* 该方法对IOS上的 <vant-field type="textarea" /> 会有显示不全的问题 不建议在textarea上使用* * @param {当前页面指向} that * @param {点击事件参数} e */keyboard(that, e) {// 获取屏幕高度var height = this.getDeviceHeight();// 仅在手机上使用此函数if (this.getCurrentEnv() == 'android' || this.getCurrentEnv() == 'ios') {that.setData({keyboard: 0})// 创建一个选择器查询对象const query = wx.createSelectorQuery();// 选择要获取的元素query.select('#' + e.currentTarget.dataset.id).boundingClientRect(function (rect) {// 获取元素的位置和尺寸等信息var top = (-(rect.bottom - (height / 2))) < 0 ? (-(rect.bottom - (height / 2))) : 0that.setData({keyboard: top})}).exec();}}/*** 关闭键盘* @param {*} that */closeKeyboard(that) {if (this.getCurrentEnv() == 'android' || this.getCurrentEnv() == 'ios') {that.setData({keyboard: 0})}}}const deviceUtil = new DeviceUtil();
export default deviceUtil;

WXML中为元素添加属性

紧接着在wxml文件中需要给vant-field标签添加一些属性,input标签也相同

<view class="form_warp" style="top: {{keyboard}}px;">
<van-fieldid="name1"data-id="name1"bind:focus="onFocus"bind:blur="onBlur"always-embedvalue="{{ value }}"label="用户名1"placeholder="请输入用户名1"adjust-position="{{false}}"border="{{ false }}"/></view>

注意 :id 和data-id名称必须一致并且在当前页面唯一,不然会出现问题 always-embed是因为vant在IOS上会出现一个定位后不同层的问题,推荐加上;adjust-position="{{false}}"这个属性是必须加上的,他是键盘弹起时页面上移,顶部栏被顶上去的罪魁祸首。
不要忘记在最外层的盒子上添加这个属性style="top: {{keyboard}}px;"

WXSS

.form_warp {padding: 30rpx;position: relative;
}

JS中实现

紧接着在js中使用工具包

import deviceUtil from '../../util/device-utils';
Page({/*** 页面的初始数据*/data: {// 键盘弹起上移距离keyboard: 0,},onFocus(e) {//  键盘处理deviceUtil.keyboard(this, e)},onBlur() {deviceUtil.closeKeyboard(this)},
})

就这么简单, 其实也可以直接去用键盘高度来计算,这种方式其实是保证在键盘弹起的时候foucs事件的输入框会被展示在手机屏幕中间靠上的位置,而一般的键盘高度不会高于手机屏幕的一半,如果追求细节的话可以去改改那个计算公式就可以。

http://www.ds6.com.cn/news/11373.html

相关文章:

  • php的网站武汉seo网站优化
  • 珠海品牌网站制作网站建设流程图
  • 个人如何办网站域名购买哪个网站好
  • 石家庄网站建设找汉狮高端网站定制
  • 培训网站建设公司排名自己怎么优化关键词
  • 平面设计展示网站网站推广公司哪家好
  • 做微博类的网站难吗郴州网站seo外包
  • 可做易企秀的网站企业网站建设的目的
  • 学建筑的网站制作公司网站大概多少钱
  • 网站认证怎么做公司网站推广费用
  • 网站建设怎么做?淄博搜索引擎优化
  • 佛山做网站那家好网站制作公司网站
  • 网站空间与服务器的区别steam交易链接怎么看
  • 经典的企业网站最新seo教程
  • 免费做网站热线电话市场调研报告1500字
  • 萧山大江东规划国土建设局网站谷歌官方seo入门指南
  • 怎样做网站静态网站开发详细流程
  • 做外贸的要有自己的网站吗网站生成器
  • 如何弄自己的公司网站广告优化师适合女生吗
  • 上海 专业网站建设关键词代发包收录
  • 绵阳市 政府网站建设百度网站优化培训
  • 如何做网站百度排名优化百度商业平台
  • 营销网站建设教学发新闻稿平台
  • 网站开发公司排行做网店自己怎么去推广
  • 如何做设计网站页面设计微博热搜榜排名今日
  • 做公司网站需要什么资料网站开发
  • 中堂镇做网站腾讯控股第三季度营收1401亿
  • wordpress群站域名什么是淘宝seo
  • wordpress用户自定义头像seo推广软件下载
  • 网页怎么制作成二维码沈阳企业网站seo公司