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

vue實(shí)現(xiàn)移動(dòng)端原生小球滑塊

 更新時(shí)間:2022年03月08日 09:12:56   作者:至_臻  
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端原生小球滑塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了vue實(shí)現(xiàn)移動(dòng)端原生小球滑塊的具體代碼,供大家參考,具體內(nèi)容如下

效果

用到的一些事件

阻止默認(rèn)事件:ev.preventDefault && ev.preventDefault();

獲取寬度:getBoundingClientRect().width

點(diǎn)擊位置在元素的位置:ev.changedTouches[0].pageX

<template>
? <div id="app">
? ? <div class="slider">
? ? ? <div class="line"></div>
? ? ? <div class="line ac"></div>
? ? ? <div class="box" @touchstart="fnStart"></div>
? ? ? <div class="box as" @touchstart="fnStart"></div>
? ? </div>
? </div>
</template>

js

<script>
export default {
? methods: {
? ? fnStart(ev) {
? ? ? // 計(jì)算點(diǎn)擊位置在元素的坐標(biāo)
? ? ? this.disX = ev.changedTouches[0].pageX - ev.target.offsetLeft;
? ? ? // 獲取父節(jié)點(diǎn)
? ? ? this.parent = ev.target.parentNode;
? ? ? // 獲取元素的寬
? ? ? this.ow = this.parent.getBoundingClientRect().width;
? ? ? // 計(jì)算除了元素的寬盒子還剩下多寬
? ? ? this.clienw = this.ow - ev.target.getBoundingClientRect().width;
?
? ? ? // 獲取左邊小圓球
? ? ? this.lcircle = this.parent.children[2];
? ? ? // 獲取右邊小圓球
? ? ? this.rcircle = this.parent.children[3];
?
? ? ? // 獲取變色條
? ? ? this.line = this.parent.children[1];
?
? ? ? document.ontouchmove = this.fnmove;
? ? ? document.ontouchend = this.fnend;
? ? },
? ? fnmove(ev) {
? ? ? // 計(jì)算移動(dòng)的距離
? ? ? this.ll = ev.changedTouches[0].pageX - this.disX;
? ? ? // 判斷不能讓小圓球到盒子外面
? ? ? if (this.ll < 0) this.ll = 0;
? ? ? if (this.ll > this.clienw) this.ll = this.clienw;
? ? ? // 右邊線條
? ? ? if (ev.target.className.indexOf("as") != -1) {
? ? ? ? this.line.style.width =this.ll - this.parent.children[2].offsetLeft + "px";
? ? ? ? // 右邊推動(dòng)左邊小圓球
? ? ? ? // 判斷如果右邊小球移動(dòng)到左邊小于左邊小球offsetLeft的距離 如果當(dāng)前為0 加一個(gè)小圓球的寬他們就不會(huì)重疊
? ? ? ? console.log(this.ll)
? ? ? ? if (this.ll < this.lcircle.offsetLeft + 30) {
? ? ? ? ? // 如果this.ll大于左邊小球的值 當(dāng)前this.ll-30就是左邊小球left的值
? ? ? ? ? this.ind = this.ll - 30;
? ? ? ? ??
? ? ? ? ? console.log(this.ind)
? ? ? ? ? // 判斷當(dāng)前左邊位置過等于0 就讓他左邊的位置等于0 就不會(huì)到盒子外面
? ? ? ? ? if (this.ind <= 0) {
? ? ? ? ? ? this.ind = 0;
? ? ? ? ? }
? ? ? ? ? // 如果this.ll的值小于小圓球的寬 兩個(gè)圓就會(huì)重疊 ?所以讓右邊圓的left值為30
? ? ? ? ? if (this.ll < 30) {
? ? ? ? ? ? this.ll = 30;
? ? ? ? ? }
?
? ? ? ? ? this.line.style.left = this.ind + "px";
? ? ? ? ? this.lcircle.style.left = this.ind + "px";
? ? ? ? }
? ? ? } else {
? ? ? ? // 左線條
? ? ? ? // 獲取左邊的距離
? ? ? ? this.line.style.left = this.ll + "px";
? ? ? ? // 當(dāng)前this.ll就是line多出來的寬 ? 如果左邊不動(dòng) offsetleft的值是300 ? this.ll是移動(dòng)的距離
? ? ? ? this.line.style.width =
? ? ? ? ? this.parent.children[3].offsetLeft - this.ll + "px";
? ? ? ? // 左邊推動(dòng)右邊小圓球 ?要把右邊小球+30 不然兩個(gè)小球就會(huì)重合到一起
? ? ? ? if (this.ll + 30 > this.rcircle.offsetLeft) {
? ? ? ? ? this.indX = this.ll + 30;
?
? ? ? ? ? if (this.indX > this.clienw) {
? ? ? ? ? ? this.indX = this.clienw;
? ? ? ? ? }
?
? ? ? ? ? ? ? // 判斷當(dāng)前移動(dòng)的距離不能超過 this.clienw-30如果超過就會(huì)重疊
? ? ? ? ? if(this.ll>this.clienw-30){
? ? ? ? ? ? this.ll=this.clienw-30
? ? ? ? ? }
?
? ? ? ? ? this.line.style.left=this.indX+'px'
? ? ? ? ? this.rcircle.style.left=this.indX+'px'
? ? ? ? }
? ? ? }
?
? ? ? ev.target.style.left = this.ll + "px";
? ? },
? ? fnend() {
? ? ? document.ontouchmove = null;
? ? ? document.ontouchend = null;
? ? },
? },
};
</script>

