最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現(xiàn)滑動驗證條

 更新時間:2022年03月02日 14:52:14   作者:Ezerbel  
這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)滑動驗證條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現(xiàn)滑動驗證條的具體代碼,供大家參考,具體內(nèi)容如下

效果

代碼

VerifySlider.vue

<template>
? <div
? ? ref="dragDiv"
? ? class="drag"
? >
? ? <div ref="drag_bg" class="drag_bg" />
? ? <div ref="drag_text" class="drag_text">{{ confirmWords }}</div>
? ? <div class="slide-check-tip">請滑動驗證</div>
? ? <div
? ? ? ref="moveDiv"
? ? ? :class="{'handler_ok_bg':confirmSuccess}"
? ? ? class="handler handler_bg"
? ? ? style="position: absolute;top: 0px;left: 0px;"
? ? ? @mousedown="mousedownFn($event)"
? ? />
? </div>
</template>

<script>
export default {
? data() {
? ? return {
? ? ? beginClientX: 0, /* 距離屏幕左端距離 */
? ? ? mousePressing: false, /* 是否正則按壓滑動條 */
? ? ? maxwidth: '', /* 拖動最大寬度,依據(jù)滑塊寬度算出來的 */
? ? ? confirmWords: '按住滑塊,拖動到最右邊', /* 滑塊文字 */
? ? ? confirmSuccess: false /* 驗證成功判斷 */
? ? };
? },
? mounted() {
? ? document.getElementsByTagName('html')[0].addEventListener('mousemove', this.mouseMoveFn);
? ? document.getElementsByTagName('html')[0].addEventListener('mouseup', this.moseUpFn);
? },
? methods: {
? ? mousedownFn: function(e) {
? ? ? console.log(' mousedownFn ');
? ? ? this.initMaxWidth();
? ? ? if (!this.confirmSuccess) {
? ? ? ? e.preventDefault && e.preventDefault(); // 阻止文字選中等 瀏覽器默認(rèn)事件
? ? ? ? this.mousePressing = true;
? ? ? ? this.beginClientX = e.clientX;
? ? ? }
? ? }, // mousedoen 事件
? ? successFunction() {
? ? ? this.confirmSuccess = true;
? ? ? this.confirmWords = '驗證通過';
? ? ? if (window.addEventListener) {
? ? ? ? document.getElementsByTagName('html')[0].removeEventListener('mousemove', this.mouseMoveFn);
? ? ? ? document.getElementsByTagName('html')[0].removeEventListener('mouseup', this.moseUpFn);
? ? ? } else {
? ? ? ? document.getElementsByTagName('html')[0].removeEventListener('mouseup', () => { });
? ? ? }
? ? ? this.$refs.drag_text.style.color = '#fff';
? ? ? this.$refs.moveDiv.style.left = this.maxwidth + 'px';
? ? ? this.$refs.drag_bg.style.width = this.maxwidth + 'px';
? ? }, // 驗證成功函數(shù)
? ? mouseMoveFn(e) {
? ? ? if (this.mousePressing) {
? ? ? ? console.log('mouseMoveFn');
? ? ? ? const width = e.clientX - this.beginClientX;
? ? ? ? if (width > 0 && width <= this.maxwidth) {
? ? ? ? ? this.$refs.moveDiv.style.left = width + 'px';
? ? ? ? ? this.$refs.drag_bg.style.width = width + 'px';
? ? ? ? } else if (width > this.maxwidth) {
? ? ? ? ? this.successFunction();
? ? ? ? }
? ? ? }
? ? }, // mousemove事件
? ? moseUpFn(e) {
? ? ? console.log('moseUpFn');
? ? ? this.mousePressing = false;
? ? ? var width = e.clientX - this.beginClientX;
? ? ? if (width < this.maxwidth) {
? ? ? ? // document.getElementsByClassName('handler')[0].style.left = 0 + 'px'
? ? ? ? // document.getElementsByClassName('drag_bg')[0].style.width = 0 + 'px'
? ? ? ? this.$refs.moveDiv.style.left = 0 + 'px';
? ? ? ? this.$refs.drag_bg.style.width = 0 + 'px';
? ? ? }
? ? }, // mouseup事件,
? ? initMaxWidth() {
? ? ? this.maxwidth = this.$refs.dragDiv.clientWidth - this.$refs.moveDiv.clientWidth;
? ? ? // this.maxwidth = 338
? ? },
? ? // 將滑動條重新至于最左側(cè)
? ? reset() {
? ? ? this.$refs.moveDiv.style.left = 0 + 'px';
? ? ? this.$refs.drag_bg.style.width = 0 + 'px';
? ? ? this.$refs.drag_text.style.color = '#333';
? ? ? this.confirmSuccess = false;
? ? ? this.mousePressing = false;
? ? ? this.maxwidth = this.$refs.dragDiv.clientWidth - this.$refs.moveDiv.clientWidth;
? ? ? document.getElementsByTagName('html')[0].addEventListener('mousemove', this.mouseMoveFn);
? ? ? document.getElementsByTagName('html')[0].addEventListener('mouseup', this.moseUpFn);
? ? }
? }
};
</script>

