


Miniprogramm implementiert ähnliche Funktionen wie AssistiveTouch von Apple (Code beigefügt)
Der Inhalt dieses Artikels befasst sich mit der Implementierung eines kleinen Programms, das der AssistiveTouch-Funktion ähnelt (mit Code). Freunde in Not können darauf verweisen.
1. Lassen Sie mich zunächst vorstellen, welche Art von Projektfunktion wir erstellen möchten.
Die Projektfunktion ist ein Audio-Klick zum Abspielen Wenn ich mit dem Finger schiebe, kann die aktuelle Seite nicht nach oben und unten gescrollt werden. Wenn ich aufhöre, rutsche ich auf der linken oder rechten Seite der Seite, und die aktuelle Seite kann nach oben und unten gescrollt werden. Die Funktionseinführung endet hier.
2. Wenn wir diese Funktion erstellen, besteht der zweite Schritt darin, sich eine Idee auszudenken
Die Idee besteht darin, das Schiebeereignis in WeChat zu verwenden und den CSS-Stil zu steuern, um dies zu vervollständigen Funktion.
3. Dies ist das UI-Diagramm des Projekts. Lassen Sie uns ohne weitere Umschweife in den Code springen.
Projektbeispiel
4. Index.wxml, index.wxss, index.js Seitencode
*index.wxml Seite*
<!-- 搜索 --> <view> <view> <image></image> <view>开心奶奶</view> </view> </view> <!-- 音频分类 --> <view> <!-- 轮播图 --> <view> <swiper> <!-- <block wx:for="{{}}" wx:key=""> --> <swiper-item> <view> <audio></audio> <view> <button> <image></image> </button> <button> <image></image> </button> </view> <view> <image></image> </view> <view> <button> <image></image> </button> <button> <image></image> </button> </view> <view>开心奶奶——小小探险家</view> </view> </swiper-item> <swiper-item> <view> <audio></audio> <view> <button> <image></image> </button> <button> <image></image> </button> </view> <view> <image></image> </view> <view> <button> <image></image> </button> <button> <image></image> </button> </view> <view>开心奶奶——小小探险家</view> </view> </swiper-item> <!-- </block> --> </swiper> </view> ---------- > 重点!!!! <!-- 音频动图 --> <view> <view> <image></image> <image></image> </view> </view> ---------- <!-- 分类 --> <view> <view> <image></image> <view>推荐故事</view> </view> <view> <image></image> <view>男孩</view> </view> <view> <image></image> <view>女孩</view> </view> </view> </view> <!-- 儿童故事 --> <view> <view> <view> <view> <image></image> <image></image> </view> <view>童话故事里的小智慧</view> <view>小智慧,大智慧</view> </view> </view> <view> <view> <view> <image></image> <!-- <image class='story_li_img2' src='../../img/pay_icon.png'></image> --> </view> <view>童话故事里的小智慧</view> <view>小智慧,大智慧</view> </view> </view> <view> <view> <view> <image></image> <image></image> </view> <view>童话故事里的小智慧</view> <view>小智慧,大智慧</view> </view> </view> </view>
*index wxss Stil*
/**index.wxss**/ .home_back1{ width: 100%; } .home_back2{ position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10; } /* 搜索 */ .home_srh { width: 100%; height: 74rpx; padding-top: 20rpx; background: #fff; border-bottom: 1rpx solid #e8e8e8; } .home_srh .srh_box { width: 690rpx; height: 54rpx; margin: 0 auto; box-shadow: 0 0 10rpx 2rpx #f1f1f1; border-radius: 50rpx; display: flex; align-items: center; } .home_srh .srh_box .srh_box_img { width: 24rpx; height: 26rpx; display: inline-block; margin-left: 32rpx; margin-right: 20rpx; } .home_srh .srh_box .srh_box_text { font-size: 24rpx; color: #999; } /* 音频分类 */ /* banner图 */ .home_ban{ width: 100%; height: 422rpx; background: #fff; padding-top: 18rpx; } .home_ban .page-section{ width: 100%; height: 258rpx; position:relative; z-index: 2; } .home_ban .page-section .swiper-item{ width: 630rpx; height: 258rpx; margin: 0 auto; position: relative; display: block; } .home_ban .page-section .swiper-item audio{ width: 630rpx; height: 258rpx; display: block; background: #ccc; } .home_ban .page-section .swiper-item .audio_box { width: 90rpx; height: 90rpx; position: absolute; left: 50%; top: 50%; margin-left: -45rpx; margin-top: -45rpx; } .home_ban .page-section .swiper-item .audio_box .audio_play { width: 90rpx; height: 90rpx; display: block; background: rgba(0,0,0,0); } .home_ban .page-section .swiper-item .audio_box .audio_play image{ width: 90rpx; height: 90rpx; display: block; } .home_ban .page-section .swiper-item .audio_next { width: 60rpx; height: 60rpx; position: absolute; top: 50%; margin-top: -30rpx; right: 169rpx; } .home_ban .page-section .swiper-item .audio_next image { width: 60rpx; height: 60rpx; display: block; } .home_ban .page-section .swiper-item .audio_collect { width: 60rpx; height: 60rpx; position: absolute; top: 50%; margin-top: -30rpx; right: 169rpx; } .home_ban .page-section .swiper-item .audio_collect image { width: 60rpx; height: 60rpx; display: block; } .home_ban .page-section .swiper-item .audio_collect { width: 60rpx; height: 60rpx; position: absolute; top: 50%; margin-top: -30rpx; left: 169rpx; } .home_ban .page-section .swiper-item .audio_collect .audio_coly { width: 60rpx; height: 60rpx; display: block; background: rgba(0,0,0,0); } .home_ban .page-section .swiper-item .audio_collect .audio_coly image { width: 60rpx; height: 60rpx; display: block; } .home_ban .page-section .swiper-item .audio_text{ width: 100%; font-size: 28rpx; color: #fff; text-align: center; position: absolute; bottom: 26rpx; } /* 音频小白点 */ .audio_fre { width: 108rpx; height: 108rpx; position: fixed; z-index: 99; } .audio_fre .audio_fre1 { width: 104rpx; height: 104rpx; display: block; border-radius: 100%; border: 2rpx solid #fff; } .audio_fre .audio_fre2 { width: 60rpx; height: 60rpx; position: absolute; top: 50%; margin-top: -30rpx; left: 50%; margin-left: -30rpx; } /* 菜单分类 */ .menu_ul { width: 100%; height: 164rpx; } .menu_ul .menu_li { width: 33.3%; height: 164rpx; float: left; text-align: center; } .menu_ul .menu_li:nth-child(1) image{ width: 78rpx; height: 80rpx; display: block; margin: 0 auto; margin-top: 23rpx; } .menu_ul .menu_li:nth-child(2) image{ width: 74rpx; height: 97rpx; display: block; margin: 0 auto; margin-top: 8rpx; } .menu_ul .menu_li:nth-child(3) image{ width: 73rpx; height: 96rpx; display: block; margin: 0 auto; margin-top: 8rpx; } .menu_ul .menu_li .menu_text{ width: 100%; text-align: center; font-size: 24rpx; color: #343434; margin-top: 10rpx; } /* 儿童故事 */ .child_story { width: 100%; margin-top: 8rpx; background: #fff; } .child_story .story_ul { padding: 0 32rpx; padding-top: 30rpx; overflow: hidden; } .child_story .story_ul .story_li { width: 330rpx; float: left; margin-right: 26rpx; margin-bottom: 30rpx; } .child_story .story_ul .story_li:nth-child(2n) { margin-right: 0; } .child_story .story_ul .story_li .story_li_img { width: 330rpx; height: 210rpx; border-radius: 14rpx; position: relative; overflow: hidden; } .child_story .story_ul .story_li .story_li_img .story_li_img1{ width: 330rpx; height: 210rpx; display: block; } .child_story .story_ul .story_li .story_li_img .story_li_img2{ width: 95rpx; height: 32rpx; display: block; position: absolute; top: 0; left: 0; } .child_story .story_ul .story_li .st_li_tit { width: 90%; font-size: 26rpx; color: #212121; margin-top: 18rpx; padding: 0 5%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; letter-spacing: 0.4rpx; } .child_story .story_ul .story_li .st_li_sec { width: 90%; font-size: 18rpx; color: #999; margin-top: 6rpx; padding: 0 5%; letter-spacing: 0.2rpx; }
*index.js-Seite*
//index.js var app = getApp(); Page({ /** * 页面的初始数据 */ data: { adply1: true, adply2: false, adcol1: true, adcol2: false, adFre: false, funBun: false, curr_index: 0, screenHeight: 0, screenWidth: 0, top: 65, left: 300, right: 0, home_back: 'home_back1' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { //获取屏幕宽高 var that = this; wx.getSystemInfo({ success: function (res) { console.log(res.windowWidth)//手机可用屏幕宽度 console.log(res.windowHeight)//手机可用屏幕高度 that.setData({ screenHeight: res.windowHeight, screenWidth: res.windowWidth, }); } }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function (e) { let that = this; that.audioCtx = wx.createAudioContext('myAudio') }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, /** * 跳转搜索页面 */ srhBox: function () { let that = this; wx.navigateTo({ url: '../search/index', }) }, /** * 点击播放 */ audioPlay: function () { var that = this; that.audioCtx.play(); that.setData({ adply1: false, adply2: true, adFre: true, // isScroll: that.data.isScroll }) }, /** * 点击暂停 */ audioPause: function () { var that = this; that.audioCtx.pause(); that.setData({ adply1: true, adply2: false, adFre: false, // isScroll: that.data.isScroll }) }, /** * 点击收藏 */ audioColy: function () { var that = this; that.setData({ adcol1: false, adcol2: true, }) }, /** * 点击未收藏 */ audioColn: function () { var that = this; that.setData({ adcol1: true, adcol2: false, }) }, /** * 跳转故事详情 */ storySec: function () { let that = this; wx.navigateTo({ url: '../audio/index', }) }, /** * 点击切换 */ menuLi: function (e) { let that = this; // console.log (e); let id = e.currentTarget.id; that.setData({ curr_index: id }) }, /** * 音频小白点滑动 */ //滑动移动事件 handletouchmove: function (e) { let that = this; let clientX = e.touches[0].clientX; let clientY = e.touches[0].clientY; //屏幕边界判断 if (clientX that.data.screenWidth - 20) return; if (clientY > that.data.screenHeight - 20) return; that.setData({ left: e.touches[0].clientX - 20, top: e.touches[0].clientY - 20, right: e.touches[0].clientX - 20, home_back: 'home_back2' }) }, //滑动结束事件 handletouchend: function (e) { let that = this; if ( that.data.left <p class="comments-box-content"></p>
Das obige ist der detaillierte Inhalt vonMiniprogramm implementiert ähnliche Funktionen wie AssistiveTouch von Apple (Code beigefügt). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.

ANTWORT: Sie können die Datumsauswahlkomponente von Bootstrap verwenden, um Daten auf der Seite anzuzeigen. Schritte: Stellen Sie das Bootstrap -Framework ein. Erstellen Sie ein Eingangsfeld für Datumsauswahl in HTML. Bootstrap fügt dem Selektor automatisch Stile hinzu. Verwenden Sie JavaScript, um das ausgewählte Datum zu erhalten.

Es gibt zwei Möglichkeiten, eine Bootstrap -Split -Zeile zu erstellen: Verwenden des Tags, das eine horizontale Split -Linie erstellt. Verwenden Sie die CSS -Border -Eigenschaft, um benutzerdefinierte Style Split -Linien zu erstellen.

Um das Bootstrap -Framework einzurichten, müssen Sie die folgenden Schritte befolgen: 1. Verweisen Sie die Bootstrap -Datei über CDN; 2. Laden Sie die Datei auf Ihrem eigenen Server herunter und hosten Sie sie. 3.. Fügen Sie die Bootstrap -Datei in HTML hinzu; 4. Kompilieren Sie Sass/weniger bei Bedarf; 5. Importieren Sie eine benutzerdefinierte Datei (optional). Sobald die Einrichtung abgeschlossen ist, können Sie die Grid -Systeme, -Komponenten und -stile von Bootstrap verwenden, um reaktionsschnelle Websites und Anwendungen zu erstellen.

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

Befolgen Sie die folgenden Schritte, um Daten in Bootstrap zu überprüfen: Führen Sie die erforderlichen Skripte und Stile ein. Initialisieren Sie die Datumsauswahlkomponente; Legen Sie das Data-BV-Datatattribut fest, um die Überprüfung zu ermöglichen. Konfigurieren von Überprüfungsregeln (z. B. Datumsformate, Fehlermeldungen usw.); Integrieren Sie das Bootstrap -Verifizierungs -Framework und überprüfen Sie automatisch die Datumseingabe, wenn das Formular eingereicht wird.

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.
