问题贴 jQuery插件nicescroll问题

本文探讨了一个引入特定插件后的页面加载问题,即页面首次加载时滚动条不显示,需刷新后才可见。通过分析提供的代码片段,介绍了如何利用 jQuery 插件 niceScroll 来定制滚动条样式,并探讨可能的原因及解决方案。

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

引入插件后   页面首次加载时不会出现滚动条display:none  重新刷新页面后才能出现滚动条  这是什么原因? 

源码如下   省略了插件。。。

<style lang="less">
@import "./framework.less";
.ivu-select-dropdown {
border-radius: 0;
}
</style>


<template>
<div class="framework">

<!-- 框架头部 开始 -->
<div class="framework-header">
<!-- logo -->
<div class="header-left">
<img src="../images/logo.svg"></img>
</div>
<!-- 面包屑 -->
<div class="header-middle">
<breadcrumb-nav :currentPath="currentPath"></breadcrumb-nav>
 
</div>

<!-- 左侧内容 -->
<div class="header-right">

<!-- <hr-search :searchItem="searchItem"></hr-search> -->
<sea></sea>
<!-- <Icon type="location" style="width:20px; height:20px;"></Icon> -->
<full-screen v-model="isFullScreen" @on-change="fullscreenChange"></full-screen>
<lock-screen></lock-screen>
<message-tip v-model="mesCount"></message-tip>

<div class="user-dropdown-menu-con">
<Row type="flex" justify="end" align="middle" class="user-dropdown-innercon">
<Dropdown trigger="click" @on-click="handleClickUserDropdown">
<a href="javascript:void(0)">
<span class="main-user-name">{{ name }}</span>
<Icon type="arrow-down-b"></Icon>
</a>
<DropdownMenu slot="list">
<DropdownItem name="ownSpace">个人中心</DropdownItem>
<DropdownItem name="loginout" divided>退出登录</DropdownItem>
</DropdownMenu>
</Dropdown>
<Avatar :src="avatorPath" style="background: #619fe7;margin-left: 10px;"></Avatar>
</Row>
</div>

</div>

</div>
<!-- 框架头部 结束 -->

<!-- 左边菜单栏 开始 -->
<div class="framework-sider" :style="{width: shrink?'60px':'200px', overflow: shrink ? 'visible' : 'hidden'}">
<div class="navicon-con">
<Button type="text" @click="toggleClick" :style="{transform: 'rotateZ(' + (this.shrink ? '-90' : '0') + 'deg)'}">
<Icon type="navicon" size="28"></Icon>
</Button>
</div>



<hr-shrinkable-menu class="shinkable-menu" :shrink="shrink" :menuList="menuList" :icon-size="14" :open-names="openedSubmenuArr" @on-change="handleSubmenuChange"></hr-shrinkable-menu>
</div>
<!-- 左边菜单栏 结束 -->

<div class="framework-tags" :style="{left: shrink?'60px':'200px'}">
<hr-top-tags :pageTagsList="pageTagsList"></hr-top-tags>
</div>

<!-- 内容 开始 -->
<div class="framework-content" :style="{left: shrink?'60px':'200px'}" data-role='page'>
<div class="single-page">
<keep-alive :include="cachePage">
<router-view></router-view>
</keep-alive>
</div>
</div>
 
<!-- 内容 结束 -->
 
</div>
</template>

<script>
import util from "@/libs/util.js";
import breadcrumbNav from "@/hr-components/breadcrumb/breadcrumb-nav.vue";
import shrinkableMenu from "@/hr-components/menu/hr-shrinkable-menu.vue";
import fullScreen from "@/hr-components/full-screen/fullscreen.vue";
import topTags from "@/hr-components/tags-opened/hr-top-tags.vue";
import lockScreen from "@/hr-components/lockscreen/lockscreen.vue";
import hrSearch from "@/hr-components/search/search.vue";
import sea from "@/hr-components/search/sea.vue";
import messageTip from "@/hr-components/message-tip/message-tip.vue";
import Cookies from "js-cookie";
import http from "@/libs/http";
import api from "@/libs/api";

