论坛首页 Web前端技术论坛

很牛的弹出层看看不后悔

浏览 53763 次
该帖已经被评为精华帖
作者 正文
   发表时间:2011-11-14   最后修改:2011-11-16
[img][/img]先让我们看看他提供的几种皮肤吧











功能:
1. 传入字符串
art.dialog({
    content: '我支持HTML'
});

效果:

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

********************************************************************************************
只前这个东东也是朋友完我的,后来经刚刚一位朋友提醒,我google一下,现在完整的教程都在里面,所有包都在里面。
我也不好意思,现在补充下。呵呵,因为不算晚吧。
art.dialog({
    content: document.getElementById('demoCode_content_DOM'),
    id: 'EF893L'
});

效果:把指定的div加载到这个弹框上

标题 [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: '两秒后关闭'
});

效果:2秒后关闭这个只有看才看得到效果截图不行

定义消息图标 [icon]
请查看skin/icons目录下的图标
art.dialog({
    icon: 'succeed',
    content: '我可以定义消息图标哦'
});

图标有好几种就拿这个success效果图给大家看下:

锁屏 [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
});

效果:这是个锁屏的你可自定义背景颜色和图标等等一些属性

自定义坐标 [left & top]
art.dialog({
    left: 100,
    top: '60%',
    content: '我改变坐标了'
});

效果:自定义坐标 传X,Y就可以啦

创建一个全屏对话框
art.dialog({
    width: '100%',
    height: '100%',
    left: '0%',
    top: '0%',
    fixed: true,
    resize: false,
    drag: false
})


右下角滑动通知
artDialog.notice = function (options) {
    var opt = options || {},
        api, aConfig, hide, wrap, top,
        duration = 800;
        
    var config = {
        id: 'Notice',
        left: '100%',
        top: '100%',
        fixed: true,
        drag: false,
        resize: false,
        follow: null,
        lock: false,
        init: function(here){
            api = this;
            aConfig = api.config;
            wrap = api.DOM.wrap;
            top = parseInt(wrap[0].style.top);
            hide = top + wrap[0].offsetHeight;
            
            wrap.css('top', hide + 'px')
                .animate({top: top + 'px'}, duration, function () {
                    opt.init && opt.init.call(api, here);
                });
        },
        close: function(here){
            wrap.animate({top: hide + 'px'}, duration, function () {
                opt.close && opt.close.call(this, here);
                aConfig.close = $.noop;
                api.close();
            });
            
            return false;
        }
    };	
    
    for (var i in opt) {
        if (config[i] === undefined) config[i] = opt[i];
    };
    
    return artDialog(config);
};
调用示例:
art.dialog.notice({
    title: '万象网管',
    width: 220,// 必须指定一个像素宽度值或者百分比,否则浏览器窗口改变可能导致artDialog收缩
    content: '尊敬的顾客朋友,您IQ卡余额不足10元,请及时充值',
    icon: 'face-sad',
    time: 5
});

效果:模仿网吧右下角通知  带动画效果5秒后自动消失

跨域访问
跨域访问无法自适应大小,也无法进行父页面与子页面数据交换
art.dialog.open('http://www.connect.renren.com/igadget/renren/index.html',
    {title: '人人网', width: 320, height: 400});

效果:
加载googleMAP
art.dialog.open('googleMaps.html');

效果图



对啦忘记说啦要换皮肤只要换上下面图片上的css文件名就可以啦



****************************************************************
功能太多啦我手软啦 不写啦  直接说怎么用吧
1.导入<script src="artDialog/artDialog.js?skin=default"></script>
2.加上
(function (config) {
    config['lock'] = true;
    config['fixed'] = true;
    config['okVal'] = 'Ok';
    config['cancelVal'] = 'Cancel';
    // [more..]
})(art.dialog.defaults);//这个是用哪个主题有很多主题的你把名字打上就行啦




**********************这是googleMap的代码Copy就行啦没有问题有问题给我留言不懂就问只要你问我就说***********************************
<!doctype html>
<html>
	<head>
	<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
	<style>
