vue获取当前时间 & 动态加载js包 &全局滚动条优化

本文介绍如何在前端开发中获取当前月份,动态加载JS包,并优化全局滚动条样式,为用户提供更佳的视觉体验。
  1. 获取当前月份
    // 获取当前月份this.period
    getCurrentMonth () {
      let date = new Date()
      let year = date.getFullYear()
      let month = date.getMonth() + 1
      month = (month < 10 ? '0' + month : month)
      this.period = (year.toString() + month.toString())
    }
  1. 根据环境动态加载js包
<script>
   mounted () {
    let head = document.getElementsByTagName('head')[0]
    let script = document.createElement('script')
    script.type = 'text/javascript'
    script.src = `${process.env.NODE_ENV === 'development' ? 'https://fhms-di1.sit.cmft.com' : window.location.origin}/web-apps/apps/api/documents/api.js`
    head.appendChild(script)
  }
</script>
  1. 全局滚动条样式优化
// -------------- 滚动条修改 ---------------
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
  background-color: rgba(0, 0, 0, .2);
}

::-webkit-scrollbar-track {
  border-radius: 5px;
  background-color: rgba(216, 216, 216, .9);
}

::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background-color: rgba(0, 0, 0, .2);
}
参数说明 listLoadingMore({id:&quot;&quot;,id2:function(){},action:function(){},pageNum:10,getNew:undefined,funcArg:undefined,func:function(){},loadingMustTime:0,loadingDom:function(){},loadedDom:function(){},nullDataFunc:function(){},endFunc:function(){},errorFunc:function(){}}); id:滚动条id,不可以是body; id2:滚动列表的id,通过function自行根据情况返回; action:数据来源的ajax地址,插件会自动加上page和length(分别表示请求页数和当前已有记录数),返回格式统一是[{},{}...],此类jsonArray; ajaxType:ajax提交方式,将更改传递数据的方式,默认post; pageNum:每页加载数量,将会根据这个数量判断是否全部加载完成; getNew:自定义获取数据方法; funcArg:自定义获取数据时传递的参数,类型为函数,返回所需参数; childrenTag:列表子项的标签,默认LI; func:非自定义获取数据时,创建每行数据的方法; loadingMustTime:强制最小加载时间,默认0; loadingDom:加载中动画自定义,返回Dom或者HTML代码; loadedDom:完全加载完成动画自定义,返回Dom或者HTML代码; nullDataFunc:数据列表为空时执行的方法; endFunc:每页数据加载完成时执行的方法; errorFunc:ajax获取数据失败时调用的方法。 回调方法 调用本方法初始化后将会得到一个专属的方法集: Object {getNew:function,isFull:function,isRunning:function,isStop:function,loading:function,show:function}; getNew():忽略判断条件,强制执行加载操作。此时数据传递中,page值可能出错,但length值一定正确,请谨慎判断后在执行该方法; isFull(boolean):修改列表加载完成标志。true为全部加载完成,false则相反; isRunning(boolean):修改列表当前是否正在加载中标志。几乎没有使用的机会; isStop(boolean):设置是否停止加载,设置为true时将会阻止未来的所有加载操作; loading():根据当前滚动条的位置,自动判断是否需要加载新数据; show(boolean,boolean):强制设置加载中和加载完成dom的显示或隐藏,true表示显示,false相对。
### 修改 Vue 项目中的全局滚动条样式 在 Vue 项目中实现全局滚动条样式的自定义可以通过多种方式完成。以下是几种常见的方法及其具体实现: #### 方法一:通过 CSS 自定义滚动条样式 可以直接利用 `::-webkit-scrollbar` 和其子伪类来定义滚动条的整体外观和行为[^2]。 ```css /* 定义整个滚动条 */ body::-webkit-scrollbar { width: 8px; } /* 定义滚动条轨道背景颜色 */ body::-webkit-scrollbar-track { background: rgba(10, 28, 92, 0.39); } /* 定义滚动条滑块的背景颜色 */ body::-webkit-scrollbar-thumb { background: rgba(24, 144, 255, 0.1); border-radius: 4px; } /* 当鼠标悬停在滑块上时改变颜色 */ body::-webkit-scrollbar-thumb:hover { background: rgba(145, 214, 191, 0.1); } ``` 此方法适用于基于 Webkit 的浏览器(如 Chrome、Edge),但对于 Firefox 浏览器,则需要额外处理[^1]。 --- #### 方法二:引入第三方库进行配置 如果希望更方便地管理滚动条样式,可以借助专门用于定制滚动条样式的插件,例如 `vue-scroll-div` 或其他类似的工具[^3]。 ##### 示例代码: 安装并注册插件后,在项目的入口文件中统一设置滚动条样式。 ```javascript import Vue from &#39;vue&#39;; import ScrollDiv from &#39;vue-scroll-div&#39;; Vue.use(ScrollDiv, { barStyle: { backgroundColor: &#39;#ff7f50&#39;, // 设置滚动条颜色为橙红色 }, size: 6, // 滚动条宽度 offset: 2 // 偏移量 }); ``` 这种方式不仅简化了开发流程,还能够确保一致性应用到所有组件之中。 --- #### 方法三:使用 Element UI 提供的 `&lt;el-scrollbar&gt;` 组件 对于已经集成有 Element UI 库的应用程序来说,推荐采用内置的 `&lt;el-scrollbar&gt;` 来封装内容区域,并配合相应的 CSS 属性调整视觉效果[^5]。 ```html &lt;template&gt; &lt;el-scrollbar style=&quot;height: 300px;&quot;&gt; &lt;!-- 动态加载的数据列表 --&gt; &lt;/el-scrollbar&gt; &lt;/template&gt; &lt;style scoped&gt; .el-scrollbar__wrap { overflow-x: hidden; /* 隐藏水平方向上的滚动条 */ } /* 调整垂直滚动条的具体表现形式 */ .el-scrollbar__wrap::-webkit-scrollbar { width: 8px; } .el-scrollbar__wrap::-webkit-scrollbar-thumb { background-color: #4caf50; border-radius: 4px; } &lt;/style&gt; ``` 注意这里仅限于指定作用域内的局部覆盖;若需影响全站范围则应将其放置至公共样式表单当中去声明。 --- #### 兼容性注意事项 由于不同平台间存在差异化的渲染机制,因此除了关注主流现代浏览器之外还需兼顾旧版本IE以及非WebKit系列的产品线。特别是Firefox并不完全支持上述提到的标准前缀语法结构,所以可能还需要探索其它替代方案或者接受一定程度的功能降级策略。 --- ### 总结 综上所述,无论是手动编写基础CSS规则还是依赖外部框架辅助都可以很好地达成目标&mdash;&mdash;即美化Vue应用程序里的滚轮界面设计。开发者应当依据实际需求权衡利弊之后再做决定。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值