0

0

漂亮的widgets,支持换肤和后期开发新皮肤_javascript技巧

php中文网

php中文网

发布时间:2016-05-16 19:14:32

|

1134人浏览过

|

来源于php中文网

原创

作者:ucren
演示效果:http://ucren.com/ucren-examples/widgets.html

已知缺陷:
1、换肤功能由于图片变动量比较大,所以加载有些慢。
2、widgets 不支持多态。

未来考虑解决的问题:
1、对图片进行预载处理
2、与框架 vjbox 整合到一起

未来考虑开发的新控件:
1、滑块调节器(类似windows音量调节器)
2、进度条
3、outlook 菜单
4、树
widgets.js

知料万语
知料万语

知料万语—AI论文写作,AI论文助手

下载
复制代码 代码如下:

/*
 * Ucren example.
 * Author:Dron
 * Date:2007-3-31
 * Contact:ucren.com
 */

var example = Ucren.getElement("example");

/* - - - - - - - - - - 定义按钮 - - - - - - - - - - */
var testbtn = new Ucren.Button({ caption: "示例按钮1", width: 80, handler: function (){ Ucren.alert("Hello world!", "示例按钮1"); } });
    testbtn.applyTo("test-btn");

var testbtn2 = new Ucren.Button({ caption: "示例按钮2", width: 80, disabled: true });
    testbtn2.applyTo("test-btn2");

var defaultbtn = new Ucren.Button({ caption: "经典样式", width: 74, handler: function (){ Ucren.useSkin("default"); } });
    defaultbtn.applyTo("default-btn");

var xpbtn = new Ucren.Button({ caption: "XP样式", width: 74, handler: function (){ Ucren.useSkin("xp"); } });
    xpbtn.applyTo("xp-btn");

var xpbtn = new Ucren.Button({ caption: "QQ样式", width: 74, handler: function (){ Ucren.useSkin("qq"); } });
    xpbtn.applyTo("qq-btn");

var vistabtn = new Ucren.Button({ caption: "Vista样式", width: 74, handler: function (){ Ucren.useSkin("vista"); } });
    vistabtn.applyTo("vista-btn");

var examplebtn = new Ucren.Button({ caption: "显示示例窗体", width: 100, handler: function (){ win1.show(); } });
    examplebtn.applyTo("example");

var alertbtn = new Ucren.Button({ caption: "Alert", width: 60, handler: function (){ Ucren.alert("Test!", "模拟Alert"); } });
    alertbtn.applyTo("alert-btn");

var promptbtn = new Ucren.Button({ caption: "Prompt", width: 60, handler: function (){ Ucren.prompt("请键入你的名字:", "匿名", returnValue);} });
    promptbtn.applyTo("prompt-btn");

var confirmbtn = new Ucren.Button({ caption: "Confirm", width: 60, handler: function (){ Ucren.confirm("你真的要这样操作吗?", "请确认:", returnValue);} });
    confirmbtn.applyTo("confirm-btn");

var ewin2btn = new Ucren.Button({ caption: "示例窗体2", width: 80, disabled: true, handler: function (){ win2.show(); } });
    ewin2btn.applyTo("ewin2-btn");

var ewin3btn = new Ucren.Button({ caption: "示例窗体3", width: 80, disabled: true, handler: function (){ win3.show(); } });
    ewin3btn.applyTo("ewin3-btn");

var cboxvaluebtn = new Ucren.Button({ caption: "值", width: 40, handler: function (){ Ucren.alert(testckbox.getValue(), "多选框的值是"); } });
    cboxvaluebtn.applyTo("cbox-value");

var rdvaluebtn = new Ucren.Button({ caption: "值", width: 40, handler: function (){ Ucren.alert(testradio.getValue(), "单选框的值是"); } });
    rdvaluebtn.applyTo("radio-value");

var cbvaluebtn = new Ucren.Button({ caption: "值", width: 40, handler: function (){ Ucren.alert(testcombo.getValue(), "下拉框的值是"); } });
    cbvaluebtn.applyTo("combobox-value");