html { height: 100% }
body { height: 100%; margin: 0; padding: 0; background-color: #FFF }
#map_canvas { height: 100% }
</style>
	<script src="http://maps.googleapis.com/maps/api/js?sensor=false&language=zh_CN"></script>
	<script> 
		var map, geocoder;
		function initialize() {
			var latlng = new google.maps.LatLng(39.904214, 116.407413);
			var options = {
				zoom: 11,
				center: latlng,
				disableDefaultUI: true,
				panControl: true,
				zoomControl: true,
				mapTypeControl: true,
				scaleControl: true,
				streetViewControl: false,
				overviewMapControl: true,
				mapTypeId: google.maps.MapTypeId.ROADMAP
			};
			map = new google.maps.Map(document.getElementById("map_canvas"), options);
			geocoder = new google.maps.Geocoder();
			geocoder.geocode({latLng: latlng}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					if (results[3]) {
						document.getElementById("map_address").value = results[3].formatted_address;
					}
				}
			});
			
			var dialog = art.dialog.open.api;
			dialog.title('google mpas')
			.size(558, 360)
			.button({name: '截图', callback: function () {
				var center = map.getCenter().lat() + ',' + map.getCenter().lng(),
					zoom = map.getZoom(),
					maptype = map.getMapTypeId(),
					url = 'http://maps.googleapis.com/maps/api/staticmap';
					url += '?center=' + encodeURIComponent(center);
					url += '&zoom=' + encodeURIComponent(zoom);
					url += '&size=558x360';
					url += '&maptype=' + encodeURIComponent(maptype);
					url += '&markers=' + encodeURIComponent(center);
					url += '&language=zh_CN';
					url += '&sensor=false';
				
				art.dialog.through({title: false, content: '<img src="' + url + '" />', padding: 0, width: 558, height: 360, lock: true});
				
				return false;
			}, focus: true})
			.position('50%', 'goldenRatio');
			
			document.getElementById("map-search-sumbit").onclick = function () {
				var input = document.getElementById('map_address');
				search(input.value);
			};
		}
		function search(address) {
			if (!map) return;
			geocoder.geocode({address : address}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					map.setZoom(11);
					map.setCenter(results[0].geometry.location);
					var marker = new google.maps.Marker({
						map: map,
						position: results[0].geometry.location
					});
				} else {
					alert("Invalid address: " + address);
				}
			});
		}
	</script>
	</head>
	<body onLoad="initialize();" style="font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial;">
    <div style="width:100%; height:100%">
      <table style="width:100%;height:100%;">
        <tr>
          <td style="height:38px"><div style="margin:5px;">地址:  <input id="map_address"  value="" style="width:200px; padding:4px;"> <button id="map-search-sumbit">搜 索</button></div></td>
        </tr>
        <tr>
          <td style="height:100%"><div id="map_canvas" style="height:100%; margin:0 5px"></div></td>
        </tr>
      </table>
    </div>
</body>
</html>


还有可以失现很多功能有些功能是我扩展的,改天再说吧,好累。有问题记得给我留言哦,js 和 css在附件里googlemap代码我粘贴出来啦记得COpy祝你好运
   发表时间:2011-11-14  
不知道漏啦些什么没有,如果有漏掉的东东记得留言哦。
0 请登录后投票
   发表时间:2011-11-15  
赞,现在的项目就使用这个artdialog,做对话框选择很方便,要是他能够定义每个对话框皮肤样式就更完美啦。
0 请登录后投票
   发表时间:2011-11-15  
乱码是为嘛啊?
0 请登录后投票
   发表时间:2011-11-15  
顶好,顶好,收藏方便以后使用
0 请登录后投票
   发表时间:2011-11-15  
真好,赶紧收藏
0 请登录后投票
   发表时间:2011-11-15  
嗯,..鉴定完毕...的确灰常 牛X
0 请登录后投票
   发表时间:2011-11-15  
可以在里面嵌表单吗?如果把表单集成进去就强大了
0 请登录后投票
   发表时间:2011-11-15  
有个建议,demo中art.dialog.alert('人品越来越不那么稳定了,请检查!');运行时背景太暗了,有点太突兀的感觉!
ps:个人感觉。
0 请登录后投票
   发表时间:2011-11-15  
挺美观的,希望项目中可以用到。。。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics