artDialog弹出框使用

精通artDialog:创建高效前端弹出框 artDialog是一个轻量级、可高度定制化的JavaScript弹出框库,它能够快速实现模态窗口的效果,常用于表单提交、信息展示和用户交互提示。相比于其他同类工具,artDialog以简单的API、丰富的功能和良好的浏览器兼容性著称。在Web开发中,兼容性是一个不可忽视的问题。对artDialog弹出框而言,确保在不同浏览器和设备上都能正常工作,是提升用户体验的重要环节。 阅读详情

artDialog弹出框使用

配置参数

名称类型默认值描述
内容
titleString'消息'标题内容
contentString'loading..'消息内容。
1、如果传入的是HTMLElement类型,如果是隐藏元素会给其设置display:block以显示该元素,其他属性与绑定的事件都会完整保留,对话框关闭后此元素又将恢复原来的display属性,并且重新插入原文档所在位置
2、如果没有设定content的值则会有loading的动画
HTMLElement
按钮
okFunctionnull确定按钮回调函数。
函数如果返回false将阻止对话框关闭;函数this指针指向内部api;如果传入true表示只显示有关闭功能的按钮
Boolean
cancelFunctionnull取消按钮回调函数。
函数如果返回false将阻止对话框关闭;函数this指针指向内部api;如果传入true表示只显示有关闭功能的按钮
对话框标题栏的关闭按钮其实就是取消按钮,只不过视觉不同罢了,点击同样触发cancel事件
Boolean
okValString'确定'"确定按钮"文字
cancelValString'取消'"取消按钮"文字
buttonArraynull自定义按钮。
配置参数成员:

name —— 按钮名称

callback —— 按下后执行的函数

focus —— 是否聚焦点

disabled —— 是否标记按钮为不可用状态(后续可使用扩展方法让其恢复可用状态)

 

示例:

参数如:[{name: '登录', callback: function () {}}, {name: '取消'}] 。注意点击按钮默认会触发按钮关闭动作,需要阻止触发关闭请让回调函数返回false
尺寸
widthNumber'auto'设置消息内容宽度,可以带单位。一般不需要设置此,对话框框架会自己适应内容。
如果设置为百分值单位,将会以根据浏览器可视范围作为基准,此时如果浏览器窗口大小被改变其也会进行相应的调整
String
heightNumber'auto'设置消息内容高度,可以带单位。不建议设置此,而应该让内容自己撑开高度。
如果设置为百分值单位,将会以根据浏览器可视范围作为基准,此时如果浏览器窗口大小被改变其也会进行相应的调整
String
位置
fixedBooleanfalse开启静止定位。静止定位是css2.1的一个属性,它静止在浏览器某个地方不动,也不受滚动条拖动影响。(artDialog支持IE6 fixed)
followHTMLElementnull让对话框依附在指定元素附近。
可传入元素ID名称,注意ID名称需要以“#”号作为前缀
String
leftNumber'50%'相对于可视区域的X轴的坐标。
可以使用'0%' ~ '100%'作为相对坐标,如果浏览器窗口大小被改变其也会进行相应的调整
String
topNumber'38.2%'相对于可视区域的Y轴的坐标。
可以使用'0%' ~ '100%'作为相对坐标,如果浏览器窗口大小被改变其也会进行相应的调整
String
视觉
lockBooleanfalse开启锁屏。
中断用户对话框之外的交互,用于显示非常重要的操作/消息,所以不建议频繁使用它,它会让操作变得繁琐
backgroundString'#000'锁屏遮罩颜色
opacityNumber0.7锁屏遮罩透明度
iconStringnull定义消息图标。可定义“skins/icons/”目录下的图标名作为参数名(不包含后缀名)
paddingString'20px 25px'内容与边界填充边距(即css padding)
交互
timeNumbernull设置对话框显示时间。以秒为单位
resizeBooleantrue是否允许用户调节尺寸
dragBooleantrue是否允许用户拖动位置
escBooleantrue是否允许用户按Esc键关闭对话框
高级
idStringnull设定对话框唯一标识。用途:
1、防止重复弹出
2、定义id后可以使用art.dialog.list[youID]获取扩展方法
Number
zIndexNumber1987重置全局zIndex初始值。
用来改变对话框叠加高度。比如有时候配合外部浮动层UI组件,但是它们可能默认zIndex没有artDialog高,导致无法浮动到artDialog之上,这个时候你就可以给对话框指定一个较小的zIndex值。
请注意这是一个会影响到全局的配置,后续出现的对话框叠加高度将重新按此累加。
initFunctionnull对话框弹出后执行的函数
closeFunctionnull对话框关闭前执行的函数。函数如果返回false将阻止对话框关闭。
请注意这不是关闭按钮的回调函数,无论何种方式关闭对话框,close都将执行。
showBooleantrue是否显示对话框

扩展方法

名称描述
close()关闭对话框
show()显示对话框
hide()隐藏对话框
title(value)写入标题。无参数则返回标题容器元素
content(value)向消息容器中写入内容。参数支持字符串、DOM对象,无参数则返回内容容器元素
button(arguments)插入一个自定义按钮。
配置参数成员:

name —— 按钮名称

callback —— 按下后执行的函数

focus —— 是否聚焦点

disabled —— 是否标记按钮为不可用状态(后续可使用扩展方法让其恢复可用状态)

 

示例:

button({
    name: '登录',
    focus: true,
    callback: function () {}
}, {
    name: '取消'
})
follow(element)让对话框吸附到指定元素附近
position(left, top)重新定位对话框
size(width, height)重新设定对话框大小
lock()锁屏
unlock()解锁
time(val)定时关闭(单位秒)

配置参数演示

内容 [content]

1. 传入字符串

art.dialog({
    content: '我支持HTML'
});

2. 传入HTMLElement

备注:1、元素不是复制而是完整移动到对话框中,所以原有的事件与属性都将会保留 2、如果隐藏元素被传入到对话框,会设置display:block属性显示该元素 3、对话框关闭的时候元素将恢复到原来在页面的位置,style display属性也将恢复

art.dialog({
    content: document.getElementById('demoCode_content_DOM'),
    id: 'EF893L'
});

标题 [title]

art.dialog({
    title: 'hello world!'
});

确定取消按钮 [ok & cancel]

备注:回调函数this指向扩展接口,如果返回false将阻止对话框关闭

art.dialog({
    content: '如果定义了回调函数才会出现相应的按钮',
    ok: function () {
    	this.title('3秒后自动关闭').time(3);
        return false;
    },
    cancelVal: '关闭',
    cancel: true //为true等价于function(){}
});

自定义按钮 [button]

备注:回调函数this指向扩展接口,如果返回false将阻止对话框关闭;button参数对应的扩展方法名称也是"button"

art.dialog({
    id: 'testID',
    content: 'hello world!',
    button: [
        {
            name: '同意',
            callback: function () {
                this.content('你同意了').time(2);
                return false;
            },
            focus: true
        },
        {
            name: '不同意',
            callback: function () {
                alert('你不同意')
            }
        },
        {
            name: '无效按钮',
            disabled: true
        },
        {
            name: '关闭我'
        }
    ]
});

定时关闭的消息 [time]

art.dialog({
    time: 2,
    content: '两秒后关闭'
});

防止重复弹出 [id]

art.dialog({
    id: 'testID2',
    content: '再次点击运行看看'
});
art.dialog({id: 'testID2'}).title('3秒后关闭').time(3);

定义消息图标 [icon]

请查看skin/icons目录下的图标

art.dialog({
    icon: 'succeed',
    content: '我可以定义消息图标哦'
});

内容与边界填充边距 [padding]

有时候并不需要默认的内容填充边距,如展示图片与视频

art.dialog({
    padding: 0,
    title: '照片',
    content: '<img src="./images/photo.jpg" width="379" height="500" />',
    lock: true
});

锁屏 [lock & background & opacity]

