Vue标尺插件使用详解

本文为大家分享了Vue标尺插件使用的具体代码,供大家参考,具体内容如下

可根据高和宽度自适应,主要传值为宽度和距离零刻度的距离,代码和图片如下。

<template>
    <div class="demoRule">
        <el-row class=" main">
            <div class="rightBorder" v-if="duiData&&duiData.length>0"></div>
            <div class="ruleF" v-for="(item,indexDui) in duiData" :key="indexDui" :style="{'height':(duiData&&duiData.length>0)?(100/duiData.length)+'%':'100%'}">
                <div class="content" :style="{'border-top':(indexDui==0?'1.5px solid #9c9c9c':'')}">
                    <div class="faRe" v-for="(itemF,indexF) in item.faReData" :key="indexF" :style="{'right':itemF.right}"> (发热)</div>
                    <div class="boxes" v-for="(itemDuo,indexDuo) in item.duoData" :key="indexDuo" :style="{'width':itemDuo.width,'right':itemDuo.right,'background':colorData[itemDuo.color],}">{{itemDuo.content}} </div>
                </div>
                <div v-for="(itemNum, indexNum) in 24 " :key="indexNum" class="ruleBody" :style="{'margin-right':(indexNum==0?'2%':'')}">
                    <div class="num" v-if="indexDui%2==0">{{itemNum*50}}</div>
                </div>
            </div>
        </el-row>
    </div>
</template>
<script>

export default {
    data () {
        return {
            colorData: {
                1: "#aad494",
                2: "#aab6dc",
                3: "#faf5b3",
                4: "#c5acd3",
                5: "#faa5a5",
                6: "#faacc4",
            },
            duiData: [
                {
                    duoData: [
                        {
                            width: "5%",
                            right: "0%",
                            color: "1",
                            content: "爽肤水",
                        },
                        {
                            width: "8%",
                            right: "26%",
                            color: "2",
                            content: "康师傅",
                        }, {
                            width: "6%",
                            right: "75%",
                            color: "3",
                            content: "电风扇",
                        }
                    ],
                    faReData: [
                        { right: "3%", },
                        { right: "36%", },
                        { right: "86%", }
                    ],
                },
                {
                    duoData: [
                        {
                            width: "3%",
                            right: "25%",
                            color: "4",
                            content: "娃哈哈",
                        },
                        {
                            width: "7%",
                            right: "56%",
                            color: "5",
                            content: "集装箱",
                        }, {
                            width: "7%",
                            right: "85%",
                            color: "6",
                            content: "意大利炮",
                        }
                    ],
                    faReData: [
                        { right: "5%", },
                        { right: "66%", },
                        { right: "76%", }
                    ],
                },
                {
                    duoData: [
                        {
                            width: "5%",
                            right: "5%",
                            color: "1",
                            content: "爽肤水",
                        },
                        {
                            width: "8%",
                            right: "26%",
                            color: "2",
                            content: "康师傅",
                        }, {
                            width: "6%",
                            right: "75%",
                            color: "3",
                            content: "电风扇",
                        }
                    ],
                    faReData: [
                        { right: "3%", },
                        { right: "36%", },
                        { right: "86%", }
                    ],
                },
                {
                    duoData: [
                        {
                            width: "3%",
                            right: "25%",
                            color: "4",
                            content: "娃哈哈",
                        },
                        {
                            width: "7%",
                            right: "56%",
                            color: "5",
                            content: "集装箱",
                        }, {
                            width: "7%",
                            right: "85%",
                            color: "6",
                            content: "意大利炮",
                        }
                    ],
                    faReData: [
                        { right: "5%", },
                        { right: "66%", },
                        { right: "76%", }
                    ],
                },
                {
                    duoData: [
                        {
                            width: "5%",
                            right: "5%",
                            color: "1",
                            content: "爽肤水",
                        },
                        {
                            width: "8%",
                            right: "26%",
                            color: "2",
                            content: "康师傅",
                        }, {
                            width: "6%",
                            right: "75%",
                            color: "3",
                            content: "电风扇",
                        }
                    ],
                    faReData: [
                        { right: "3%", },
                        { right: "36%", },
                        { right: "86%", }
                    ],
                },
                {
                    duoData: [
                        {
                            width: "3%",
                            right: "25%",
                            color: "4",
                            content: "娃哈哈",
                        },
                        {
                            width: "7%",
                            right: "56%",
                            color: "5",
                            content: "集装箱",
                        }, {
                            width: "7%",
                            right: "85%",
                            color: "6",
                            content: "意大利炮",
                        }
                    ],
                    faReData: [
                        { right: "5%", },
                        { right: "66%", },
                        { right: "76%", }
                    ],
                },
                {
                    duoData: [
                        {
                            width: "5%",
                            right: "5%",
                            color: "1",
                            content: "爽肤水",
                        },
                        {
                            width: "8%",
                            right: "26%",
                            color: "2",
                            content: "康师傅",
                        }, {
                            width: "6%",
                            right: "75%",
                            color: "3",
                            content: "电风扇",
                        }
                    ],
                    faReData: [
                        { right: "3%", },
                        { right: "36%", },
                        { right: "86%", }
                    ],
                },
                {
                    duoData: [
                        {
                            width: "3%",
                            right: "25%",
                            color: "4",
                            content: "娃哈哈",
                        },
                        {
                            width: "7%",
                            right: "56%",
                            color: "5",
                            content: "集装箱",
                        }, {
                            width: "7%",
                            right: "85%",
                            color: "6",
                            content: "意大利炮",
                        }
                    ],
                    faReData: [
                        { right: "5%", },
                        { right: "66%", },
                        { right: "76%", }
                    ],
                },
            ],

        };
    },
    watch: {},
    created () {

    },
    mounted () {
        // ruleF    
    },
    methods: {}
};
</script>
<style lang="scss" scoped>
.demoRule {
    width: calc(100% - 30px);
    height: calc(100vh - 131px);
    background: #f3f3f3;
    padding: 15px;
}
.main {
    width: 95%;
    height: 95%;
    margin: 0px auto;
    margin-top: 1%;
    padding: 10px;
    border: 1px solid #eaeaea;
    position: relative;
    // background: white;
}
.rightBorder {
    position: absolute;
    width: 1.5px;
    height: calc(100% - 20px);
    background: #c3c3c3;
    top: 10px;
    right: calc(2% + 7px);
    z-index: 100;
}