export default {
components: {
breadcrumbNav,
"hr-shrinkable-menu": shrinkableMenu,
"hr-top-tags": topTags,
fullScreen,
lockScreen,
messageTip,
"hr-search": hrSearch,
sea
},
data() {
return {
shrink: false,
openedSubmenuArr: this.$store.state.app.openedSubmenuArr,
isFullScreen: false,
name: "",
avatorPath: "",
searchItem: ""
};
},
computed: {
menuList() {
return this.$store.state.app.menuList;
},
currentPath() {
return this.$store.state.app.currentPath; // 当前面包屑数组
},
pageTagsList() {
return this.$store.state.app.pageOpenedList; // 打开的页面的页面对象
},

//页面缓存
cachePage() {
return this.$store.state.app.cachePage;
},
mesCount() {
return this.$store.state.app.messageCount;
}
},
mounted() {
this.init();
this.changeScroll();
const ws = new WebSocket("ws://192.168.199.107:8090/test");
const _this = this;
ws.onmessage = function(msg) {
_this.$Notice.open({
title: "Notification title",
desc: msg.data,
duration: 2
});
};
},
methods: {
changeScroll() {
$(".framework-content").niceScroll({
cursorcolor: "#FFFF00", // 改变滚动条颜色,使用16进制颜色值
cursoropacitymin: 0, // 当滚动条是隐藏状态时改变透明度, 值范围 1 到 0
cursoropacitymax: 1, // 当滚动条是显示状态时改变透明度, 值范围 1 到 0
cursorwidth: "8px", // 滚动条的宽度,单位:便素
cursorborder: "1px solid #fff", // CSS方式定义滚动条边框
cursorborderradius: "0px", // 滚动条圆角(像素)
horizrailenabled: false,
autohidemode: "scroll"
});
},
changeScroll1() {
$(".framework-sider").niceScroll({
cursorcolor: "#000000", // 改变滚动条颜色,使用16进制颜色值
cursoropacitymin: 0, // 当滚动条是隐藏状态时改变透明度, 值范围 1 到 0
cursoropacitymax: 1, // 当滚动条是显示状态时改变透明度, 值范围 1 到 0
cursorwidth: "8px", // 滚动条的宽度,单位:便素
cursorborder: "1px solid #fff", // CSS方式定义滚动条边框
cursorborderradius: "0px", // 滚动条圆角(像素)
autohidemode: "scroll",
horizrailenabled: false,
railpadding: {
top: 50,
right: 0,
left: 0,
bottom: 0
}
});
},
// changeScroll(){
// debugger
// $(".").niceScroll();
// },
init() {
this.changeScroll();
this.changeScroll1();
this.getHeadUrl();
let pathArr = util.setCurrentPath(this, this.$route.name);
this.$store.commit("updateMenulist");

//判断是否有二级菜单,如果是,那么就记录打开的菜单路由
if (pathArr.length >= 2) {
this.$store.commit("addOpenSubmenu", pathArr[1].name);
}
this.name = Cookies.get("name");
this.checkTag(this.$route.name);
},
async getHeadUrl() {
let params = {};
if (Cookies.get("head")) {
params.picture = Cookies.get("head");
const res = await http.get(api.getPictureUrl, params);
if (res.code === 200) {
this.avatorPath = res.data;
} else {
this.avatorPath =
"https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3448484253,3685836170&fm=27&gp=0.jpg";
}
} else {
this.avatorPath =
"https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3448484253,3685836170&fm=27&gp=0.jpg";
}
},
handleClickUserDropdown(name) {
if (name === "ownSpace") {
util.openNewPage(this, "ownspace_index");
this.$router.push({
name: "ownspace_index"
});
} else if (name === "loginout") {
// 退出登录
this.$store.commit("logout", this);
this.$store.commit("clearOpenedSubmenu");
this.$router.push({
name: "login"
});
}
},
handleSubmenuChange(val) {
// this.$Message.success(val);
this.changeScroll();
this.changeScroll1();
console.log(val);
},
toggleClick() {
this.shrink = !this.shrink;
},
checkTag(name) {
let openpageHasTag = this.pageTagsList.some(item => {
if (item.name === name) {
return true;
}
});
if (!openpageHasTag) {
// 解决关闭当前标签后再点击回退按钮会退到当前页时没有标签的问题
util.openNewPage(
this,
name,
this.$route.params || {},
this.$route.query || {}
);
}
},
fullscreenChange(isFullScreen) {
console.log(isFullScreen);
}
},
watch: {
$route(to) {
this.$store.commit("setCurrentPageName", to.name);
let pathArr = util.setCurrentPath(this, to.name);

if (pathArr.length > 2) {
this.$store.commit("addOpenSubmenu", pathArr[1].name);
}
this.checkTag(to.name);
}
},
created() {
// 显示打开的页面的列表
this.$store.commit("setOpenedList");
}
};
</script>

     

转载于:https://www.cnblogs.com/wangyage/p/8953155.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值