art.dialog({
    lock: true,
    background: '#600', // 背景色
    opacity: 0.87,	// 透明度
    content: '中断用户在对话框以外的交互,展示重要操作与消息',
    icon: 'error',
    ok: function () {
        art.dialog({content: '再来一个锁屏', lock: true});
        return false;
    },
    cancel: true
});

跟随元素 [follw]

1、标准形式

art.dialog({
    follow: document.getElementById('followTestBtn'),
    content: '让对话框跟着某个元素,一个元素同时只能出现一个对话框'
});

2、使用简写形式 (已经绑定onclick事件,注意此返回值不再是对话框扩展方法)

art('#demoCode_follow_a').dialog({
    content: '让对话框跟着某个元素,一个元素同时只能出现一个对话框'
});

自定义坐标 [left & top]

art.dialog({
    left: 100,
    top: '60%',
    content: '我改变坐标了'
});

创建一个右下角浮动的消息窗口

art.dialog({
    id: 'msg',
    title: '公告',
    content: 'hello world!',
    width: 320,
    height: 240,
    left: '100%',
    top: '100%',
    fixed: true,
    drag: false,
    resize: false
})

设置大小 [width & height]

art.dialog({
    width: '20em',
    height: 55,
    content: '尺寸可以带单位'
});

创建一个全屏对话框

art.dialog({
    width: '100%',
    height: '100%',
    left: '0%',
    top: '0%',
    fixed: true,
    resize: false,
    drag: false
})

静止定位 [fixed]

art.dialog({
    fixed: true,
    content: '请拖动滚动条查看'
});

不许拖拽 [drag & resize]

art.dialog({
    drag: false,
    resize: false,
    content: '禁止拖拽'
});

扩展方法演示

特别说明:扩展方法支持链式操作

获取扩展方法一:直接引用返回

var dialog = art.dialog({
    title: '我是对话框',
    content: '我是初始化的内容'
});
      
dialog.content('对话框内容被扩展方法改变了').title('提示');
      

获取扩展方法二:通过对话框ID

art.dialog({
    id: 'KDf435',
    title: '警告',
    content: '我是初始化的内容'
});
      
art.dialog.list['KDf435'].content('对话框内容被扩展方法改变了');
      

获取扩展方法三:回调函数中this

art.dialog({
    title: '警告',
    content: '我是初始化的内容',
    ok: function () {
        this.content('你点了确定按钮').lock();
        return false;
    },
    init: function () {
        this.content('对话框内容被扩展方法改变了');
    }
});
      

关闭页面所有对话框

var list = art.dialog.list;
for (var i in list) {
    list[i].close();
};
      

按钮接口演示

备注:回调函数如果返回false将阻止对话框关闭

var dialog = art.dialog({
    title: '警告',
    content: '点击管理按钮将让删除按钮可用',
    width: '20em',
    button: [{
    	name: '管理',
        callback: function () {
            this
            .content('我更改了删除按钮')
            .button({
                name: '删除',
                disabled: false
            })
            .lock();
            return false;
        },
        focus: true
    }]
});

dialog.button(
    {
        name: '删除',
        callback: function () {
            alert('delect')
        },
        disabled: true
    }
)
      

标题倒计时

var timer;
art.dialog({
    content: '时间越来越少,越来越少..',
    init: function () {
    	var that = this, i = 5;
        var fn = function () {
            that.title(i + '秒后关闭');
            !i && that.close();
            i --;
        };
        timer = setInterval(fn, 1000);
        fn();
    },
    close: function () {
    	clearInterval(timer);
    }
}).show();

关闭不删除内容

art.dialog({
    id: 'show-hide',
    content: '关闭后阻止对话框被删除,只隐藏对话框',
    close: function () {
        this.hide();
        return false;
    }
}).show();

AJAX高级应用:执行HTML片段中特殊script标签

HTML片段中的<script type="text/dialog"></script>标签包裹的JavaScript将会在artDialog内部执行,其this指向对话框扩展方法,这样可以进一步实现消息内容模块化。

(本例子使用了AJAX,需要在服务器上运行。可打开 ./ajaxContent/login.html 查看源码中的自定义脚本)

