3

我的要求是使用 css 属性自定义警报框。目前,我正在通过以下代码实现类似的目标:

查询:

$('<div class="alertMessage">Error first</div>')
.insertAfter($('#componentName'))
.fadeIn('fast')
.animate({opacity: 1.0}, 2200)
.fadeOut('fast', function() {
    $(this).remove();
});

CSS:

.alertMessage {
    width: 95%;
    margin: 1em 0;
    padding: .5em;

    background-image: -ms-radial-gradient(left top, circle farthest-corner, #F07E1A 0%, #F58CCB 100%);
    background-image: -moz-radial-gradient(left top, circle farthest-corner, #F07E1A 0%, #F58CCB 100%);
    background-image: -o-radial-gradient(left top, circle farthest-corner, #F07E1A 0%, #F58CCB 100%);
    background-image: -webkit-gradient(radial, left top, 0, left top, 1012, color-stop(0, #F07E1A), color-stop(1, #F58CCB));
    background-image: -webkit-radial-gradient(left top, circle farthest-corner, #F07E1A 0%, #F58CCB 100%);
    background-image: radial-gradient(circle farthest-corner at left top, #F07E1A 0%, #F58CCB 100%);

    text-align: center;
    border: 3px solid white;
    color: white;
    font-weight: bold;
    border-radius:4px;
    display: none;
 }

上面的代码将在几秒钟后淡入和淡出。淡入和淡出也将发生在我在代码中提到的组件旁边

insertAfter($('#componentName'))

我的要求是:

  1. 警报消息应该出现在窗口的中心。就像正常的警报框一样
  2. 警报消息应该有一个确定按钮。就像正常的警报框一样。

我是否只能通过将 Okay 按钮添加到 div 并为 Okay 按钮添加行为来实现这一点。或者有什么方法可以扩展通用警报框行为并使用我上面提到的 css 属性对其进行自定义?如果是,如何实现?

4

4 回答 4

2

您需要自己实现外观和行为,标准警报框不可自定义。

您已经在使用 jQuery 的另一种方法是使用jQueryUI提供的功能。

于 2013-06-24T10:28:50.767 回答
0

警报、确认等默认弹出窗口不可自定义...您需要使用

CSS

#yourPopupDiv {position : absolute}

并使用 jquery(或 javascript)添加此 CSS

$('#yourPopupDiv').css('top', $('body').height()/2 - $('#yourPopupDiv').height()/2);
$('#yourPopupDiv').css('left', $('body').width()/2 - $('#yourPopupDiv').width()/2);

或使用执行所有这些操作的jquery ui 对话框。

于 2013-06-28T06:03:13.213 回答
0

我认为,您可以使用 JQuery Dialog,请查看以下链接 http://jqueryui.com/dialog/#modal-message

于 2013-06-24T10:30:47.330 回答
0

你可以用你自己的代码试试这个。你不需要任何blugins。检查我的小提琴

http://jsfiddle.net/ponrajpaul/tNgkz/

HTML

<div class="alertMessage">
  alert message
  <input type="button" value="ok" class="ok" />
</div>

CSS

.alertMessage{
    width:100px;
    height:50px;
    background-image: -ms-radial-gradient(left top, circle farthest-corner, #F07E1A 0%, #F58CCB 100%);
    background-image: -moz-radial-gradient(left top, circle farthest-corner, #F07E1A 0%, #F58CCB 100%);
    background-image: -o-radial-gradient(left top, circle farthest-corner, #F07E1A 0%, #F58CCB 100%);
    background-image: -webkit-gradient(radial, left top, 0, left top, 1012, color-stop(0, #F07E1A), color-stop(1, #F58CCB));
    background-image: -webkit-radial-gradient(left top, circle farthest-corner, #F07E1A 0%, #F58CCB 100%);
    background-image: radial-gradient(circle farthest-corner at left top, #F07E1A 0%, #F58CCB 100%);
    text-align: center;
    border: 3px solid white;
  }

用于将中心定位到消息 div 的SCRIPT脚本

jQuery.fn.posCenter = function () {
    this.css("position","fixed");
    this.css("top", Math.max(0, (($(window).height() - $(this).outerHeight()) / 2) + $(window).scrollTop()) + "px");
    this.css("left", Math.max(0, (($(window).width() - $(this).outerWidth()) / 2) + $(window).scrollLeft()) + "px");
    return this;
}

用于调用警报消息 div 的脚本

$(document).ready(function(){
   $('.alertMessage').posCenter();
});

每当您想显示警报消息时,只需调用此函数即可。在设置display:none之前提示消息。

$(document).ready(function(){
  $('.alertMessage').css({"display" : "block"});
  $('.alertMessage').posCenter();  
  $('input.ok').click(function(){
     $('.alertMessage').css({"display" : "none"});
  });
});
于 2013-06-24T10:43:44.303 回答