亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

uniapp中實現(xiàn)canvas超出屏幕滾動查看功能

 更新時間:2024年03月28日 12:09:53   作者:一只花小妖  
親愛的小伙伴,當(dāng)你需要在uniapp中使用canvas繪制一個超長圖,就類似于橫向的流程圖時,這個canvas超出屏幕部分拖動屏幕查看會變得十分棘手,怎么解決這個問題呢,下面小編給大家介紹uniapp中實現(xiàn)canvas超出屏幕滾動查看功能,感興趣的朋友一起看看吧

親愛的小伙伴,當(dāng)你需要在uniapp中使用canvas繪制一個超長圖,就類似于橫向的流程圖時,這個canvas超出屏幕部分拖動屏幕查看會變得十分棘手。我查閱了大量資料,甚至是問了無數(shù)遍AI,得到的結(jié)果只有很敷衍的監(jiān)聽touch,然后計算偏移量,然后重繪。可是,你想想,如果一次繪圖里邊有成百上千個元素,還有很大的圖片,你重繪?那不得卡死。終于,在一次詢問AI時給了我一絲曙光,并且實踐告訴我,這個方法絕對管用!

1.使用scroll-view嵌套canvas,官網(wǎng)是說不許嵌套的,但是我們可以另辟蹊徑,滾動的關(guān)鍵就再這個onTouchMove方法中

<scroll-view ref="scrollView" scroll-x scroll-y style="height: 100vh;" @touchmove="onTouchMove">
			<canvas canvas-id="myCanvas" id="myCanvas" @tap="handleCanvasTap" ref="myCanvas"
				style="width: 5000rpx; height: 200vh"></canvas>
		</scroll-view>

2.定義參數(shù)

data(){
    retrun{
        	startX: 0,
				startY: 0,
				offsetX: 0,
				offsetY: 0,
				context: null,
				endX: 0,
				endY: 0,
				isMoving: false,
    }
}

3.關(guān)鍵方法

onTouchMove(e){
    				if (this.isMoving) {
					const deltaX = e.touches[0].clientX - this.startX;
					const deltaY = e.touches[0].clientY - this.startY;
					const query = uni.createSelectorQuery().in(this);
					query.select('#myCanvas').boundingClientRect().exec((res) => {
						const canvas = res[0].node;
						canvas.style.transform = `translate(${deltaX}px, ${deltaY}px)`;
					});
					this.endX = e.touches[0].clientX;
					this.endY = e.touches[0].clientY;
				}
}

4.你的canvas屬性要跟的我一致,包你成功!

到此這篇關(guān)于uniapp中實現(xiàn)canvas超出屏幕滾動查看的文章就介紹到這了,更多相關(guān)uniapp canvas滾動查看內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript中window和document用法詳解

    JavaScript中window和document用法詳解

    這篇文章主要介紹了JavaScript中window和document用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 微信小程序?qū)崿F(xiàn)圖片預(yù)覽功能

    微信小程序?qū)崿F(xiàn)圖片預(yù)覽功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)圖片預(yù)覽功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 輸入密碼時檢測大寫是否鎖定的js代碼

    輸入密碼時檢測大寫是否鎖定的js代碼

    網(wǎng)站登錄為了更好的用戶體驗都會在輸入密碼的時候檢測是否開啟大寫。提醒用戶。
    2011-02-02
  • JS實現(xiàn)旋轉(zhuǎn)木馬式圖片輪播效果

    JS實現(xiàn)旋轉(zhuǎn)木馬式圖片輪播效果

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)旋轉(zhuǎn)木馬式圖片輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • javascript實時顯示北京時間的方法

    javascript實時顯示北京時間的方法

    這篇文章主要介紹了javascript實時顯示北京時間的方法,涉及javascript操作時間顯示的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 微信小程序頂部導(dǎo)航欄滑動tab效果

    微信小程序頂部導(dǎo)航欄滑動tab效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序頂部導(dǎo)航欄滑動tab效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 微信小程序全局變量功能與用法詳解

    微信小程序全局變量功能與用法詳解

    這篇文章主要介紹了微信小程序全局變量功能與用法,結(jié)合實例形式詳細(xì)分析了微信小程序全局變量的作用、定義、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-01-01
  • JavaScript利用crypto模塊實現(xiàn)加解密

    JavaScript利用crypto模塊實現(xiàn)加解密

    crypto模塊提供了加密功能,包含對 OpenSSL 的哈希、HMAC、加密、解密、簽名、以及驗證功能的一整套封裝。本文將利用它實現(xiàn)加解密算法,需要的可以參考一下
    2023-02-02
  • 微信js-sdk分享功能接口常用邏輯封裝示例

    微信js-sdk分享功能接口常用邏輯封裝示例

    這篇文章主要介紹了微信js-sdk分享功能接口常用邏輯封裝,簡單介紹了分享功能接口的功能、邏輯封裝與使用方法,需要的朋友可以參考下
    2016-10-10
  • JS實現(xiàn)字體選色板實例代碼

    JS實現(xiàn)字體選色板實例代碼

    這篇文章主要介紹了JS實現(xiàn)字體選色板實例代碼,有需要的朋友可以參考一下
    2013-11-11

最新評論