var dialog = art.dialog({id: 'N3690',title: false});

// jQuery ajax   
$.ajax({
    url: './ajaxContent/login.html',
    success: function (data) {
        dialog.content(data);
    },
    cache: false
});

插件:iframe应用工具

请新打开新页面查看范例:./iframeTop.html

应用到你的项目

在页面head引入artDialog,其中skin参数表示对话框使用的风格文件(如果项目采用jQuery作为框架,则引用jQuery artDialog版本)。

<script src="artDialog/artDialog.js?skin=default"></script>

如果需要在iframe应用下提供 更好的支持 ,可加载插件:

<script src="artDialog/plugins/iframeTools.js"></script>

配置全局默认参数(可选):

(function (config) {
    config['lock'] = true;
    config['fixed'] = true;
    config['okVal'] = 'Ok';
    config['cancelVal'] = 'Cancel';
    // [more..]
})(art.dialog.defaults);

分类: ArtDialog相关

MobaXterm远程连接频繁掉线?3个SSH保活设置让你告别断连烦恼 本文针对MobaXterm远程连接频繁掉线问题,提供了3个SSH保活设置方案。从基础的SSH心跳机制到进阶的会话超时调整,再到TCP层保活与代理优化,全方位解决断连烦恼。特别适合需要稳定远程连接的开发者和运维人员,有效提升工作效率。 阅读详情

相关推荐

世界坐标系/相机坐标系/图像坐标系 转换

