摘要:廢話(huà)不多說(shuō)先上成果圖實(shí)現(xiàn)思路主要分界面與邏輯兩大塊界面分為個(gè)部分左滑塊長(zhǎng)度左內(nèi)容位置中間長(zhǎng)度右滑塊長(zhǎng)度右內(nèi)容位置邏輯個(gè)事件各滑塊長(zhǎng)度及位置計(jì)算選中時(shí)變色具體實(shí)現(xiàn)步驟首先我們明白整個(gè)容器的長(zhǎng)度是不變的等于左邊中間右邊所以我們可以通過(guò)先獲取總的
主要分界面與邏輯兩大塊
界面分為5個(gè)部分
左滑塊長(zhǎng)度
左內(nèi)容位置
中間長(zhǎng)度
右滑塊長(zhǎng)度
右內(nèi)容位置
邏輯
touch3個(gè)事件
各滑塊長(zhǎng)度及位置計(jì)算
選中時(shí)變色
首先我們明白整個(gè)容器的長(zhǎng)度是不變的等于左邊+中間+右邊所以我們可以通過(guò)先獲取總的容器的寬度并用變量進(jìn)行保存,這里我用的就是屏幕的寬度。
this.rangeWidth?=?document.body.clientWidth
添加vue的三種touch事件
@touchstart.stop.prevent="leftTextTouchStart"?//按下? @touchmove.stop.prevent="leftTextTouchMove"?//滑動(dòng)? @touchend.stop.prevent="leftTextTouchEnd"??//松開(kāi)//右滑塊,同上? @touchstart.stop.prevent="rightTextTouchStart"? @touchmove.stop.prevent="rightTextTouchMove"? @touchend.stop.prevent="rightTextTouchEnd"
使用類(lèi)綁定的方式,在touchStart事件觸發(fā)的方式,修改點(diǎn)擊的滑塊的樣式,在松開(kāi)時(shí)觸發(fā)touchend事件,恢復(fù)原來(lái)的樣式
//滑動(dòng)事件方法 leftTextTouchStart()?{ this.leftClick?=?true; },? leftTextTouchEnd()?{ this.leftClick?=?false; }, //類(lèi)樣式綁定 :class="{check_text_div:leftClick}"
滑動(dòng)時(shí)三大塊核心寬度及位置的計(jì)算,因?yàn)榛瑒?dòng)中坐標(biāo)軸是實(shí)時(shí)變化,這里我們使用vue的計(jì)算屬性進(jìn)行操作
rangeWidth?//整個(gè)容器的寬度 leftWidth?//左邊滑動(dòng)的距離,通過(guò)滑動(dòng)事件定義 rightWidth?//右邊滑動(dòng)的距離,通過(guò)滑動(dòng)事件定義 width()?{ return?Math.min(Math.max(0,?this.rangeWidth?-?this.leftWidth?-?this.rightWidth),?this.rangeWidth)//內(nèi)容寬度應(yīng)等于總寬度減去左右兩邊,且大于等于0小于等于總寬度 } left()?{???? return?Math.max(this.leftWidth,?0)//防止左滑出界面 } right()?{ ????if?(this.left?+?this.rightWidth?<=?this.rangeWidth)?return?Math.max(this.rightWidth?-?0.5,?0)//防止右滑出界面 }
滑動(dòng)事件中,界面變化及左右兩邊滑動(dòng)距離的記錄
leftTextTouchMove(e)?{ let?touch?=?e.changedTouches[0]; ????let?clientX?=?touch.clientX;//獲取滑動(dòng)事件的橫坐標(biāo)值???? if?(clientX?>=?0)?{//只檢測(cè)滑塊在坐標(biāo)值在屏幕內(nèi)??????? if?(this.left?+?this.right?<=?this.rangeWidth)?{//防止左右滑塊位置倒置???????????? this.leftWidth?=?clientX;//左滑塊距離等于x坐標(biāo)????????????//界面操作???????????? $("#nowRange").css({"left":?this.left,?"width":?this.width}); ????????????$("#leftText").css({"left":?this.left}); ????????????$("#leftImg").css({"left":?this.left});?????? }??? } } rightTextTouchMove(e)?{ ????let?touch?=?e.changedTouches[0]; ????let?clientX?=?touch.clientX;//獲取滑動(dòng)事件的橫坐標(biāo)值???? if?(clientX?<=?this.rangeWidth)?{//只檢測(cè)滑塊在坐標(biāo)值在屏幕內(nèi)???????? this.rightWidth?=?this.rangeWidth?-?clientX;//右邊滑塊距離等于總長(zhǎng)度減去滑動(dòng)橫坐標(biāo)??????? if?(this.left?+?this.right?<=?this.rangeWidth)?{//防止左右滑塊位置倒置????????????//界面變化??????????? ? $("#nowRange").css({"width":?this.width}); ????????????$("#rightText").css({"right":?this.right}); ????????????$("#rightImg").css({"right":?this.right}); ????????}???? } },
6.文本內(nèi)容通過(guò)計(jì)算值便可實(shí)現(xiàn)
leftText()?{ let?num?=?parseInt(this.left?/?this.rangeWidth?*?100); if?(num?===?0?||?isNaN(num))?return?"不限";???? return?num?+?"k"; } rightText()?{ if?(this.rangeWidth?===?0)?return?"不限";???? let?num?=?parseInt((this.rangeWidth?-?this.right)?/?this.rangeWidth?*?100); ????if?(num?>=?0)?{ ????????if?(num?===?100)?return?"不限"; ????????return?num?+?"k";???? } }核心代碼就這些了,撒花完結(jié),優(yōu)化什么的,你們自己看著來(lái)咯
這是我的github,歡迎大佬們猛戳,不定時(shí)更新
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/97655.html
摘要:廢話(huà)不多說(shuō)先上成果圖實(shí)現(xiàn)思路主要分界面與邏輯兩大塊界面分為個(gè)部分左滑塊長(zhǎng)度左內(nèi)容位置中間長(zhǎng)度右滑塊長(zhǎng)度右內(nèi)容位置邏輯個(gè)事件各滑塊長(zhǎng)度及位置計(jì)算選中時(shí)變色具體實(shí)現(xiàn)步驟首先我們明白整個(gè)容器的長(zhǎng)度是不變的等于左邊中間右邊所以我們可以通過(guò)先獲取總的 廢話(huà)不多說(shuō)先上成果圖 showImg(https://segmentfault.com/img/remote/1460000016345728?w...
摘要:項(xiàng)目簡(jiǎn)介本文將介紹一個(gè)筆者自己的項(xiàng)目自制簡(jiǎn)單的詩(shī)歌搜索系統(tǒng)。該項(xiàng)目使用的模塊為其中,模塊和模塊用來(lái)制作爬蟲(chóng),爬取網(wǎng)上的詩(shī)歌。 項(xiàng)目簡(jiǎn)介 ??本文將介紹一個(gè)筆者自己的項(xiàng)目:自制簡(jiǎn)單的詩(shī)歌搜索系統(tǒng)。該系統(tǒng)主要的實(shí)現(xiàn)功能如下:指定一個(gè)關(guān)鍵詞,檢索出包含這個(gè)關(guān)鍵詞的詩(shī)歌,比如關(guān)鍵詞為白云,則檢索出的詩(shī)歌可以為王維的《送別》,內(nèi)容為下馬飲君酒,問(wèn)君何所之?君言不得意,歸臥南山陲。但去莫復(fù)問(wèn),白云...
閱讀 489·2021-09-03 00:22
閱讀 1365·2021-08-03 14:03
閱讀 2082·2021-07-25 21:37
閱讀 645·2019-08-30 13:18
閱讀 1874·2019-08-29 16:19
閱讀 2682·2019-08-29 13:22
閱讀 1293·2019-08-29 12:16
閱讀 2586·2019-08-26 12:16