·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

el-scrollbar使用以及滚动到指定的位置

716 3
发表于 2022-6-29 16:54:43 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
浏览器默认的滚动条不太美观而且在ie下不能调整样式,在element-ui中有个隐藏的组件,在官网上是没有对应的api的,那就是<el-scrollbar>,这个组件的滚动条比原生的还是好看些的

props: {
  native: Boolean,
  wrapStyle: {}, // 外层盒子的样式
  wrapClass: {}, // 外层盒子的class
  viewClass: {}, // 内层盒子的class
  viewStyle: {}, // 内层盒子的样式
  noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能
  tag: {
    type: String,
    default: 'div'
  }
}

实践定位 : VUE3        在DISCUZ中

this.$refs.map_main.wrap$.scrollTop = this.map_y;  //this.map_y=坐标值
this.$refs.map_main.wrap$.scrollLeft = this.map_x;
DZ写法
this.{$_TRC[DL]}refs.map_main.wrap{$_TRC[DL]}.scrollTop = this.map_y;
this.{$_TRC[DL]}refs.map_main.wrap{$_TRC[DL]}.scrollLeft = this.map_x;
我要说一句 收起回复

评论3

Discuz智能体Lv.8 发表于 2025-3-17 23:52:54 | 查看全部
在Discuz中,如果你想使用`el-scrollbar`组件来实现自定义滚动条,并且需要滚动到指定的位置,可以参考以下步骤和代码示例。

### 1. 引入`el-scrollbar`组件
首先,确保你已经引入了`element-ui`库,并且在你的Vue组件中注册了`el-scrollbar`组件。

  1. import { ElScrollbar } from 'element-ui';

  2. export default {
  3.   components: {
  4.     ElScrollbar
  5.   },
  6.   // 其他代码...
  7. }
复制代码


### 2. 使用`el-scrollbar`组件
在你的模板中使用`el-scrollbar`组件,并为其设置`ref`以便在代码中引用。

  1. <template>
  2.   <el-scrollbar ref="map_main" :wrap-style="wrapStyle" :wrap-class="wrapClass" :view-class="viewClass" :view-style="viewStyle" :noresize="noresize" :tag="tag">
  3.     <!-- 你的内容 -->
  4.   </el-scrollbar>
  5. </template>
复制代码


### 3. 设置滚动位置
在你的Vue组件中,使用`this.$refs`来访问`el-scrollbar`组件的`wrap$`属性,并设置`scrollTop`和`scrollLeft`来滚动到指定位置。

  1. export default {
  2.   data() {
  3.     return {
  4.       map_y: 0, // 垂直滚动位置
  5.       map_x: 0, // 水平滚动位置
  6.       wrapStyle: {}, // 外层盒子的样式
  7.       wrapClass: {}, // 外层盒子的class
  8.       viewClass: {}, // 内层盒子的class
  9.       viewStyle: {}, // 内层盒子的样式
  10.       noresize: false, // 是否优化性能
  11.       tag: 'div' // 外层标签
  12.     };
  13.   },
  14.   methods: {
  15.     scrollToPosition() {
  16.       this.$refs.map_main.wrap$.scrollTop = this.map_y;
  17.       this.$refs.map_main.wrap$.scrollLeft = this.map_x;
  18.     }
  19.   },
  20.   // 其他代码...
  21. }
复制代码


### 4. 在Discuz中的写法
在Discuz中,由于模板引擎的语法限制,你可能需要使用`{$_TRC}`来代替`$`符号。因此,代码可以写成如下形式:

  1. this.{$_TRC}refs.map_main.wrap{$_TRC}.scrollTop = this.map_y;
  2. this.{$_TRC}refs.map_main.wrap{$_TRC}.scrollLeft = this.map_x;
复制代码


### 5. 调用方法
你可以在需要的时候调用`scrollToPosition`方法来滚动到指定位置。

  1. this.scrollToPosition();
复制代码


### 6. 注意事项
- 确保`el-scrollbar`组件的`wrap$`属性是可用的,并且`scrollTop`和`scrollLeft`属性能够正确设置。
- 如果`el-scrollbar`组件的容器尺寸不会发生变化,设置`noresize`为`true`可以优化性能。

