欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序-可移動菜單的實現(xiàn)過程詳解

 更新時間:2019年06月24日 15:56:03   作者:代碼君_Coder  
這篇文章主要介紹了微信小程序-可移動菜單的實現(xiàn)過程詳解,我們可以經(jīng)常看到手機(jī)app里有的菜單欄是懸浮在首頁的,用戶可以拖動和點擊菜單欄進(jìn)行交互,今天就教大家利用小程序的控件,,需要的朋友可以參考下

前言

我們可以經(jīng)??吹绞謾C(jī)app里有的菜單欄是懸浮在首頁的,用戶可以拖動和點擊菜單欄進(jìn)行交互,今天代碼君就教大家利用小程序的控件,實現(xiàn)一個可移動的菜單,效果圖是這樣的,要實現(xiàn)這樣的效果,需要引出我們今天的重要人物movable-view

movable-view屬性介紹

屬性名 作用 參數(shù)值
direction 設(shè)置movable-view的移動方向 屬性值有all、vertical、horizontal、none
inertia movable-view是否帶有慣性 true/false 默認(rèn)是false
out-of-bounds 超過可移動區(qū)域后,movable-view是否還可以移動 true/false 默認(rèn)是false
x 定義x軸方向的偏移,如果x的值不在可移動范圍內(nèi),會自動移動到可移動范圍;改變x的值會觸發(fā)動畫 number
y 定義y軸方向的偏移,如果y的值不在可移動范圍內(nèi),會自動移動到可移動范圍;改變y的值會觸發(fā)動畫 number
damping 阻尼系數(shù),用于控制x或y改變時的動畫和過界回彈的動畫,值越大移動越快 number 默認(rèn)是20
friction 摩擦系數(shù),用于控制慣性滑動的動畫,值越大摩擦力越大,滑動越快停止;必須大于0,否則會被設(shè)置成默認(rèn)值 number默認(rèn)是2

實現(xiàn)可移動菜單

一、wxml界面的實現(xiàn)

<view class='title-line'>
movable</view>
<movable-area class="moveArea">
<movable-view class='moveView' x="{{x}}" y="{{y}}" damping="40" direction="all" inertia='true'>菜單
</movable-view>
</movable-area>
<button class='button' type='primary' size='mini' bindtap='moveView'>點我隨機(jī)滾動小方塊</button>
<button class='button' type='primary' size='mini' bindtap='stopMove'>點我停止隨機(jī)滾動</button>

界面布局比較簡單,需要注意的幾點

  1. movable-view 必須設(shè)置width和height屬性,不設(shè)置默認(rèn)為10px
  2. movable-view 默認(rèn)為絕對定位,top和left屬性為0px
  3. 當(dāng)movable-view小于movable-area時,movable-view的移動范圍是在movable-area內(nèi);當(dāng)movable-view大于movable-area時,movable-view的移動范圍必須包含movable-area(x軸方向和y軸方向分開考慮)
  4. movable-view必須在<movable-area/>組件中,并且必須是直接子節(jié)點,否則不能移動

二、xxx.js隨機(jī)移動實現(xiàn)的邏輯

