DataV 自定义边框样式 轮播表hover效果 数字翻牌器

文章详细描述了一个HTML代码片段,展示了如何使用el-progress、dv-digital-flop和dv-scroll-board等组件,并利用鼠标事件如mousemove、mouseleave和mouseover实现动态效果,包括进度条显示、数字翻牌器和轮播表的互动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 整体代码
<div>
    <dv-border-box-9 :color="['#1b3883', '#1b3882']">
        <div class="flexbox">
            <div>
                <el-progress type="circle" :percentage="45" :width="100" :stroke-width="15"
                    :color="colors"></el-progress>
            </div>
            <div class="m-t-20">
                <p class="t_center f-z-18 f-c-f">当月资产变动</p>
                <dv-digital-flop :config="assetChangeCount" style="width:200px;height:50px;" />
            </div>
        </div>
    </dv-border-box-9>
    
    <div class="m-t-10"></div> // 增加上边距
    
    <div @mousemove="move">
        <div class="table" @mouseleave="leave">
            <dv-scroll-board :config="currentChangeAssets" style="width:350px;height:170px"
                @click="goCompanyDetails" @mouseover="over" class="warningInfo" />
            <p v-if="showChangeHover" class="dv-text"
                :style="{ top: dvText.keyY, left: dvText.keyX }">
                {{ dvText.name }}
            </p>
        </div>
    </div>
</div>
  • dv-border-box-9标签中:
  • :color="['#1b3883', '#1b3882']" 自定义边框颜色,组件默认为渐变色(所以有两个)想要单色的话输入同一种颜色即可
  • el-progress使用ele进度条组件:
  • type="circle" 定义圆形还是条形
  • :percentage="45" 绑定进度条要显示的数值
  • :width="100" 定义进度条的占位大小(即长和宽)
  • :stroke-width="15" 定义进度条宽度
  • :color="colors" 定义不同进度数值对应不同颜色显示
colors: [
    { color: '#AEBFDF', percentage: 20 },
    { color: '#95ABD4', percentage: 40 },
    { color: '#7C97C9', percentage: 60 },
    { color: '#6282BF', percentage: 80 },
    { color: '#496EB4', percentage: 100 }
],

  • dv-digital-flop标签为数字翻牌器
 assetChangeCount: {
    number: [45564],
    content: '{nt}家',
    style: {
        fontSize: 30,
        fill: 'rgb(9, 71, 228)'
    }
},

  • dv-scroll-board标签中:
  • :config="currentChangeAssets" 用来绑定要展示的数据
currentChangeAssets: {
    header: ['公司名称', '变动金额', '到期日期'], // 表头信息
    data: [
        ['1公司', '***', '2023-12-31'],
        ['1公司', '***', '2023-12-31'],
        ['1公司', '***', '2023-12-31'],
        ['1公司', '***', '2023-12-31'],
        ['1公司', '***', '2023-12-31'],
        ['1公司', '***', '2023-12-31'],
        ['1公司', '***', '2023-12-31'],
        ['1公司', '***', '2023-12-31'],
        ['1公司', '***', '2023-12-31'],
    ],
    align: ['center'], // 对其方式
    // index: true, // 是否显示索引
    headerHeight: 30, // 设置表头高度
    headerBGC: 'rgb(27, 56, 131, 0.7)', // 表头背景颜色
    oddRowBGC: 'rgb(0, 0, 0, 0)', // 奇数颜色(透明)
    evenRowBGC: 'rgb(0, 0, 0, 0)' // 偶数颜色(透明)
},
  • style="width:600px;height:320px" 定义轮播表的宽高

  • data中定义
data () {
    return {
        dvText: {
                    name: '',
                    keyY: '',
                    keyX: '',
                },
        showChangeHover: false, // 定义预警信息hover是否显示
    }
}
  • methods中定义
  • @mousemove="move" 鼠标移入
move(e) {
    //将获取的值x轴、y轴的值给悬浮框 用来定位到单元格上.
    //-1200 -500凭自己感觉调 因为每个表格在页面的位置都不一样
    this.dvText.keyX = e.pageX - 680 + 'px' // e.pageX - 所选的数值跟页面的相对位置有关系 就是hover之后显示信息的位置
    this.dvText.keyY = e.pageY - 235 + 'px' // 
},
  • @mouseleave="leave" 鼠标移出
leave() {
    //隐藏单元格
    this.showChangeHover = false
},
  • @mouseover="over" 鼠标移入
over(v) {
    this.showChangeHover = true
    //v.ceil拿到单元格数据
    this.dvText.name = v.ceil
    //没有值则直接隐藏悬浮框 不然如果设置padding会有背景
    if (this.dvText.name === undefined) {
        this.showChangeHover = false
    }
},
  • 定义鼠标移入手势
.warningInfo {
    cursor: pointer;
}

### 关于DataV轮播表样式修改时滚动卡顿的解决方案 在使用DataV插件实现滚动列表功能时,可能会遇到滚动过程中出现卡顿的情况。以下是针对该问题的具体分析与解决方法: #### 1. 插件特性概述 DataV插件中的滚动列表组件具有较强的可移植性和简易性[^1]。然而,在实际应用中,如果未优化渲染性能,则可能出现滚动卡顿的现象。 #### 2. CSS层面的优化 为了减少滚动过程中的卡顿现象,可以通过CSS属性提升动画流畅度。例如,通过设置`transform: translateZ(0)`来强制浏览启用GPU加速渲染。此技术可以显著改善因复杂计算引起的帧率下降问题[^2]。 对于具体的实施方式,假设轮播图的最外层容名为`.wrapBox`,则可以在样式文件中加入如下代码: ```css .wrapBox { transform: translateZ(0); } ``` 上述代码的作用在于触发硬件加速机制,从而减轻CPU负担并提高动画执行效率。 #### 3. 自定义Tooltip功能 尽管DataV插件本身不支持鼠标悬停显示详细信息(即Tooltip),但这并不妨碍开发者自行扩展这一功能。通常情况下,可通过监听事件绑定自定义行为完成需求。例如,利用JavaScript动态创建提示框,并将其定位到目标元素附近。 下面是一个简单的示例脚本片段用于演示如何添加Tooltip效果: ```javascript document.querySelectorAll('.item').forEach(item => { item.addEventListener('mouseenter', function() { const tooltip = document.createElement('div'); tooltip.className = 'tooltip'; tooltip.textContent = this.dataset.tooltip; document.body.appendChild(tooltip); // 定位逻辑 const rect = this.getBoundingClientRect(); tooltip.style.top = `${rect.bottom + window.scrollY}px`; tooltip.style.left = `${rect.left + window.scrollX}px`; setTimeout(() => tooltip.remove(), 2000); // 延迟移除 }); }); ``` 注意:以上代码仅为示意用途,请根据实际情况调整选择名称以及数据源字段名等内容。 #### 4. 性能调优建议 除了运用CSS技巧之外,还应关注其他可能影响表现的因素,比如DOM节点数量过多或者图片资源加载缓慢等问题。合理控制每页展示条目数,并预加载必要素材均有助于缓解整体压力。 --- ### 结论 综上所述,要有效应对DataV轮播表样式的滚动卡顿状况,可以从以下几个方面入手:一是借助CSS手段开启图形处理辅助;二是依据项目特点开发专属交互模块;三是持续监控运行状态并对潜在瓶颈予以修正。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值