.ruleF {
    width: 100%;
    font-size: 12px;
    color: #909399;
}
.content {
    overflow: hidden;
    position: relative;
    width: 96%;
    margin-left: 2%;
    height: calc(100% - 30px);
    border-left: 1.5px solid #777777;
    background: #ffffff;
    // border-right: 1.5px solid #777777;
}
.faRe {
    z-index: 101;
    position: absolute;
    color: red;
    top: 5px;
}
.boxes {
    z-index: 1;
    height: 100%;
    position: absolute;
    top: 0px;
    color: #0a2731;
    justify-content: center;
    align-items: center;
    text-align: center;
    display: flex;
    font-weight: bold;
}
.ruleBody {
    width: 4%;
    height: 30px;
    background: url("../../assets/images/rule.png");
    background-repeat: no-repeat;
    background-size: 100% 100%;
    float: right;
}
.num {
    position: relative;
    margin-left: -10px;
    z-index: 100;
    margin-top: 13px;
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jQuery实现腾讯信用界面(自制刻度尺)样式

    依据我现有的知识,在前端上"简易"的实现了腾讯信用的界面,同时自己自制了一个竖直的刻度尺插件,曲线的位置可以根据传入的数值动态的改变,这次主要也想总结一下关于jQuery中extend的方法,也是我们在写插件的时候常用的方法 效果图 jQuery中的extend方法 这里我参考了前辈的博客,在前辈博客中可以进行更深一步的学习: 文档中给的解释是:jQuery.extend()函数主要是用于将一个或多个对象的内容合并到目标对象上,该函数可以将一个或多个对象的成员属性和方法复制到指定的对象

  • 微信小程序实现带刻度尺滑块功能

    摘要: 与自带的slider不同的是,它是通过手势滑动标尺得到取值,而不是通过滑动滑块本身. 效果图 场景 当一屏显示不下,例如年龄体重选择,金额选择等大区间需要的选择器,相比自带的picker要直观一些. 思路: 先画一个scrollView 2 装进canvas lineTo画刻度线段,lineTo+fill画出三角形游标,fillText描绘文本标签 通过bindscroll监听刻度尺触摸事件 渲染取值到页面 基本布局 <scroll-view scroll-x="true"

  • Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法

    需求: 1. 页面部分元素的尺寸需要根据实际打开时浏览器尺寸进行设置: 2. 页面打开后,调节浏览器窗口大小时需要动态调节部分元素的尺寸: 需要注意的点: window.onresize只能在项目中一处进行引用触发,如果在多个地方进行引用触发,会导致只有1个触发事件生效. 解决"多个组件都需要触发"的方案只能是通过一个地方触发后通过组件间通信进行触发. (以调节class为myDiv的div的宽度为例) 解决需求1的方案: html <template> <div c

  • Vue标尺插件使用详解

    本文为大家分享了Vue标尺插件使用的具体代码,供大家参考,具体内容如下 可根据高和宽度自适应,主要传值为宽度和距离零刻度的距离,代码和图片如下. <template>     <div class="demoRule">         <el-row class=" main">             <div class="rightBorder" v-if="duiData&&a

  • vue better-scroll插件使用详解

    什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在 这里 .better-scroll 也很强大,不仅可以做普通的滚动列表,还可以做轮播图.picker 等等. 在需要的文件中添加 import BScorll from 'better-scroll'; 引用的示例代码: let scroll = new BScroll(Dom对象, {//options startX: 0, star

  • Vue.js图片预览插件使用详解

    Vue.js 是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动. 如果你想在深入学习 Vue 之前对它有更多了解,我们制作了一个视频,带您了解其核心概念和一个示例工程. 如果你已经是有经验的前端开发者,想知道 Vue

  • 基于Vue单文件组件详解

    本文将详细介绍Vue单文件组件 概述 在很多 Vue 项目中,使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页面内指定一个容器元素. 这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图.但当在更复杂的项目中,或者前端完全由 JavaScript 驱动的时候,下面这些缺点将变得非常明显: 1.全局定义 (Global definitions) 强制要求每个 compon

  • vue axios用法教程详解

    axios是vue-resource后出现的Vue请求数据的插件.vue更新到2.0之后,作者尤大就宣告不再对vue-resource更新,而是推荐的axios. 下面我们来使用axios npm install axios --save-dev import axios from "axios" 这时候如果在其它的组件中,是无法使用 axios 命令的.但如果将 axios 改写为 Vue 的原型属性,就能解决这个问题 1 1.    Vue.prototype.$ajax=axio

  • Electron + vue 打包桌面操作流程详解

    提前准备一个vue项目,也可以使用初始的vue项目 vue init webpack 安装到后边有的会出现报错,可以忽略,启动npm run dev 启动成功就可以 在vue项目下执行下载以下依赖,会用到 cnpm install electron --save-dev cnpm install electron-packager --save-dev //这个是打成exe文件的插件,之后要用,提前下载好 获取Electron的资源 git clone https://github.com/el

  • 使用vue cli4.x搭建vue项目的过程详解

    cli-4.x已经发布好久了,斟酌了好久,还是决定将原来的cli-2.x升级到4.x,详细的升级过程可以戳这里 1.创建项目 vue create vuetest 2.选择配置方式 ? Please pick a preset: (Use arrow keys) ☜(使用箭头键) > default (babel, eslint) ☜(使用默认的配置,会安装babel和eslint) Manually select features ☜(手动配置) 这里我选择的是手动配置(使用↑ ↓箭头切换,E

  • Vue Router应用方法详解

    目录 服务端路由 路由的应用场景 路由 监听浏览器 hashchange 事件实现路由 使用Vue Router+Vue2实现路由 服务端路由 服务端路由时指的是服务器根据用户访问的 URL 路径返回不同的响应结果. 在传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服务端获得全新的 HTML页面,然后重新加载整个页面. 然而,在单页面应用中,客户端的 JavaScript 可以拦截页面的跳转请求,动态获取新的数据,无需重新加载的情况下更新当前页面. 这样通常可以带来更顺滑的用户体验

  • 基于Bootstrap3表格插件和分页插件实例详解

    首先看下实现效果图,如果觉得还不错,请参考实现代码. 上面数据 下面分页 使用方法 1 导入bootstrap的css <link rel="stylesheet" href="css/v3/bootstrap.min.css"> 2 导入jquery <script src="js/jquery-1.10.1.min.js" type="text/javascript"></script>

  • Vue.extend构造器的详解

    Vue.extend构造器的详解 1.简单介绍 Vue.extend(options) 参数:对象 用法:使用Vue构造器,创建一个"子类",参数是一个包含组件选项的对象,其中,data选项中必须是函数 描述:Vue.extend返回的是一个"扩展实例构造器",也就是预设了部分选项的Vue的实例构造器,它常常服务于Vue.component用来生成组件,可以简单理解为当在模板中遇到该组件作为标签的自定义元素时,会自动调用"扩展实例构造器"来生产组

随机推荐