通过以上步骤,你可以在Discuz中使用`el-scrollbar`组件来实现自定义滚动条,并且能够滚动到指定的位置。如果你有更多问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-19 21:56:23 | 查看全部
在Discuz中,如果你想使用`el-scrollbar`组件来实现自定义滚动条,并且需要滚动到指定的位置,可以参考以下步骤和代码示例。

### 1. 引入`el-scrollbar`组件
首先,确保你已经引入了`element-ui`库,并且在你的Vue组件中注册了`el-scrollbar`组件。

  1. import { ElScrollbar } from 'element-ui';

  2. export default {
  3.   components: {
  4.     ElScrollbar
  5.   },
  6.   // 其他代码...
  7. }
复制代码


### 2. 使用`el-scrollbar`组件
在你的模板中使用`el-scrollbar`组件,并为其设置`ref`以便在代码中引用。

  1. <template>
  2.   <el-scrollbar ref="map_main" :wrap-style="wrapStyle" :wrap-class="wrapClass" :view-style="viewStyle">
  3.     <!-- 你的内容 -->
  4.   </el-scrollbar>
  5. </template>
复制代码


### 3. 设置滚动位置
在Vue3中,你可以通过`this.$refs`来访问`el-scrollbar`组件的实例,并通过`wrap$`属性来设置滚动位置。

  1. export default {
  2.   data() {
  3.     return {
  4.       map_y: 0,
  5.       map_x: 0,
  6.       wrapStyle: {}, // 外层盒子的样式
  7.       wrapClass: {}, // 外层盒子的class
  8.       viewStyle: {} // 内层盒子的样式
  9.     };
  10.   },
  11.   methods: {
  12.     scrollToPosition() {
  13.       this.$refs.map_main.wrap$.scrollTop = this.map_y;
  14.       this.$refs.map_main.wrap$.scrollLeft = this.map_x;
  15.     }
  16.   }
  17. };
复制代码


### 4. 在Discuz中的写法
在Discuz中,由于模板引擎的语法限制,你可能需要使用`{$_TRC}`来代替`$`符号。因此,代码可以写成:

  1. this.{$_TRC}refs.map_main.wrap{$_TRC}.scrollTop = this.map_y;
  2. this.{$_TRC}refs.map_main.wrap{$_TRC}.scrollLeft = this.map_x;
复制代码


### 5. 注意事项
- `el-scrollbar`是`element-ui`中的一个隐藏组件,官方文档中没有详细的API说明,因此在使用时需要参考源码或社区中的示例。
- 如果你需要兼容IE浏览器,确保`element-ui`的版本支持IE,并且测试滚动条的行为是否符合预期。
- 如果`container`的尺寸不会发生变化,可以设置`noresize`属性为`true`以优化性能。

### 6. 示例代码
以下是一个完整的示例代码:

  1. <template>
  2.   <el-scrollbar ref="map_main" :wrap-style="wrapStyle" :wrap-class="wrapClass" :view-style="viewStyle">
  3.     <div style="width: 2000px; height: 2000px;">
  4.       <!-- 你的内容 -->
  5.     </div>
  6.   </el-scrollbar>
  7. </template>

  8. <script>
  9. import { ElScrollbar } from 'element-ui';

  10. export default {
  11.   components: {
  12.     ElScrollbar
  13.   },
  14.   data() {
  15.     return {
  16.       map_y: 500,
  17.       map_x: 500,
  18.       wrapStyle: { height: '500px' },
  19.       wrapClass: 'custom-wrap',
  20.       viewStyle: { padding: '20px' }
  21.     };
  22.   },
  23.   mounted() {
  24.     this.scrollToPosition();
  25.   },
  26.   methods: {
  27.     scrollToPosition() {
  28.       this.{$_TRC}refs.map_main.wrap{$_TRC}.scrollTop = this.map_y;
  29.       this.{$_TRC}refs.map_main.wrap{$_TRC}.scrollLeft = this.map_x;
  30.     }
  31.   }
  32. };
  33. </script>

  34. <style>
  35. .custom-wrap {
  36.   border: 1px solid #ccc;
  37. }
  38. </style>
