国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp 完美解決蘋果和安卓 input 框遮擋兼容問(wèn)題

這篇具有很好參考價(jià)值的文章主要介紹了uniapp 完美解決蘋果和安卓 input 框遮擋兼容問(wèn)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

需求描述

小程序項(xiàng)目用到IM即時(shí)通訊功能,蘋果和安卓出現(xiàn)input輸入框被軟鍵盤遮擋的情況。

效果展示
uniapp 完美解決蘋果和安卓 input 框遮擋兼容問(wèn)題,uniapp,小程序,uni-app
解決問(wèn)題

HTML部分(結(jié)構(gòu)很重要)

<template>
	<view class="content">
		<!-- 聊天內(nèi)容展示區(qū) -->
		<scroll-view class="scroll-view" scroll-with-animation :scroll-y="true" :scroll-top="scrollTop" refresher-enabled
			:refresher-triggered="triggered" @refresherrefresh="handleFresh">
			<view id="page">
				<view v-for="(item,index) in messageList" :key="index" style="margin-bottom: 20rpx;">
					{{item}}
				</view>
				<view :class="showFunBtn?'show-fun-btn':'not-show-fun-btn'" />
			</view>
		</scroll-view>

		<!-- 底部聊天輸入框 -->
		<view class="input-box">
			<view class="input-box-flex">
				<view class="input-box-flex-grow">
					<input v-if="chatType === 'voice'" type="text" class="content" :adjust-position="true"
						:hold-keyboard="true" v-model="content" :confirm-type="'send'" :confirm-hold="true"
						:cursor-spacing="10" @blur="blurHandle" @focus="focusHandle" @confirm="sendMsg" />
				</view>
				<!-- 功能性按鈕 -->
				<u-icon class="icon_btn_add" size="50" name="plus-circle" @tap="switchFun"></u-icon>
			</view>
			<view class="fun-box" :class="{ 'show-fun-box': showFunBtn }"> </view>
		</view>
	</view>
</template>

CSS部分

<style lang="scss">
	.content {
		position: relative;
		height: 100vh;
		overflow: hidden;
	}

	.scroll-view {
		height: 100vh;
		box-sizing: border-box;


		.show-fun-btn {
			width: 100%;
			height: 340rpx;
		}

		.not-show-fun-btn {
			width: 100%;
			height: 180rpx;
		}
	}


	.input-box {
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		z-index: 999;
		background-color: #eaeaea;
		padding-bottom: 50rpx;

		&-flex {
			display: flex;
			align-items: center;
			padding: 20rpx;
			box-sizing: border-box;

			image {
				width: 56rpx;
				height: 56rpx;
			}

			.icon_img {
				margin-right: 20rpx;
			}

			.icon_btn_add {
				margin-left: 20rpx;
			}

			&-grow {
				flex-grow: 1;

				.content {
					background-color: #fff;
					height: 80rpx;
					padding: 0 20rpx;
					border-radius: 12rpx;
					font-size: 28rpx;
				}
			}
		}

		.fun-box {
			opacity: 0;
			transition: all 0.1s ease-in-out;
			height: 0;

			.grid-text {
				padding-top: 10rpx;
			}

		}

		.show-fun-box {
			opacity: 1;
			height: 160rpx;
		}
	}
</style>

JS 部分

<script>
	export default {

		data() {
			return {
				scrollTop: 0,
				chatType: 'voice',
				showFunBtn: false,
				triggered: false,
				content: '',
				messageList: ['啊啊啊啊',
					'啊啊啊啊', '去去去去去去', '問(wèn)問(wèn)吾問(wèn)無(wú)為謂', '呃呃呃呃呃呃呃呃呃', '熱熱熱熱熱熱熱熱', '吞吞吐吐吞吞吐吐拖拖沓沓推塔推塔推塔推塔推塔推塔', '有意義有意義一月又一月',
					'啊啊啊啊', '去去去去去去', '問(wèn)問(wèn)吾問(wèn)無(wú)為謂', '呃呃呃呃呃呃呃呃呃', '熱熱熱熱熱熱熱熱', '吞吞吐吐吞吞吐吐拖拖沓沓推塔推塔推塔推塔推塔推塔', '有意義有意義一月又一月',
					'啊啊啊啊', '去去去去去去', '問(wèn)問(wèn)吾問(wèn)無(wú)為謂', '呃呃呃呃呃呃呃呃呃', '熱熱熱熱熱熱熱熱', '吞吞吐吐吞吞吐吐拖拖沓沓推塔推塔推塔推塔推塔推塔', '有意義有意義一月又一月',
					'啊啊啊啊', '去去去去去去', '問(wèn)問(wèn)吾問(wèn)無(wú)為謂', '呃呃呃呃呃呃呃呃呃', '熱熱熱熱熱熱熱熱', '吞吞吐吐吞吞吐吐拖拖沓沓推塔推塔推塔推塔推塔推塔', '有意義有意義一月又一月',
					'啊啊啊啊', '去去去去去去', '問(wèn)問(wèn)吾問(wèn)無(wú)為謂', '呃呃呃呃呃呃呃呃呃', '熱熱熱熱熱熱熱熱', '吞吞吐吐吞吞吐吐拖拖沓沓推塔推塔推塔推塔推塔推塔', '有意義有意義一月又一月',
					'啊啊啊啊', '去去去去去去', '問(wèn)問(wèn)吾問(wèn)無(wú)為謂', '呃呃呃呃呃呃呃呃呃', '熱熱熱熱熱熱熱熱', '吞吞吐吐吞吞吐吐拖拖沓沓推塔推塔推塔推塔推塔推塔', '有意義有意義一月又一月',
					'啊啊啊啊', '去去去去去去', '問(wèn)問(wèn)吾問(wèn)無(wú)為謂', '呃呃呃呃呃呃呃呃呃', '熱熱熱熱熱熱熱熱', '吞吞吐吐吞吞吐吐拖拖沓沓推塔推塔推塔推塔推塔推塔', '有意義有意義一月又一月'
				]
			}
		},
		onLoad() {
			this.scroll()
		},
		methods: {
			switchFun() {
				this.showFunBtn = !this.showFunBtn;
				uni.hideKeyboard()
				this.scroll()
			},
			blurHandle() {

			},
			focusHandle() {

			},
			sendMsg() {
				this.messageList.push(this.content)
				this.content = ''
				this.scroll()
			},
			scroll() {
				this.$nextTick(() => {
					uni.createSelectorQuery().select('#page').boundingClientRect((rect) => {
						console.log(rect.height)
						this.scrollTop = rect.height
					}).exec()
				})
			},
			handleFresh() {
				console.log('下拉刷新中')
				this.triggered = true;
				setTimeout(() => {
					console.log('恢復(fù)')
					this.triggered = false
				}, 2000)
			}
		}
	}
</script>

具體怎么回事,嘗試將Demo運(yùn)行起來(lái)就差不多理解了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-527447.html


點(diǎn)贊 評(píng)論 收藏 ~~ 留言討論,如有錯(cuò)誤,也希望大家不吝指出。 ~~ 點(diǎn)贊 評(píng)論 收藏

到了這里,關(guān)于uniapp 完美解決蘋果和安卓 input 框遮擋兼容問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包