/* - - - - - - - - - - 定义窗体 - - - - - - - - - - */
var win1 = new Ucren.Window({
    left : 100, top : 100, width : 430, height : 350,
    minWidth : 430, minHeight : 350,
    panel : "example-panel",
    caption : "示例窗体",
    icon : "images/ico.gif",
    minButton : true, maxButton : true, cloButton : true, resizeAble : true,
    onOpen :    function (){ example.setDisplay(false); },
    onClose :    function (){ example.setDisplay(true); },
    onResize :    function (){ },
    onMove :    function (){ },
    onFocus :    function (){ },
    onBlur :    function (){ }
});

var win2 = new Ucren.Window({
    left : 260, top : 30, width : 300, height : 250,
    minWidth : 300, minHeight : 250,
    panel : "example-panel2",
    caption : "示例窗体2",
    icon : "images/ico.gif",
    minButton : true, maxButton : true, cloButton : true, resizeAble : true,
    onOpen :    function (){ ewin2btn.setDisabled(true); },
    onClose :    function (){ ewin2btn.setDisabled(false); },
    onResize :    function (){ },
    onMove :    function (){ },
    onFocus :    function (){ },
    onBlur :    function (){ }
});

var win3 = new Ucren.Window({
    left : 290, top : 210, width : 380, height : 150,
    minWidth : 380, minHeight : 150,
    panel : "example-panel3",
    caption : "示例窗体3",
    icon : "images/ico.gif",
    minButton : true, maxButton : false, cloButton : true, resizeAble : false,
    onOpen :    function (){ ewin3btn.setDisabled(true); },
    onClose :    function (){ ewin3btn.setDisabled(false); },
    onResize :    function (){ },
    onMove :    function (){ },
    onFocus :    function (){ },
    onBlur :    function (){ }
});

win2.show();
win3.show();
win1.show(); // 把 win1 放到最后 show 可以令 win1 初始化后置于最上层

/* - - - - - - - - - - 定义示例文本框 - - - - - - - - - - */
var testtxf1 = new Ucren.TextField({ text: "Test!", width: 120 });
    testtxf1.applyTo("test-txf1");

var testtxf2 = new Ucren.TextField({ text: "Test!", width: 120, disabled: true });
    testtxf2.applyTo("test-txf2");

/* - - - - - - - - - - 定义多选框 - - - - - - - - - - */
var testckbox = new Ucren.CheckBox([
    { container: "test-cbox1", value: "1", lable: "选项一", checked: true },
    { container: "test-cbox2", value: "2", lable: "选项二" },
    { container: "test-cbox3", value: "3", lable: "选项三", disabled: true },
    { container: "test-cbox4", value: "4", lable: "选项四", checked: true, disabled: true }
]);

/* - - - - - - - - - - 定义单选框 - - - - - - - - - - */
var testradio = new Ucren.Radio([
    { container: "test-radio1", value: "1", lable: "选项一" },
    { container: "test-radio2", value: "2", lable: "选项二", checked: true },
    { container: "test-radio3", value: "3", lable: "选项三" },
    { container: "test-radio4", value: "4", lable: "选项四", disabled: true }
]);

/* - - - - - - - - - - 定义下拉框 - - - - - - - - - - */
var combodatas = new Ucren.DataVess({
    fields: ["text", "value"],
    data: [
        ["选项1" , "option-1" ],
        ["选项2" , "option-2" ],
        ["选项3" , "option-3" ],
        ["选项4" , "option-4" ],
        ["选项5" , "option-5" ],
        ["选项6" , "option-6" ],
        ["选项7" , "option-7" ],
        ["选项8" , "option-8" ],
        ["选项9" , "option-9" ],
        ["选项10", "option-10"],
        ["选项11", "option-11"],
        ["选项12", "option-12"],
        ["选项13", "option-13"],
        ["选项14", "option-14"]
    ]
});
var testcombo = new Ucren.ComboBox({width: 120, value: "option-2", disabled: false, data: combodatas });
    testcombo.applyTo("test-combobox");

/* - - - - - - - - - - functions - - - - - - - - - - */
function returnValue(v) { Ucren.alert(v + "", "返回值"); }

本地下载

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
微信小程序开发--云开发篇
微信小程序开发--云开发篇

共15课时 | 0.8万人学习

极致CMS零基础建站教学视频
极致CMS零基础建站教学视频

共62课时 | 5.4万人学习

Golang进阶实战编程
Golang进阶实战编程

共34课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号