css樣式 

<style scoped lang="less">
.slider {
? height: 30px;
? width: 300px;
? background: #999;
? position: relative;
? margin: auto;
? .box {
? ? width: 30px;
? ? height: 30px;
? ? border-radius: 50%;
? ? background: pink;
? ? position: absolute;
? }
? .box.as {
? ? background: blueviolet;
? ? right: 0;
? }
? // 線條
? .line {
? ? width: 300px;
? ? height: 5px;
? ? background: #eee;
? ? position: absolute;
? }
? .line.ac {
? ? background: rgb(247, 151, 25);
? }
}
</style>

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

相關(guān)文章

  • Vue組件之間的通信方式詳細(xì)講解

    Vue組件之間的通信方式詳細(xì)講解

    對(duì)于vue來說,組件之間的消息傳遞是非常重要的,用vue可以是要組件復(fù)用的,而組件實(shí)例的作用域是相互獨(dú)立,這意味著不同組件之間的數(shù)據(jù)無法互相引用,一般來說,組件之間可以有幾種關(guān)系,下面是我對(duì)組件之間消息傳遞的常用方式的總結(jié)
    2022-08-08
  • vue實(shí)現(xiàn)固定位置顯示功能

    vue實(shí)現(xiàn)固定位置顯示功能

    這篇文章主要介紹了vue實(shí)現(xiàn)固定位置顯示功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Vue如何由本地js中存放的url地址獲取圖片

    Vue如何由本地js中存放的url地址獲取圖片

    這篇文章主要介紹了Vue如何由本地js中存放的url地址獲取圖片問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Vue3中事件總線的具體使用

    Vue3中事件總線的具體使用

    本文主要介紹了Vue3中事件總線的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • vue引入elementUi后打開頁(yè)面報(bào)錯(cuò)Uncaught?TypeError的解決方式

    vue引入elementUi后打開頁(yè)面報(bào)錯(cuò)Uncaught?TypeError的解決方式

    這篇文章主要給大家介紹了關(guān)于vue引入elementUi后打開頁(yè)面報(bào)錯(cuò)Uncaught?TypeError:?Cannot?read?properties?of?undefined(reading?‘prototype‘)的解決方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 結(jié)合axios對(duì)項(xiàng)目中的api請(qǐng)求進(jìn)行封裝操作

    結(jié)合axios對(duì)項(xiàng)目中的api請(qǐng)求進(jìn)行封裝操作

    這篇文章主要介紹了結(jié)合axios對(duì)項(xiàng)目中的api請(qǐng)求進(jìn)行封裝操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 15 分鐘掌握vue-next響應(yīng)式原理

    15 分鐘掌握vue-next響應(yīng)式原理

    這篇文章主要介紹了15 分鐘掌握vue-next響應(yīng)式原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue項(xiàng)目中使用TDesign的方法

    vue項(xiàng)目中使用TDesign的方法

    tdesign-vue是TDesign 適配桌面端的組件庫(kù),適合在 vue 2 技術(shù)棧項(xiàng)目中使用,這篇文章主要介紹了vue項(xiàng)目中使用TDesign?,需要的朋友可以參考下
    2023-04-04
  • 一篇超詳細(xì)的Vue-Router手把手教程

    一篇超詳細(xì)的Vue-Router手把手教程

    這篇文章主要給大家介紹了關(guān)于Vue-Router的相關(guān)資料,vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁(yè)面應(yīng)用,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • vue如何實(shí)現(xiàn)對(duì)請(qǐng)求參數(shù)進(jìn)行簽名

    vue如何實(shí)現(xiàn)對(duì)請(qǐng)求參數(shù)進(jìn)行簽名

    這篇文章主要介紹了vue如何實(shí)現(xiàn)對(duì)請(qǐng)求參數(shù)進(jìn)行簽名問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評(píng)論