1. 程式人生 > >微信小程式 利用transform:Matrix(a,b,c,d,e,f) 實現圖片拖拽

微信小程式 利用transform:Matrix(a,b,c,d,e,f) 實現圖片拖拽

微信小程式的樣式屬性 transform:Matrix()是一個非常強大的功能,通過這個組建可以實現非常多的圖形變化,位移等功能。

下面上位移樣例:

如圖,我要在紅色區域內移動圖片,而這個圖片是有一個原始樣式的,也就是它本身是有一個matrix(x,x,x,x,x,x)屬性的,所以我只要在後臺不斷更改它的屬性就可以了。

1):

需要給這張圖片一個滑動觸發的方法bindtouchmove=moveImg。在js檔案裡書寫方法 首先moveImg(res)裡res會自動封裝它觸發的位置資訊封裝在res.touches[0]

裡面,我們可以獲取到它的pageX和pageY,但是注意的是這裡的x和y是絕對位置的值,也就是在整個螢幕左上角為起始點,而matrix

是相對位置,我設定的它的背景圖為它的相對點,也就是說(0,0)是紅色背景的左上角第一個點,所以要進行計算一下。

2):
計算相對位置的方法呢,就看你背景怎麼設定了,這裡呢 我的藍色背景是佔到整個螢幕width的20%,而紅色背景是居於白色背景
的中心,所以有紅色背景的width就可以很輕鬆算出絕對位置到相對位置的pageX和pageY,然後setdata一下,將屬性儲存到js

中。

3):

就是設定邊界了,其實也比較簡單,就是在setdata前判斷一下,如果
藍色背景寬度+(白色背景寬度-紅色背景寬度)/2<pageX<總的寬度-(白色背景寬度-紅色背景寬度)/2
那就可以設定,要不然就不能設定。

4):

最後就很簡單啦,將圖片的樣式中的transform:matrix(x,x,x,x,{{pageX}},{{pageY}})就可以啦

等我做出來放大和縮小再來寫。。。

相關推薦

程式 利用transform:Matrix(a,b,c,d,e,f) 實現圖片

微信小程式的樣式屬性 transform:Matrix()是一個非常強大的功能,通過這個組建可以實現非常多的圖形變化,位移等功能。 下面上位移樣例: 如圖,我要在紅色區域內移動圖片,而這個圖片是有一

演算法題:假設一列火車一共經過10個車站,車站按順序為 A B C D E F G H I J ,編寫一個程式,自動計算剩餘的票

假設一列火車一共經過10個車站,車站按順序為 A B C D E F G H I J ,編寫一個程式,自動計算剩餘的票     要求:1 假設火車有100個座位        2.程式可以輸入購買車票的起始站與結束站        3.輸入後,程式輸出剩餘車票,       

Codeforces 1043 - A/B/C/D/E/F - (Undone)

連結:http://codeforces.com/contest/1043 A - Elections - [水水水水題] 題意: 我和另一個人競爭選舉,共有 $n$ 個人投票,每個人手上有 $k$ 票,必須投給我或者另一個人。 現在已知每個人給另一個人投 $a_i$ 票,也就是說會給我投 $k-

a,b,c,d,e,f六個字母可以構成多少沒有重複的字串。