<style scoped>
.slide-check-tip{
? position: absolute;
? display: inline-block;
? top: 0px;
? right: -85px;
? /* border: 1px solid red; */
? color: #999;
? font-size: smaller;
}
.drag {
? position: relative;
? background-color: #e8e8e8;
? width: 70%;
? height: 34px;
? line-height: 34px;
? text-align: center;
}
.handler {
? width: 40px;
? height: 32px;
? border: 1px solid #ccc;
? cursor: move;
}
.handler_bg {
? background: #fff
? ? url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTEyNTVEMURGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTEyNTVEMUNGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MTc5NzNmZS02OTQxLTQyOTYtYTIwNi02NDI2YTNkOWU5YmUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YiRG4AAAALFJREFUeNpi/P//PwMlgImBQkA9A+bOnfsIiBOxKcInh+yCaCDuByoswaIOpxwjciACFegBqZ1AvBSIS5OTk/8TkmNEjwWgQiUgtQuIjwAxUF3yX3xyGIEIFLwHpKyAWB+I1xGSwxULIGf9A7mQkBwTlhBXAFLHgPgqEAcTkmNCU6AL9d8WII4HOvk3ITkWJAXWUMlOoGQHmsE45ViQ2KuBuASoYC4Wf+OUYxz6mQkgwAAN9mIrUReCXgAAAABJRU5ErkJggg==')
? ? no-repeat center;
}
.handler_ok_bg {
? background: #fff
? ? url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDlBRDI3NjVGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDlBRDI3NjRGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphNWEzMWNhMC1hYmViLTQxNWEtYTEwZS04Y2U5NzRlN2Q4YTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==')
? ? no-repeat center;
}
.drag_bg {
? background-color: #7ac23c;
? height: 34px;
? width: 0px;
}
.drag_text {
? position: absolute;
? top: 0px;
? width: 100%;
? color: #333;
? text-align: center;
? -moz-user-select: none;
? -webkit-user-select: none;
? user-select: none;
? -o-user-select: none;
? -ms-user-select: none;
}
</style>

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

相關(guān)文章

  • vue?為什么要封裝全局組件引入

    vue?為什么要封裝全局組件引入

    這篇文章主要介紹了vue為什么要封裝全局組件引入,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-07-07
  • 關(guān)于console.log打印結(jié)果是?[object?Object]的解決

    關(guān)于console.log打印結(jié)果是?[object?Object]的解決

    這篇文章主要介紹了關(guān)于console.log打印結(jié)果是?[object?Object]的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • VScode更新后安裝vetur仍無法格式化vue文件的解決

    VScode更新后安裝vetur仍無法格式化vue文件的解決

    這篇文章主要介紹了VScode更新后安裝vetur仍無法格式化vue文件的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue中插槽slot的用法詳解

    Vue中插槽slot的用法詳解

    插槽(Slot)是Vue.js中一個非常重要的概念,它極大地提高了組件的復(fù)用性和靈活性,通過插槽,我們可以自定義組件的內(nèi)容,使其能夠適應(yīng)不同的場景,本文將結(jié)合實際案例,詳細(xì)介紹Vue中插槽的基本用法、類型以及高級技巧,需要的朋友可以參考下
    2024-11-11
  • 淺談Vuex的狀態(tài)管理(全家桶)

    淺談Vuex的狀態(tài)管理(全家桶)

    本篇文章主要介紹了淺談Vuex狀態(tài)管理(全家桶),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 簡述vue狀態(tài)管理模式之vuex

    簡述vue狀態(tài)管理模式之vuex

    這篇文章主要介紹了簡述vue狀態(tài)管理模式之vuex,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • vue-echarts高度縮小時autoresize失效的原因和解決辦法

    vue-echarts高度縮小時autoresize失效的原因和解決辦法

    Vue-Echarts是一個基于ECharts封裝的輕量級、易用的圖表組件庫,它允許你在Vue.js應(yīng)用中方便地集成ECharts,這是一個強大而直觀的數(shù)據(jù)可視化庫,本文給大家介紹了vue-echarts高度縮小時autoresize失效的原因和解決辦法,需要的朋友可以參考下
    2024-12-12
  • vue改變循環(huán)遍歷后的數(shù)據(jù)實例

    vue改變循環(huán)遍歷后的數(shù)據(jù)實例

    今天小編就為大家分享一篇vue改變循環(huán)遍歷后的數(shù)據(jù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue2遞歸組件實現(xiàn)樹形菜單

    Vue2遞歸組件實現(xiàn)樹形菜單

    這篇文章主要為大家詳細(xì)介紹了Vue2遞歸組件實現(xiàn)樹形菜單的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • vue3?setup語法糖各種語法新特性的使用方法(vue3+vite+pinia)

    vue3?setup語法糖各種語法新特性的使用方法(vue3+vite+pinia)

    這篇文章主要介紹了vue3?setup語法糖各種語法新特性的使用(vue3+vite+pinia),本文主要是記錄vue3的setup語法糖的各種新語法的使用方法,需要的朋友可以參考下
    2022-09-09

最新評論

蓝山县| 皋兰县| 会昌县| 潮安县| 多伦县| 怀安县| 博白县| 苍梧县| 蒙阴县| 兴仁县| 穆棱市| 汝阳县| 开鲁县| 驻马店市| 资溪县| 柘城县| 武胜县| 绵阳市| 洛隆县| 马山县| 天全县| 手机| 墨江| 贡觉县| 长岛县| 安国市| 娄底市| 宁阳县| 涿鹿县| 静安区| 民权县| 富川| 台安县| 重庆市| 余姚市| 丽江市| 原平市| 庄河市| 五原县| 东乡县| 玛纳斯县|