Page({
data: {
x: 0,
y: 0,
isStop:false,
},
moveView:function(e)
{
var that = this;
setTimeout(function () {
that.move(that);
}, 1000);
},
stopMove: function (e) {
this.setData({
isStop: true
})
},
move: function (that)
{
var randowX = that.GetRandomNum(1, 200);
var randowY = that.GetRandomNum(1, 400);
that.setData({
x: randowX,
y:randowY,
})
if(!that.data.isStop)
{
setTimeout(function () {
that.move(that);
}, 100);
}
},
//隨機(jī)函數(shù)
GetRandomNum: function (Min, Max) {
var Range = Max - Min;
var Rand = Math.random();
return (Min + Math.round(Rand * Range));
},

js里面需要講解的內(nèi)容比較多

  1. x/y 用來控制菜單欄的位置,isStop停止移動
  2. 介紹一個js延遲執(zhí)行事件的方法setTimeout(function () { }, 1000),逗號左邊執(zhí)行事件的方法,右邊設(shè)置延遲多久執(zhí)行事件,1000對應(yīng)的是一秒
  3. GetRandomNum 這個方法是我自定義的,用于生成隨機(jī)數(shù)字,計算滾動的距離
  4. 還有一個需要注意點是,要事件監(jiān)聽更新數(shù)據(jù)的時候,this對象在程序中隨時會改變,此時需要執(zhí)行 var that = this;把this對象傳遞給that就可以解決上面遇見的問題

三、wxss樣式

.moveArea {
height: 400px;
width:200px;
background: red;
margin: 10px;
}
.moveView {
height: 100rpx;
width: 100rpx;
line-height: 100rpx;
background: blue;
border-radius: 50%;
text-align: center;
margin: 10rpx;
}

今天講解的樣式有一下幾個

如何把圖形從方形變成圓形?

border-radius 這是今天的主角,把他的值設(shè)置成50%,就由方形變成圓形了,這個屬性是設(shè)置圓角的,設(shè)置10%,是有一點圓角的方形

設(shè)置內(nèi)容垂直居中方法

這是代碼君的一個小竅門,把height和line-height設(shè)置成一樣,他自動會垂直居中

總結(jié)

今天講解的是可移動的菜單,本身實現(xiàn)是沒什么難度的,我又引入了幾個知識點,一個是推遲事件函數(shù)的使用還有就是幾個css樣式設(shè)置的小竅門,讀者回去認(rèn)真記住使用規(guī)則,后面我們陸續(xù)會用上,好啦,今天的課程就到這~

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Bootstrap的基本應(yīng)用要點淺析

    Bootstrap的基本應(yīng)用要點淺析

    BootStrap是基于HTML、CSS和JavaScript的框架,使你只需要寫簡單的代碼就可以很快的搭建一個還不錯的前端框架,他是后端程序員的福音,使他們只需要專注業(yè)務(wù)邏輯,而無須浪費太多的精力在界面設(shè)計上
    2016-12-12
  • JS+Canvas實現(xiàn)滿屏愛心和文字動畫的制作

    JS+Canvas實現(xiàn)滿屏愛心和文字動畫的制作

    Canvas?適合繪制大數(shù)據(jù)量圖形元素的圖表(如熱力圖、地理坐標(biāo)系或平行坐標(biāo)系上的大規(guī)模線圖或散點圖等),也適合實現(xiàn)某些視覺特效。本文就來利用Canvas實現(xiàn)滿屏愛心和文字動畫的制作,感興趣的可以了解一下
    2022-11-11
  • js實現(xiàn)簡單模態(tài)窗口,背景灰顯

    js實現(xiàn)簡單模態(tài)窗口,背景灰顯

    昨天中午做項目需要一個模態(tài)窗口,想起上一個公司的項目經(jīng)理曾經(jīng)做過一個比較牛的模態(tài)窗口,至今沒用搞清楚實現(xiàn)原理,平時也沒有時間去分析,試著自己做了一個,用了一天的時間終于完成了,給大家一起分享, 也希望高手多提意見。第一次在博客園上發(fā)文章,挺高興的。
    2008-11-11
  • js如何獲取圖片url的Blob值并預(yù)覽示例代碼

    js如何獲取圖片url的Blob值并預(yù)覽示例代碼

    這篇文章主要給大家介紹了關(guān)于js如何獲取圖片url的Blob值并預(yù)覽的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 基于JavaScript實現(xiàn)報警器提示音效果

    基于JavaScript實現(xiàn)報警器提示音效果

    這篇文章給大家分享分享一段代碼基于JavaScript實現(xiàn)報警器提示音效果,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-10-10
  • 微信小程序?qū)崿F(xiàn)九宮格抽獎

    微信小程序?qū)崿F(xiàn)九宮格抽獎

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)九宮格抽獎,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 多瀏覽器兼容的右下角廣告代碼(已測)

    多瀏覽器兼容的右下角廣告代碼(已測)

    支持FIREFOX IE7 IE6 周未就為了這個小效果,折騰死人了!找了很多的代碼都不行,不是不支持FIREFOX,就是對HTML和XHTML有要求!
    2008-04-04
  • JS獲取鼠標(biāo)位置距瀏覽器窗口距離的方法示例

    JS獲取鼠標(biāo)位置距瀏覽器窗口距離的方法示例

    這篇文章主要介紹了JS獲取鼠標(biāo)位置距瀏覽器窗口距離的方法,結(jié)合實例形式分析了JS針對各種常見瀏覽器窗口及鼠標(biāo)響應(yīng)操作相關(guān)技巧,需要的朋友可以參考下
    2017-04-04
  • JavaScript+H5實現(xiàn)微信搖一搖功能

    JavaScript+H5實現(xiàn)微信搖一搖功能

    這篇文章主要為大家詳細(xì)介紹了JavaScript+H5實現(xiàn)微信搖一搖功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • JavaScript選取(picking)和反選(rejecting)對象的屬性方法

    JavaScript選取(picking)和反選(rejecting)對象的屬性方法

    這篇文章主要介紹了JavaScript選取(picking)和反選(rejecting)對象的屬性方法的相關(guān)資料,需要的朋友可以參考下
    2017-08-08

最新評論