uniapp刻度尺的实现(swiper)滑动打分器

实现图(百分制):滑动swiper进行打分,分数加减

html 复制代码
<view class="scoring">
	<view class="toggle">
		<view class="score">
			<text>{{'0'}}</text>
			<view class="scoreId" >
				<block v-if="transFlag&&scoreFlag">{{testScore}}</block>
				<block v-else>{{currentScore}}</block>
			</view>
			<text>{{'100'}}</text>
		</view>
		<view>
			<view class="line-con">
				<text class="line"></text>
			</view>
			<swiper class="swipers" display-multiple-items="17" duration="400"  easing-function="easeInOutCubic" @transition="transScore" @change="changeScore"  :current="currentSwiper" >
				<swiper-item class="swiperItems" v-for="(item,index) in 117" key="index">
				  <view class="lines"></view>
				</swiper-item>
			</swiper>
		</view>
	</view>
</view>
typescript 复制代码
/* 分数波动过程中显示实时分数*/ /*滑动过快会有问题*/
transScore(e){
	this.transFlag = true
	if(this.transFlag&&this.scoreFlag){
		this.testScore = this.currentScore +  Math.floor(e.detail.dx/21) <= 0? 0 :this.currentScore +  Math.floor(e.detail.dx/20)
	}else{
		this.testScore = this.currentScore
	}
},
/*打分动作回调-停下*/
changeScore(e){
	this.currentScore = this.currentSwiper===null||this.currentSwiper===''?this.currentSwiper:e.detail.current;
	this.testScore = this.currentScore
	this.currentSwiper = e.detail.current;
	this.transFlag = false;
	this.scoreFlag = false;
	setTimeout(()=>{
		this.scoreFlag = true
	},600)
},
css 复制代码
.toggle{
	background-image: url(/static/image/toggle.png);
	background-size: cover;
	padding: 4px 4px 16px 4px;
	border-radius: 8px;
	box-shadow: 2px 6px 8px 0 #00622D17;
	margin-top: 16px;
	border-right: 1px solid #fbfcfdc2;
}
.score{
	display: flex;
	justify-content: space-between;
	color: #BDBDBD;
	font-size: 24rpx;
	align-items: flex-end;
	font-weight: bold;
	position: relative;
	height: 70rpx;
	margin-top: 22rpx;
	padding: 0 10px;
	.scoreId{
		color: #20A13E;
		font-size:64rpx ;
		position: absolute;
		text-align: center;
		width: 100%;
		bottom: 0px;
		left: 0;
	}
}
.swipers{
  height: 100%;
  width: 100%;
  margin: 0 auto;
  overflow: visible;
  height: 100rpx;
}
.swiperItems{
  font-size:24rpx;
  position:relative;
  margin-top: 32rpx;
  height: 56rpx !important;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
}
.swiperItems > .lines{
  background-color:#BDBDBD;
  width:1px;
  height:58rpx !important;
}
.line-con{
	width: 100%;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	.line{
	  position: absolute;
	  width: 6rpx;
	  height: 40px;
	  top: 20rpx;
	  background: #20a13e;
	  z-index: 6;
	}
}
相关推荐
心中无石马5 小时前
uniapp引入tailwindcss4.x
前端·css·uni-app
fix一个write十个6 小时前
【uniApp开发】微信小程序 web-view 内嵌 H5 跳转支付踩坑实录
微信小程序·uni-app
wuxianda10308 小时前
苹果App上架4.3a被拒解决方案汇报总结
ios·uni-app·objective-c·cocoa·苹果上架·4.3a
西洼工作室14 小时前
uniapp+vue3+python对接阿里云短信认证服务alibabacloud_dypnsapi20170525
python·阿里云·uni-app
wuxianda103015 小时前
苹果App上架4.3a问题3天解决方案汇报总结
开发语言·javascript·uni-app·ecmascript·ios上架·苹果上架
_pengliang15 小时前
uni-app 实现sse流式音频技术方案
uni-app·音视频
MY_TEUCK2 天前
【AI 应用】前端接口联调工程化:把 Swagger 接入沉淀成可复用 Skill
前端·人工智能·uni-app·状态模式
上架ipa2 天前
uniapp打包ios配置、申请证书、测试和上架综合教程
uni-app
00后程序员张2 天前
完整指南 iOS App上架到App Store的步骤详解
macos·ios·小程序·uni-app·objective-c·cocoa·iphone
hhzz2 天前
记录微信小程序tabbar不显示问题:uni-app Vue 3 自定义 tabBar 不渲染
vue.js·微信小程序·uni-app