复制代码


通过以上步骤,你可以在Discuz中使用`el-scrollbar`组件,并实现滚动到指定位置的功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-19 21:59:22 | 查看全部
在Discuz中,如果你想使用`el-scrollbar`组件来实现自定义滚动条,并且需要滚动到指定的位置,可以参考以下步骤和代码示例。

### 1. 引入`el-scrollbar`组件
首先,确保你已经引入了`element-ui`库,并且在你的Vue组件中使用了`el-scrollbar`组件。

  1. <template>
  2.   <el-scrollbar ref="map_main" :wrap-style="wrapStyle" :wrap-class="wrapClass" :view-class="viewClass" :view-style="viewStyle" :noresize="noresize" :tag="tag">
  3.     <!-- 你的内容 -->
  4.   </el-scrollbar>
  5. </template>

  6. <script>
  7. export default {
  8.   data() {
  9.     return {
  10.       wrapStyle: {}, // 外层盒子的样式
  11.       wrapClass: {}, // 外层盒子的class
  12.       viewClass: {}, // 内层盒子的class
  13.       viewStyle: {}, // 内层盒子的样式
  14.       noresize: false, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能
  15.       tag: 'div', // 默认标签
  16.       map_y: 0, // 垂直滚动位置
  17.       map_x: 0 // 水平滚动位置
  18.     };
  19.   },
  20.   methods: {
  21.     scrollToPosition() {
  22.       // 使用 $refs 获取 el-scrollbar 实例并滚动到指定位置
  23.       this.$refs.map_main.wrap$.scrollTop = this.map_y;
  24.       this.$refs.map_main.wrap$.scrollLeft = this.map_x;
  25.     }
  26.   }
  27. };
  28. </script>
复制代码


### 2. 在Discuz中的写法
在Discuz中,由于模板引擎的语法限制,`$refs`的写法需要稍作调整。你可以使用`{$_TRC}`来代替`$`符号。

  1. <template>
  2.   <el-scrollbar ref="map_main" :wrap-style="wrapStyle" :wrap-class="wrapClass" :view-class="viewClass" :view-style="viewStyle" :noresize="noresize" :tag="tag">
  3.     <!-- 你的内容 -->
  4.   </el-scrollbar>
  5. </template>

  6. <script>
  7. export default {
  8.   data() {
  9.     return {
  10.       wrapStyle: {}, // 外层盒子的样式
  11.       wrapClass: {}, // 外层盒子的class
  12.       viewClass: {}, // 内层盒子的class
  13.       viewStyle: {}, // 内层盒子的样式
  14.       noresize: false, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能
  15.       tag: 'div', // 默认标签
  16.       map_y: 0, // 垂直滚动位置
  17.       map_x: 0 // 水平滚动位置
  18.     };
  19.   },
  20.   methods: {
  21.     scrollToPosition() {
  22.       // 使用 $refs 获取 el-scrollbar 实例并滚动到指定位置
  23.       this.{$_TRC}refs.map_main.wrap{$_TRC}.scrollTop = this.map_y;
  24.       this.{$_TRC}refs.map_main.wrap{$_TRC}.scrollLeft = this.map_x;
  25.     }
  26.   }
  27. };
  28. </script>
复制代码


### 3. 调用滚动方法
你可以在需要的时候调用`scrollToPosition`方法来滚动到指定的位置。

  1. this.scrollToPosition();
复制代码


### 4. 注意事项
- `el-scrollbar`是`element-ui`的一个隐藏组件,官方文档中没有详细的API说明,因此在使用时需要参考源码或社区资源。
- 在Discuz中,模板引擎的语法可能会有所不同,确保你使用的语法与Discuz的模板引擎兼容。
- 如果你在Discuz中遇到问题,可以参考DZ插件网(https://www.dz-x.net/)上的相关资源或寻求帮助。

通过以上步骤,你应该能够在Discuz中使用`el-scrollbar`组件并实现滚动到指定位置的功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:52.14.195.185,GMT+8, 2025-4-4 11:31 , Processed in 0.548843 second(s), 88 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表