微信小程序-手持弹幕_文字内容横屏滚动_小程序弹幕源码
哈喽,大家好,我是SCLQ。
最近在抖音刷到手持弹幕的视频,觉得是一个非常有趣应用,在手持弹幕小程序这个软件当中,你可以设置很长一段话,很适合追星。挑战一下自己,做一个小程序的手持弹幕应用。
微信小程序搜索“超超实用工具”,打开菜单,点击手持弹幕即可免费使用。
先扫码体验吧

效果:

可以自定义字体属性

话不多说,上操作:
WXML:
<view class="textBox" style="background-color:{{backgroundColor}}">
<view class='text' style="font-size: {{fontSize}}rpx; animation: animateText {{animateTime}}s infinite linear; color:{{fontColor}}"> {{text}} </view>
</view>
<view class="inputBox">
<input class="inp" placeholder="请输入弹幕~" bindinput="inputBlur" cursor-spacing='10'></input>
<view bindtap="sendBtn" class="iconfont icon-1huojian iconBtn1"> 发送</view>
<view bindtap="showModal" class="iconfont icon-qita3 iconBtn1">属性</view>
</view>
<!--屏幕背景变暗的背景 -->
<view class="commodity_screen" bindtap="hideModal" wx:if="{{showModalStatus}}"></view>
<!-- 屏幕内容 -->
<view animation="{{animationData}}" class="commodity_attr_box" wx:if="{{showModalStatus}}">
<view class="swiper-tab swiperAttr">
<view class="iconfont icon-jurassic_font-sizeadd swiper-tab-item {{currentTab==0?'active':''}}" data-current="0" bindtap="clickTab">字号</view>
<view class="iconfont icon-yanse1 swiper-tab-item {{currentTab==1?'active':''}}" data-current="1" bindtap="clickTab">颜色</view>
<view class="iconfont icon-Group- swiper-tab-item {{currentTab==2?'active':''}}" data-current="2" bindtap="clickTab">速度</view>
<view class="iconfont icon-beijingse swiper-tab-item {{currentTab==3?'active':''}}" data-current="3" bindtap="clickTab">背景</view>
</view>
<swiper current="{{currentTab}}" duration="300" bindchange="swiperTab">
<!-- 字体大小 -->
<swiper-item>
<view class="swiperItem1">
<slider show-value value='{{sliderValOfFontSize}}' bindchanging='changeFontSize' selected-color='#006AFE'></slider>
</view>
</swiper-item>
<!-- 选择颜色 -->
<swiper-item>
<view class="swiperItem2">
<view class="colorBox" bindtap="setColor">
<view class="colorItems" wx:for='{{colorArr}}' data-index="{{index}}" style="background-color:{{item.color}}" wx:key=''></view>
</view>
</view>
</swiper-item>
<!-- 字体速度 -->
<swiper-item>
<view class="swiperItem1">
<slider show-value bindchanging='changeTextSpeend' selected-color='#006AFE' value='{{sliderValOfAnimateTime}}'></slider>
</view>
</swiper-item>
<!-- 背景颜色 -->
<swiper-item>
<view class="swiperItem2">
<view class="colorBox" bindtap="setBackGroundColor">
<view class="colorItems" wx:for='{{colorArr}}' data-index="{{index}}" style="background-color:{{item.color}}" wx:key=''></view>
</view>
</view>
</swiper-item>
</swiper>
</view>
WXSS:
page{
margin: 0;
padding: 0;
}
.textBox{
height: 100vh;
display: flex;
justify-content: center;
background-color: black;
position: relative;
}
.text{
transform:rotate(90deg);
height: 1rpx;
display: flex;
align-items: center;
white-space: nowrap;
/* background-color: salmon; */
position: fixed;
top: 280%;
color: white;
/* margin-top: -1%; */
}
@keyframes animateText{
0%{
margin-top: 0%;
}
100%{
margin-top: -700%;
}
}
.inputBox{
position: fixed;
bottom: 1%;
display: flex;
/* background-color: saddlebrown; */
}
.inp{
border: 1px #333333 solid;
border-radius: 50rpx;
margin-left: 30rpx;
padding-left: 20rpx;
color: white;
font-size: 30rpx;
width: 390rpx;
height: 63rpx;
}
.iconBtn1{
/* border: 1px white solid; */
width: 130rpx;
height: 70rpx;
border-radius: 60rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 30rpx;
font-weight: bold;
background-color: #333333;
color: white;
margin-left: 10rpx;
}
.swiperItem1{
padding-top: 15%;
padding-left: 5%;
}
.swiperItem2{
padding-top: 15%;
}
/* 色块 */
.colorBox{
display: flex;
justify-content: space-evenly;
}
.colorItems{
width: 50rpx;
height: 50rpx;
}
/* 弹起框的样式 */
/*使屏幕变暗 */
.commodity_screen {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: #000;
opacity: 0.8;
overflow: hidden;
z-index: 1000;
color: #fff;
}
/*对话框 */
.commodity_attr_box {
height: 430rpx;
width: 100%;
overflow: hidden;
position: fixed;
bottom: 0;
left: 0;
z-index: 2000;
background: #282828;
border-radius: 10rpx 10rpx 0 0;
}
/* swiper start */
.swiper-tab{
width: 100%;
border-bottom: 2rpx solid #373737;
text-align: center;
height: 88rpx;
line-height: 88rpx;
font-weight: bold;
background-color: #282828;
}
.swiper-tab-item{
display: inline-block;
width: 25%;
color:#939393;
background-color: #282828;
}
.active{
background-color: #006AFE;
color:white;
border-bottom: 4rpx solid#373737;
}
swiper{
color: white;
background-color: #282828;
}
关注我,分享更多实用小工具!
微信小程序-手持弹幕_文字内容横屏滚动_小程序弹幕源码的更多相关文章
- 鸿蒙内核源码分析(用栈方式篇) | 程序运行场地谁提供的 | 百篇博客分析OpenHarmony源码 | v20.04
百篇博客系列篇.本篇为: v20.xx 鸿蒙内核源码分析(用栈方式篇) | 程序运行场地谁提供的 | 51.c.h .o 精读内核源码就绕不过汇编语言,鸿蒙内核有6个汇编文件,读不懂它们就真的很难理解 ...
- 微信小程序中如何实现分页下拉加载?(附源码)
转眼间坚持写教你微信小程序系列已经有十节系列课程了,每天的工作压力繁重,小女子也不知道自己还能坚持这样的系列教程多久.只希望每篇教程真的对大家有帮助.这节课我们要介绍的就是如何实现分页的下拉加载,我们 ...
- 微信小程序之蓝牙开发(详细读数据、写数据、附源码)
本文将详细介绍微信小程序的蓝牙开发流程(附源码)准备:微信只支持低功耗蓝牙也就是蓝牙4.0,普通的蓝牙模块是用不了的,一定要注意. 蓝牙可以连TTL接到电脑上,再用XCOM调试 一开始定义的变量 va ...
- 【浅墨著作】《OpenCV3编程入门》内容简单介绍&勘误&配套源码下载
经过近一年的沉淀和总结,<OpenCV3编程入门>一书最终和大家见面了. 近期有为数不少的小伙伴们发邮件给浅墨建议最好在博客里面贴出这本书的文件夹,方便大家更好的了解这本书的内容.事实上近 ...
- iOS电商常见动画与布局、微信悬浮窗、音乐播放器、歌词解析、拖动视图等源码
iOS精选源码 MXScroll 介绍 混合使用UIScrollView ios 电商demo(实现各种常见动画效果和页面布局) 一行代码集成微信悬浮窗 可拖动,大小的视图,可放置在屏幕边缘. 在使用 ...
- Util应用程序框架公共操作类(二):数据类型转换公共操作类(源码篇)
上一篇介绍了数据类型转换的一些情况,可以看出,如果不进行封装,有可能导致比较混乱的代码.本文通过TDD方式把数据类型转换公共操作类开发出来,并提供源码下载. 我们在 应用程序框架实战十一:创建VS解决 ...
- Web程序员开发App系列 - 开发我的第一个App,源码下载
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- 使用Xamarin开发手机聊天程序 -- 基础篇(大量图文讲解 step by step,附源码下载)
如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的利器啊!而且,Xamarin已经被微 ...
- 资深程序员教你如何实现API自动化测试平台!附项目源码!
原文链接: 1.平时测试接口,总是现写代码,对测试用例的管理,以及测试报告的管理持久化做的不够, 2.工作中移动端开发和后端开发总是不能并行进行,需要一个mock的依赖来让他们并行开发. 3.同时让自 ...
- asp微信支付代码v4.1无需证书版,带回调入库的asp支付源码
昨天帮一个客户写的,他的程序是老的asp,想实现微信在手机上下单付款,让帮忙给写一份asp微信支付的接口代码,昨天晚上闲着没事,搞了一个晚上才搞好,其实asp支付并不需要安装证书,其实asp支付也很好 ...
随机推荐
- 如何高效学习 Kubernetes 知识图谱?
简介: Kubernetes 知识图谱遵循云原生人才学习路径搭建课程体系框架,及人才发展路线设置不同阶段,由浅入深,帮助云原生人才学习容器基础.Kuternetes 网络.存储.资源对象.服务发现. ...
- 习题8 #第8章 Verilog有限状态机设计-2 #Verilog #Quartus #modelsim
2. 设计一个"1001"串行数据检测器,其输入.输出如下: 输入x:000 101 010 010 011 101 001 110 101 输出z:000 000 000 010 ...
- Django配置loguru来记录日志
第一步: 在settings.py文件中导入loguru模块并配置日志文件路径和格式等信息 from loguru import logger BASE_DIR = Path(__file__).re ...
- 【HarmonyOS】安装DevEco Studio后检查环境出现ohpm not set up
按照官网的操作方式,下载完ohpm总是检测不到 打开cmd,发现我之前因为其他项目改过编码 输入 regedit 打开注册表编辑页 按路径[计算机\HKEY_LOCAL_MACHINE\SOFTWAR ...
- 后宫酒店HaremHotel游戏Python游戏作弊方法游戏金币增加方法
额,这个游戏嘛,内容就不说了, 顺便送给大家下载地址:https://store.zhaimaojun.cn/GameDetail/280 这个游戏刚开始起步其实比较困难,因为没钱啊,动不动就要花钱, ...
- ruby on rails中sidekiq的使用
参考文章: https://www.jianshu.com/p/7ea473097023 安装redis 配置redis 配置sidekiq所依赖的redis位置,必须同时定义sidekiq的serv ...
- PCI-E与SATA SSD
为什么要采用PCI-E通道 目前在固态硬盘SSD中,有一部分采用了SATA3.0接口,而一些高端的固态硬盘则采用了PCI-E接口.那么为什么高端固态硬盘要采用PCI-E接口呢?为了弄清楚这个问题,先看 ...
- Ubuntu实现与主机Windows复制粘贴(安装VMware Tools)
若不能实现主机与客户机间粘贴复制执行以下命令 sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools sudo ...
- google账户配置foxmail和使用foxmail
最近想把邮件分门别类,创建一些个人文件夹,更好的筛选邮件,可以尝试使用foxmail 1. 如果你有google账户,在配置foxmail之前需打开google账户的安全设置 https://myac ...
- leaflet 用自定义pane实现图层顺序调整
在 Leaflet 中,map panes 隐式地将图层组合在一起,而开发者并不知道这一点.这种分组允许 Web 浏览器以比单独处理图层更有效的方式同时处理多个图层. Map panes 使用 z-i ...