日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

小程序底部弹窗css_微信小程序之animation底部弹窗动画(两种方法)

發布時間:2024/7/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小程序底部弹窗css_微信小程序之animation底部弹窗动画(两种方法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單分享一下常用的底部彈窗層或下拉框彈出層(代碼需要修改)的內容彈窗的動畫效果,這里分享的是點擊按鈕后底部彈窗的動畫效果。第一種方式是動態設置顯示區域的高度,第二種方法是動態設置顯示區域的移動的位置(使用到?transform:translateY?);

(一)實現效果

簡單說明一下,兩種方法實現的效果是一樣的,只有點擊按鈕才能出發彈窗(指定位置),彈窗彈出后,只有點擊背景灰色區域彈窗才能收回,點擊彈窗內容區域(粉紅色部分是不能收回彈窗的),自己可以自定義粉紅色部分右上角關閉按鈕。

(二)實現分析

第一種動態設置高度的方法是:需要一個容器為背景色(灰色區域),一個容器為彈窗內容(粉紅色區域),兩者是獨立的,實現的原理是一樣的;粉紅色區域的話,就是設置好絕對位置(在屏幕的底部)和默認內容的區域樣式,動態設置內容區域的高度,比如彈出:一開始高度為0(隱藏了),通過animation設置的動畫時間,將高度從0到指定高度,內容慢慢就會顯示了,然后保留最后一幀的動畫樣式就行了;收縮也是一樣的道理。

第二種動態設置位置的方法是:需要一個容器為背景色(灰色區域),一個容器為彈窗內容(粉紅色區域),兩者是獨立的,實現的原理是一樣的;粉紅色區域的話,就是設置好絕對位置(在屏幕的底部)和默認內容的區域樣式,比如彈出:一開始粉紅色區域的位置平移在屏幕外(隱藏了),通過animation設置的動畫時間,將粉紅色區域從屏幕外平移到屏幕內(默認設置在屏幕底部的位置),內容慢慢就會顯示了,然后保留最后一幀的動畫樣式就行了;收縮也是一樣的道理。 代碼也有注釋哈。

(三)實現代碼

第一種動態設置高度方法實現:

1、wxml代碼:

點擊底部動畫彈窗 測試一下 復制代碼

2、wxss代碼:

.pupContentBG {

width: 100vw;

height: 100vh;

position: fixed;

top: 0;

}

.pupContent {

width: 100%;

background: pink;

position: absolute;

bottom: 0;

box-shadow: 0 0 10rpx #333;

height: 0;

z-index: 999;

}

/* 設置顯示的背景 */

.showBG {

display: block;

}

.hideBG {

display: none;

}

/* 彈出或關閉動畫來動態設置內容高度 */

@keyframes slideBGtUp {

from {

background: transparent;

}

to {

background: rgba(0, 0, 0, 0.1);

}

}

@keyframes slideBGDown {

from {

background: rgba(0, 0, 0, 0.1);

}

to {

background: transparent;

}

}

/* 顯示或關閉內容時動畫 */

.openBG {

animation: slideBGtUp 0.5s ease-in both;

/* animation-fill-mode: both 動畫將會執行 forwards 和 backwards 執行的動作。 */

}

.closeBG {

animation: slideBGDown 0.5s ease-in both;

/* animation-fill-mode: both 動畫將會執行 forwards 和 backwards 執行的動作。 */

}

/* 設置顯示內容 */

.showContent {

display: block;

}

.hideContent {

display: none;

}

/* 彈出或關閉動畫來動態設置內容高度 */

@keyframes slideContentUp {

from {

height: 0;

}

to {

height: 800rpx;

}

}

@keyframes slideContentDown {

from {

height: 800rpx;

}

to {

height: 0;

}

}

/* 顯示或關閉內容時動畫 */

.open {

animation: slideContentUp 0.5s ease-in both;

/* animation-fill-mode: both 動畫將會執行 forwards 和 backwards 執行的動作。 */

}

.close {

animation: slideContentDown 0.5s ease-in both;

/* animation-fill-mode: both 動畫將會執行 forwards 和 backwards 執行的動作。 */

}

復制代碼

3、js代碼:

data: {

click: false, //是否顯示彈窗內容

option: false, //顯示彈窗或關閉彈窗的操作動畫

},

// 用戶點擊顯示彈窗

clickPup: function(){

let _that = this;

if (!_that.data.click) {

_that.setData({

click: true,

})

}

if (_that.data.option) {

_that.setData({

option: false,

})

// 關閉顯示彈窗動畫的內容,不設置的話會出現:點擊任何地方都會出現彈窗,就不是指定位置點擊出現彈窗了

setTimeout(() => {

_that.setData({

click: false,

})

}, 500)

} else {

_that.setData({

option: true

})

}

},

復制代碼

第二種動態平移內容區域位置方法實現:

相對于第一種代碼修改的部分:只修改的了粉紅色區域的高度和粉紅色區域彈出和收回的動畫效果:

/* 彈出或關閉動畫來動態設置內容高度 */

@keyframes slideContentUp {

from {

transform: translateY(100%); /*設置為正數則底部彈出來,負數則相反*/

}

to {

transform: translateY(0%);

}

}

@keyframes slideContentDown {

from {

transform: translateY(0%);

}

to {

transform: translateY(100%);

}

}

復制代碼

參考資料:

感謝閱讀。

總結

以上是生活随笔為你收集整理的小程序底部弹窗css_微信小程序之animation底部弹窗动画(两种方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。