這是一個排列組合問題 public class Test3_2 { // //求階乘,這個不需要了 // public static int factorial(int n) // { // int

Codeforces Round #424 Div.2 A B C D E F

Vasily has a deck of cards consisting of n cards. There is an integer on each of the cards, this integer is between 1 and 100 000, inclusive. It is poss

Codeforces 1136 - A/B/C/D/E/F - (Undone)

test spa clu () int 二分 main con nbsp 鏈接:https://codeforces.com/contest/1136/ A - Nastya Is Reading a Book - [二分] #include<bits/s

程式利用animation實現元素翻轉到背面

效果如圖,正反面分別寫兩個元素,佈局讓兩個元素重疊 wxml的程式碼: <view class='rotateCtn'> <!--正面的框 --> <view class='{{frameClass1}}' data-id='1' bin

程式利用git提交專案

微信小程式提交專案:1、碼雲上建立一個專案 xiaochengxu2、本地建立一個資料夾,然後在控制檯使用 cd 資料夾名字 (將檔案拉到控制檯)3、使用 git init 命令 ,初始化一

程式-利用wxParse將html轉為wxml

2.1 在使用的View中引入WxParse模組var WxParse = require('../../wxParse/wxParse.js');12.2 在使用的Wxss中引入WxParse.css,可以在app.wxss@import "/wxParse/wxParse

程式下拉載入和上拉重新整理兩種實現方法

方法一:onPullDownRefresh和onReachBottom方法實現小程式下拉載入和上拉重新整理 首先要在json檔案裡設定window屬性             屬性  

程式 自定義單選複選按鈕組的實現(用於實現購物車產品列表功能)

  (一)單選按鈕組 模型圖如下:  index.js Page({ data: { parameter: [{ id: 1, name: '銀色' }, { id: 2, name: '白色' },{ id: 3, name: '黑色' }],//模擬商

【最佳實踐】程式客服訊息實時通知如何快速低成本實現

我們做微信小程式開發的都知道,只要在小程式頁面中新增如下程式碼即可進入小程式的客服會話介面: <button open-type="contact" >聯絡我們</button> 微信小程式客服會話介面如下圖所示:

關於程式輪播圖指示點換成數字做法實現

說白了,輪播大家都會寫,所以本文不是什麼重難點,只是和大家分享下小技巧 先讓大家看看效果:(請大家著重看輪播圖右下角) 請大家著重看輪播圖右下角html相關程式碼: <template>

程式中做使用者登入與登入態維護的實現詳解

總結 大家都知道,在開發中提供使用者登入以及維護使用者的登入狀態,是一個擁有使用者系統的軟體應用普遍需要做的事情。像微信這樣的一個社交平臺,如果做一個小程式應用,我們可能很少會去做一個完全脫離和捨棄連線使用者資訊的純工具軟體。 讓使用者登入,標識使用者和獲取使用者資訊,以

程式開發記錄(三)頂部導航欄切換實現

微信小程式實現頂部導航切換效果可用swiper來實現,效果如下: 程式碼如下: WXML: <view class="page"> <!--頂部導航欄--> <view class="swiper-tab"> <vi

程式 —— 上傳檔案到伺服器(例:上傳圖片到伺服器)

上傳圖片到伺服器: 1.先在前端寫一個選擇圖片的區域來觸發wx.chooseImage介面並用wx.setStorage介面把圖片路徑存起來。 -wxml <view class="

程式 帶引數二維碼 C# asp.net 服務端程式

第一步 獲取access_token: 文件如下: http請求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=

程式自定義tab,多層tab巢狀實現

小程式最近是越來越火了…… 做小程式有一段時間了,總結一下專案中遇到的問題及解決辦法吧。 專案中有個多 tab 巢狀的需求,進入程式主介面下面有兩個 tab,進入A模組後,A模組最底下又有多個tab,每個tab上又嵌了2-4個不等的tab。。。 這種變

程式開發之選項卡tab(swiper)滑動切換功能實現

該功能實現依賴於 微信小程式 模板容器 swiper,及其提供的屬性方法;具體實現如下:上程式碼index.wxml<!--pages/index/index.wxml--> <view class="page"> <!-- <vi

牛客白月賽10 A,B,C,D

傳送門 連結:https://ac.nowcoder.com/acm/contest/280/A 來源:牛客網 題目描述 Actci偶然發現了一個礦洞,這個礦洞的結構類似與一棵二叉樹,Actci發現的礦洞恰好位於根節點處,為了儘快挖掘,Actci找來了她的小夥伴們來幫忙,由於地質原因