目录一、各坐标系简要介绍二、坐标系转换2.1 世界坐标系转为相机坐标系2.2 相机坐标系转为物理图像坐标系2.3 物理图像坐标系转为图像坐标系2.4 总结2.5 为什么要使用齐次坐标参考文献 一、各坐标系简要介绍 首先介绍数字图像处理领域中的图像坐标系,如上图左图所示,坐标系O_0为图像坐标系,其原点是在图像的左上角,每一个像素通过其所在位置的列数和行数索引 (u,v) 来表示。 另外需要建立图像坐标与物理单位的关系,而后才能将目标的真实世界坐标转换为图像坐标。即建立以物理单位表示的物理图像坐标系(有些文

流觞时光 1万+

Artdialog使用总结

artdialog使用总结artDialog是一个精巧的web对话框组件。 现将常见的使用总结如下:弹出子页面,并传值给子页面art.dialog.data(“id”,id);//给子页面传递过去的值 art.dialog.open(“${request.context.contextPath}/hello.jsp”, { title:’标题’, lock:t...

不见长安见晨雾 2307

CSP-J/S复赛文件组织与freopen读写全攻略,避免爆零

在信息学竞赛的上机考试中,代码能力固然重要,但文件组织与输入输出重定向往往是决定成败的关键细节。许多选手习惯在线评测环境,对本地文件命名、目录层级和读写方式缺乏系统认知,导致算法正确却因文件名拼写错误或freopen使用不当而遗憾失分。理解评测系统的工作原理,掌握从建立准考证号目录到规范命名源文件,再到使用freopen进行文件流重定向的标准流程,是每位参赛者的必备技能。这种工程化习惯不仅适用于CSP-J/S复赛,也是未来参加NOI等更高水平竞赛的基础。本文从文件组织的底层逻辑出发,结合实战案例,系统讲解考

weixin_32466193的博客 594

art.dialog打开弹窗页面的简单用法

使用art.dialog需要先引入相关的js文件: 下载地址:https://download.csdn.net/download/liangmengbk/11240599 <script src="jquery-1.4.2.min.js"></script> <script src="artDialog.js"></script> <s...

每天学习一点点 4075

数控弯管机xyz转换ybc的算法_花了一年时间开发的三维弯管机交互式转档软件(三维管子模型UG,SOLIDWORK,PRO/E文件转成YBC)...

在弯管机加工中,由管子模型生成可直接进行弯管加工的YBC数据可以大大提高弯管编程过程.传统的做法是先用dxf数据文件(用autocad绘制管子的轴心线数据)转出XYZ数据,然后由XYZ数据转成YBC数据,而且大部分厂家对文件版本以及软件做管方式都有不少限制,这大大花费了用户的时间跟精力.随着企业的信息化管理以及不断的技术升级,传统用autocad线条模式来描述管子的方式正在被用户用PRO/E,UG...

weixin_29065959的博客 1963

Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享

一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。

GarFe的博客 1万+

artDialog 配置参数

ps:http://www.planeart.cn/demo/artDialog/_doc/API.html#options 名称 类型 默认值 描述 内容 title String '消息' 标题内容 content String 'loading..' 消息内容。 1、如果传入的是...

IMSIB的专栏 337

基于YOLOv8深度学习的火焰与烟雾检测系统详解:UI界面 + YOLOv8 + 数据集的实现

通过自动化检测火焰和烟雾,可以提高响应速度,减少潜在的火灾损失,保障人身和财产安全。此外,应用还会显示标记了检测框的视频画面,方便用户直观了解检测效果。同时,前端界面将使用Streamlit来实现,因其可以快速搭建交互式应用,适合我们的需求。要训练一个有效的火焰和烟雾检测模型,我们需要一个包含火焰和烟雾图片的数据集。为了保证模型的准确性和泛化能力,建议收集至少500张火焰和烟雾的图片,保证数据的多样性和代表性。训练过程中,模型会输出每个Epoch的训练损失和验证准确率,便于我们监控模型的学习情况。

YOLO 1321

artDialog 弹层

大家经常在网上看到弹出层,不仅效果很炫而且用户体验度很好!artDialog就是实现弹出框功能的一款国产的优秀插件,基于js编写的。 先来看下面几个弹出层效果: 怎么样,效果不错吧! artDialog下载地址为:http://code.google.com/p/artdialog/downloads/list,已经到5.0版本了。 artDialog开发者博客:www.plane

happyzwh的专栏 1342

ABAP RANGES及比较符号

RANGES *选项介绍: *1.SIGN 值为 I 和 E 。 I是包含, E是排除, 一般使用I。 2.OPTION 如果HIGH 为空 ,为单值选择 。有 EQ、NE、GT、LE、LT等逻辑操作 对于的 CP包含 NP是排除 如果HIGH 不为空 为区间选择 有BT,NB可选 *3.LOW 低值 *4.HIGH 高值 lt:less than 小于 le:less than or equal to 小于等于 eq:equal to 等于 ne:

Pegasus666的博客 5389

【深度学习新浪潮】为什么OpenClaw这么吃token?

OpenClaw 高 Token 消耗的核心是 Agent 多轮思考、工具调用上下文累积,以及平台内置的模板/多模型协同开销;PD 分离在 OpenClaw 中可针对性解决长上下文 Prefill 阻塞、KV Cache 复用低效问题,是提升其推理效率的核心优化手段,主要落地在长上下文处理与生成阶段解耦、KV Cache 集中管理、动态资源调度三个方向。

专注:太空算力、AI infra、异构调度、大模型成本工程 421

关于artDialog 弹出框居中问题

artDialog插件引入的js以及css位置会影响弹出框位置,可能导致js计算错误,弹出框不居中。

lttplus的博客 1985

统信UOS丨开机无法进入系统 无法打开控制台访问权限,root账号被锁定(cannot open access to console, the root account is locked)

步骤四:分别打开文件发现Roota下的fstab就是我们要找的文件,打开查看Roota的属性发现其为挂载的磁盘nvme0n1p3。步骤三:按Win+E打开文件管理器在分区中查找/etc/fstab文件,发现Roota和Rootb下都有该文件。步骤二:按键盘Ctrl+Alt+F4,进入终端控制台,如下图所示输入startx回车,进入桌面。步骤一:找到UOS系统安装的U盘,选择U盘启动进入安装界面,如下图所示。步骤七:关机,拔出U盘,启动电脑,OK,问题解决。

Reyn_观极 1万+

artDialog 外部如果关闭弹出框!

artdialog作为一个弹出框中间件,确实功能是非常强大的,谁用谁知道!今天刚遇到一个问题,如果弹出框的关闭按钮是自定义的话,怎么调用关闭窗口事件呢,下面这种方法能稳妥解决: 1.在弹出窗口的参数上加一个ID,如art.dialog({id:"test"}); 2.在弹出的子页...

124

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

开源弹出框--artDialog

非常好用的开源弹出框,请直接点击进入项目连接地址:http://www.planeart.cn/demo/artDialog/index.html

AlexNo1的专栏 1088

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

artDialog弹出新页面,保存后关闭弹出框并刷新父页面

    artDialog 弹出框插件,或者说是弹出对话框插件,需要对弹出后的对话框操作?artDialog的控制接口就是用来干这些事情的,这在异步消息操作中非常有用。 artDialog功能特性: 自适应内容、强大的接口配置参数、细致的体验、预先缓存皮肤图片更快响应、跨平台兼容兼容:IE6+、Firefox、Chrome、Safari、 Opera。并且IE6下也能支持现代浏览器的...

唯品衣秀 2035

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

artdialog弹出框

artDialog是一个轻巧且高度兼容的javascript对话框组件,可让你的网页交互拥有桌面软件般的用户体验。 功能: 支持锁定屏幕(遮罩)、模拟alert和confirm、多窗口弹出、静止定位、支持Ese键关闭对话框、定时关闭、自定义位置、拖动、鼠标调节窗口大小、换肤…… 优点 兼容主流浏览器: 支持IE6和IE6+, Firefox, chrome, Opera, Saf

anisweir的专栏 3448

前端常用插件之artDialog弹出框

前端常用插件之artDialog弹出框最近,发现一个插件——好看精致的页面弹出框,个人觉得有必要与大家分享一下,它就是artDialog弹出框。引用上一篇文章《前端常用插件之art-template模板引擎》。1.准备环境:① Bootstrap文件:bootstrap.min.css和bootstrap.min.js② jQuery文件:jquery-1.11.3.min.js③ Templa...

clk_esunny的成长之路 1万+

artDialog弹出框使用 配置

配置参数名称类型默认值描述内容titleString'消息'标题内容contentString'loading..'消息内容。1、如果传入的是HTMLElement类型,如果是隐藏元素会给其设置display:block以显示该元素,其他属性与绑定的事件都会完整保留,对话框关闭后此元素又将恢复原来的display属性,并且重新插入原文档所在位置2、如果没有设定content的值则会有loading...

ggabriella的博客 1157

artdialog ajax新增,JS中artdialog弹出框控件之提交表单思路详解

artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口。前言:自适应内容artDialog的特殊UI框架能够适应内容变化,甚至连外部程序动态插入的内容它仍然能自适应,因此你不必去考虑消息内容尺寸使用它。它的消息容器甚至能够根据宽度让文本居中或居左对齐——这一切全是XHTML+CSS原生实现。完善的接口它的接口完善,可以轻易与外部程序配合使用。如异步写入消息、...

weixin_39617113的博客 330

asp.net表单验证和弹出框artDialog使用分享(资源整合)

网络上有不少的表单验证控件,如jquery formvalidator等。弹出框也有很多种,这里我向大家推荐artDialog。首先说明2种控件都来源于博客园朋友,我现在向大家分享下使用方法:        首先看截图,我做的一个示例代码:                                   控件优点: 表单验证控件:  1、使用正则表达式进行验证2、验证简单,界面友好,提示友好a

分享经验,共同进步. 3444

弹出框(artDialog7)

Q1:使用(记得下载artDialog7) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="js/ar...

weixin_30469895的博客 337

artdialog (弹出框)使用

1.引入jquery:&lt;script type="text/javascript" src="scripts/jquery/jquery-1.7.1.js"&gt;&lt;/script&gt; 2.引入artdialog :&lt;script type ="text/javascript" src="./Extend/artdialog/artDialog.js?skin=defau.

liudongliangguo的专栏 349
上一篇: c# 自己记录下,方便自己使用的二维码
下一篇: c# 导出复杂excel ,合并单元格
Little_Code
博客等级 码龄10年 62粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值