Discuz X show() 系列函数使用小结

当前位置: 首页 » 文章 » Discuz X show() 系列函数使用小结

分类: 文章 762阅读阅读模式

discuz 中 common.js 的 show() 系列函数浮动弹窗的几个有:

showMenu(v),

setMenuPosition(showid, menuid, pos),

showDialog(msg, mode, t, func, cover),

showWindow(k, url, mode, cache, menuv),

showTip(ctrlobj),

showPrompt(ctrlid, evt, msg, timeout)。

 

showMenu(v)

只有一个数组格式的参数 v 例如:{'key1':'value1','key2':'value2','key3':'value3'}

目前,数组 v 支持传递的 key 有:

  1. key 默认值 含义
  2. -----------------------------------------------------------
  3. ctrlid ' ' 控制菜单的 id
  4. showid ctrlid 弹出菜单的 id
  5. menuid showid + '_menu' 显示菜单的 id
  6. evt 'mouseover' 响应函数的事件
  7. pos '43' 菜单位置,"*" 不需要设置位置(详见 setMenuPosition 文档)
  8. duration 2 菜单持续(参见注释1)
  9. timeout 250 菜单持续时间,单位:毫秒
  10. mtype 'menu' 菜单类型(参见注释2)
  11. maxh 500 菜单最大高度,实际高度超过 maxh 时菜单将出现垂直滚动条
  12. layer 1 菜单层级,大于 0 的任意整数
  13. cache 1 是否缓存菜单,0:否 1:是
  14. drag '' 拖拽菜单对象的id,如果希望整个菜单都可以拖拽请设置 drag 为 1
  15. fade 0 淡入淡出效果,0:否 1:是
  16. cover 0 覆盖整个页面,0:否 1:是
  17. zindex JSMENU['zIndex']['menu'] 菜单层叠顺序(参见注释3)

注释1

  • 3:菜单一直显示 除非执行 hideMenu() 或者页面 unload
  • 2:鼠标移开 ctrlObj 及 menuObj 即开始计时 timeout 毫秒后消失
  • 1:鼠标移开 ctrlObj 即开始计时 timeout 毫秒后消失
  • 0:菜单显示即开始计时 timeout 毫秒后消失

注释2

  • menu:普通菜单
  • win:浮窗
  • prompt:提示信息
  • dialog:对话框

注释3

  • JSMENU['zIndex'] = {'win':200,'menu':300,'prompt':400,'dialog':500};

举个例子:鼠标悬浮弹出一个ID为 'aaabbbccc' 的内容的浮窗:

  1. <a href="javascript:void(0);" id="aaabbbccc" onmouseover="showMenu({'ctrlid':'aaabbbccc'});" initialized="true">鼠标悬浮会有内容</a>
  2. <div id="aaabbbccc_menu" style="display: none;">悬浮将会显示我</div>

注意别忘了弹出的标签 ID 是 ctrlid, 被弹出的需要加给 id 加一个_menu 例如 aaabbbccc 是 a 标签 id,aaabbbccc_menu是被弹出内容标签的 id。

 

setMenuPosition(showid, menuid, pos)

  1. showid 弹出菜单的 id
  2. menuid 菜单 id
  3. pos 菜单位置,必须是字串类型,默认值 '43'(参见注释4)

采用基点+方向二元定位法可衍生出几十种菜单位置,基点是指基于 showObj 的某一点

基点:

  • 0:中心
  • 1:左上
  • 2:右上
  • 3:右下
  • 4:左下

方向:

  • 0:中心
  • 1:左上
  • 2:右上
  • 3:右下
  • 4:左下

 

showDialog(msg, mode, t, func, cover)

  1. msg 对话框内容
  2. mode 对话框模式
  3. t 对话框标题
  4. func “确定”执行的函数 可以是一个函数(推荐)也可以是一段 js 代码
  5. cover 是否覆盖整个页面 1:是 0:否

注释5

  • info 没有按钮 / 一般信息
  • notice 有确定按钮 / 通知信息
  • alert 有确定按钮 / 错误信息
  • confirm 有确定和取消按钮 / 确认信息

 

showWindow(k, url, mode, cache, menuv)

  1. k 浮窗的 key
  2. url get 方式 url 表示浮窗请求的地址 post 方式 url 表示浮窗提交的表单 id
  3. mode get 和 post 两种方式
  4. cache 是否缓存浮窗 0:否 1:是(默认值)
  5. menuv showMenu 参数调整,如不指定则使用 showWindow 默认值

隐藏窗口可调用 hideWindow()

 

showTip(ctrlobj)

  1. ctrlobj 显示对象,对象放置于tip属性内,支持HTML标签

举个例子:

  1. <span tip="我会显示出来<br/>还会换行" onmouseover="showTip(this)">鼠标移动到这里</span>

 

showPrompt(ctrlid, evt, msg, timeout)

  1. ctrlid 对象 id,可留空(null)
  2. evt 响应函数的事件(同 showMenu),可留空(null)
  3. msg 显示的内容
  4. timeout 显示持续时间,单位:毫秒

在指定 id 上显示信息。ctrlid 不留空时效果同 showTip,留空时为居中显示(积分增减提示)

 

相关文章