GithubHelp home page GithubHelp logo

aui / artdialog Goto Github PK

View Code? Open in Web Editor NEW
3.1K 3.1K 1.1K 708 KB

经典的网页对话框组件

Home Page: http://aui.github.com/artDialog/

License: GNU Lesser General Public License v3.0

JavaScript 49.08% CSS 12.66% HTML 38.26%
dialog jquery

artdialog's People

Contributors

atans avatar aui avatar xuexb avatar yahsieh avatar yolo2013 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

artdialog's Issues

artDialog 已经很强大了 但可以进化成另一种plugin: popover

需要这样的功能 比如鼠标移动到用户小图标上 显示用户的概要信息 这时候需要ajax加载用户的个人信息 已经采用了artdialog作为主要的对话框插件了 如果引入第三方jquery插件也是可以做到的 但最后看到了artDialog 完全经过增强可以做到这样的要求。

粘滞显示(follow) 在加一个小三角 就可以了 , 用simple皮肤 去掉那个小关闭按钮

下面是小三角实现

[php]

<style id="jsbin-css">
.triangle {
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 45px 60px 45px;
  border-color: transparent transparent #000 transparent;
}
</style>

  <div class="triangle"></div>


我本人不会css 只能拼拼凑凑了 如果能支持这个功能就太好了 可以作为一个增强(enhance) 感觉对你来说是小菜 可以参考这个插件:

jquery proppver

frameset prompt弹出框位置

我原来使用的是js自带的prompt,页面比较丑,但是弹出框的位置是在总页面的中间。
现在我添加了artdialog,但是弹出框只能在子页面的中间,不知如何修改?
谢谢!

将artDialog嵌套使用作为异步通信提示框时在ie8中focus方法出错

artDialog很不错,不过有个小问题
如果将artDialog嵌套使用,如下面的例子,第一个对话框用于提问,在Save按钮则显示
提示框以进行异步操作,在ie8中
if (_activeElement) {
_activeElement.focus();
}
就出错了,_activeElement的计算是否有更合理的处理?

测试例子

    function test() {
        art.dialog({
            lock : true,
            content : 'Save?',
            button : [ {
                value : 'Save',
                focus : true,
                callback : doSave
            }, {
                value : 'Discard',
                callback : function(){
                }
            } ],
            cancel : function() {
            }
        });
    }
    
    function doSave() {
        var tip = art.dialog();
        tip.content("wait...");
        setTimeout(function(){
            tip.content("success").time(2000);  
        }, 2000);
    }

压缩脚本时由"+ +"引起的错误

存在以下代码:

  • artDialog.js
$.expando = '@cache' + + new Date;  //344行
_expando = 'artDialog' + + new Date,  //578行
  • jquery.artDialog.js
_expando = 'artDialog' + + new Date,  //21行

由于GoogleClosure或YUI integration对js进行压缩时会去除上述语句中的"+ +"中的空格,所以引起如下脚本错误:

  • Chrome浏览器:

"字符串"++new Date;
SyntaxError: Unexpected token new

  • FireFox浏览器:

"字符串"++new Date;
SyntaxError: invalid increment operand

建议加上括号:

$.expando = '@cache' + (+ new Date);  //344行

cancel配置成false的疑问

cancel=false为不显示标题中的关闭按钮,如果是这样设定的话,应该同时也取消esc键的效果。

var cancel=api.config.cancel===false;// 判断是否为cancel

keyCode === 27 && !cancel && api._click('cancel');

添加getLast()方法获取最后弹出的artDialog

   /**
     * 获取最后弹出的artDialog
     * @return   {Object}    最后一个artDialog 实例
     */
    artDialog.getLast = function () {
        var keys = [];
        for(var k in artDialog.list) {
            keys.push(k);
        }
        var key = keys.pop();
        return key == '' ? {} : artDialog.list[key];
    };

怎样在父窗体中显示artDialog

我有一个统一登录的页头。
各子站都使用这个页头。里面主要就是使用artdiaglog实现的一个登录窗。
现在有一个问题,其中一个子站是合作方开发的,现在要求这个合作方的子站也使用我这个登录窗,他们不是很合作,只想用iframe的方式嵌套这个页头,经过我们的试验,在iframe中无法将artdiaglog显示在父窗体中,请问如何达到我这个目标呢

同一页面多皮肤的构想

在同一页面上实现多个皮肤,我的构想实现方式是这样的
首先在引用artdialog.js的时候,参数可以用"|"隔开,如:

<script src="js/artDialog4.1.7/jquery.artDialog.js?skin=default|aero"></script>

然后在js端进行拆分skin参数,这样就能同时加载2个皮肤的css文件。
接着需要在dialog模版最外层再套一层div,用class来区分皮肤。
同时调用dialog的参数里加个theme,如果不填写则默认第一个,也就是default皮肤,如果参数是这样写的,则默认调用aero皮肤

<script src="js/artDialog4.1.7/jquery.artDialog.js?skin=aero|default"></script>

因为4.x版本是在google code维护,我不会svn,所以即使修改好也不会提交。
希望糖饼能将这个功能更新到4.x的下一版本中,虽然实用性不是那么强,但也满足了小部分人群的需求。

5.x能实现iframe关闭artDialog吗?

5.x能实现iframe关闭artDialog吗?或者说有相应的插件吗?毕竟使用到iframe的情况挺多的.如果为了一个iframe而增加其他的库,感觉很不值

请问如何更改默认的样式,有支持皮肤功能吗?

你好,看了你的这个组件,写的很精彩。快速hello world,高级用法,以及插件机制。
现在默认的样式是绿色的顶,米白色的底色,请问如何更改默认的样式,有支持皮肤功能吗?还是只能通过自行设置css实现?

咨询窗口的位置设置

你好,
以前可以使用left和top来设置窗口位置,新版本里取消这个功能,还可以设置显示位置吗?

引入jquery.artDialog.min.js时,该js兼容到什么版本的jquery了

我在ie9下引入了jquery-1.9.1.min.js之后,又引入了jquery.artDialog.min.js,然后页面上的 $.dialog()方法就不能用了,但在ff和chrome下,都能正常显示,而ie9下控制台报错,到jquery.artDialog.min.js, 行10 字符247。

所以特别过来问问,artDialog兼容到多少的jquery版本,我这边的异常是不是跟jquery的版本太高而导致

与ckeditor的兼容性问题

当在弹出层中引用了ckeditor的textarea替代html中textarea后, 无法点击编辑框.
html代码如下:
《textarea rows="3" cols="25" id="newsContent" name="》newsContent"《 /textarea》
《script type="text/javascript"》CKEDITOR.replace('newsContent');《/script》

=========分割线===============
"<>"分别用"《》"代替了。。。git不支持html转义?囧
上述代码放在一个待弹出的DIV中, 当用artdialog弹出这个层以后,textarea 不可以编辑.

希望能有自定义皮肤制作的方案!

几款皮肤已经很出色,但是系统建设中往往风格是自主设计的,难免需要自定义,没有足够的范例和文档,只能自己慢慢摸索!希望能有皮肤制作方案!

多个dialog显示被遮盖的问题

先出来的dialog,会被后出来的dialog遮盖,如
art.dialog({title:"test1"});art.dialog({title:"test2"});
先看到的是test2,而不是test1
怎么让先看到test1呢?

iframe 下引用出错

下载artDialog-5.0.3并解压后,要解压的根目录下创建 iframe.html 。
代码如下:

iframe test
<iframe width="100%" height="100%" frameborder="0" scrolling="no" src="index.html">
</iframe>

在IE8,9下打开 iframe.html ,弹出框无法显示。 F12脚本调试,提示
_activeElement = document.activeElement
出错。

应该把页面的生成的div清掉 而不仅仅是将事件卸载

我认为调用关闭方法时 不管是不是单例模式都应该把页面的生成的div清掉 而不仅仅是将事件卸载

/** 关闭对话框 */
close: function () {

    if (this.closed) {
        return this;
    };

    var dom = this.dom,
        $wrap = dom.wrap,
        list = artDialog.list,
        beforeunload = this.config.beforeunload;

    if (beforeunload && beforeunload.call(this) === false) {
        return this;
    };


    if (artDialog.focus === this) {
        artDialog.focus = null;
    };


    if (this._follow) {
        this._follow.removeAttribute(_expando + 'follow');
    }


    if (this._elemBack) {
        this._elemBack();
    };



    this.time();
    this.unlock();
    this._removeEvent();
    delete list[this.config.id];


    if (_singleton) {

        $wrap.remove();

    // 使用单例模式
    } else {

        _singleton = this;

        dom.title.html('');
        dom.content.html('');
        dom.buttons.html('');

        $wrap[0].className = $wrap[0].style.cssText = '';
        dom.outer[0].className = 'd-outer';

        $wrap.css({
            left: 0,
            top: 0,
            position: _isFixed ? 'fixed' : 'absolute'
        });

        for (var i in this) {
            if (this.hasOwnProperty(i) && i !== 'dom') {
                delete this[i];
            };
        };

        this.hidden();

    };

    // 恢复焦点,照顾键盘操作的用户
    if (_activeElement) {
        _activeElement.focus();
    }

    this.closed = true;
    return this;
},

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.