`
shixy
  • 浏览: 142087 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jquery写的仿WebQQ

阅读更多

最近闲来无事,也仿个WebQQ的界面来玩玩,写的很简单,纯属娱乐!

 

 

使用了jquery和jqueryUI,主要的js代码如下:

 

var DESKTOP = (function($, window, document, undefined) {
	return {
		/**
		* 初始化桌面 
		*/
		init:function(activeBarId){
			for (var i in DESKTOP.initEvents) {
				DESKTOP.initEvents[i](activeBarId);
			}
		},
		initEvents : {
			/**
			*	底部导航菜单事件
			*/
			nav : function(activeBarId){
				var _nav = $('#navigation div.title');
				_nav.each(function(i,n){
					setTimeout(function(){
						$('img',n).css('opacity',1);
						var bottomV = '-80px';
						var id = $(n).attr('id');
						if(id == activeBarId)bottomV = '-75px';
						$(n).animate({bottom:bottomV},800,function(){
							$('img',n).css('opacity',0);
						});
						$('div',n).animate({'opacity':1},800);
					},200*i); 
				})
				_nav.hover(function(){
					$('img',this).css('opacity',1);
					$(this).animate({bottom:0},500);
					$('div',this).animate({'opacity':0},500);
				},function(){
					var bottomV = '-80px';
					var id = $(this).attr('id');
					if(id == activeBarId)bottomV = '-75px';
					$(this).animate({bottom:bottomV},300,function(){
						$('img',this).css('opacity',0);
					});
					$('div',this).animate({'opacity':1},300);
				});
			},
			/**
			*	桌面图标单击双击等事件
			*/
			icon : function(){
				$('a.icon').live('mousedown', function() {
					// 高亮图标
					DESKTOP.util.clear_active();
					$(this).addClass('active');
				}).live('click', function() {
					// 弹出窗口
					var config = {
						id : $(this).attr('id'),
						title : $('span',this).text(),
						icon : $(this).attr('icon'),
						url : $(this).attr('url')
					}
					DESKTOP.util.window_flat();
					DESKTOP.createWindow(config);
				}).live('mouseenter', function() {
					$(this).die('mouseenter').draggable({
						revert: true,
						containment: 'parent'
				  });
				});
			},
			//顶部菜单的点击和关闭事件
			topBar : function(){
				$('#tbar_container span.bar_title').live('click',function(){
					var _li = $(this).closest('li');
					var id = _li.attr('id').split('_')[1];
					DESKTOP.createWindow(id);
				});
				$('#tbar_container span.bar_close').live('click',function(){
					var _li = $(this).closest('li');
					var id = _li.attr('id').split('_')[1];
					$('#window_'+id).hide('explode',{direction:'up'},500,function(){
						$(this).remove();
						$('#bar_'+id).remove();
					});
				});
			},
			/**
			*	弹出窗口事件
			*/
			window : function(){
				// 窗口拖动
				$('div.window').live('mousedown', function() {
					// 窗口置顶
					DESKTOP.util.window_flat();
					$(this).addClass('window_stack');
				}).live('mouseenter', function() {
					$(this).die('mouseenter').draggable({
						cancel: 'a',
						cursor:'crosshair',
						containment: 'parent',
						handle: 'div.window_top'
				  }).resizable({
						containment: 'parent',
						minWidth: 400,
						minHeight: 200
				  });
				  
				// 双击顶部自动最大化/还原,同windows
				}).find('div.window_top').live('dblclick', function() {
					DESKTOP.util.window_resize(this);

				// 双击顶部图标关闭,同windows
				}).find('img').live('dblclick', function() {

					// 将顶部工具栏对应的标签移除
					var _window = $(this).closest('div.window');
					var id = _window.attr('id').split('_')[1];
					_window.hide('explode',{direction:'up'},500,function(){
						$(this).remove();
						$('#bar_'+id).remove();
					});
					return false;
				});

				// 最小化窗口
				$('a.window_min').live('click', function() {
					$(this).closest('div.window').hide('drop',{direction:'up'},500);
				});

				// 最大化或者还原窗口
				$('a.window_resize').live('click', function() {
					DESKTOP.util.window_resize(this);
				});

				// 关闭窗口
				$('a.window_close').live('click', function() {
					var _window = $(this).closest('div.window');
					var id = _window.attr('id').split('_')[1];
					_window.hide('explode',{direction:'up'},500,function(){
						$(this).remove();
						$('#bar_'+id).remove();
					});
					
				});
			},
			/**
			*	其他 类似于切换墙纸、鼠标右键
			*/
			other : function(){
				DESKTOP.wallPaper();
				
				$('a').live('click', function(ev) {
					var url = $(this).attr('href');
					this.blur();

					if (url.match(/^#/)) {
						ev.preventDefault();
						ev.stopPropagation();
				  }else {
						$(this).attr('target', '_blank');
				  }
				});
			}
		},
		/**
		*  切换墙纸
		*/
		wallPaper:function(src){
			var defaultSrc = "images/car_b2.jpg";
			if(!src)src = defaultSrc;
			if ($('#wallpaper').length == 0) {
				$('body').prepend('<img id="wallpaper" class="abs" src="'+src+'" />');
			}else{
				$('#wallpaper').attr('src',src);
			}
		},
		/**
		* 创建窗口
		*/
		createWindow : function(arg){
			if(typeof arg == 'string'){
				arg = {id:arg};
			}
			var win = $('#window_'+arg.id);
			if(win.length == 0){
				//创建窗口
				var tempW = $('#window_templete').clone();
				$(tempW).attr('id','window_'+arg.id);
				$('.window_icon',tempW).addClass(arg.icon||'default_icon');
				$('.window_title',tempW).html(arg.title);
				$('#desktop').append(tempW);
				//创建顶部标签条
				var tempB = $('<li><span class="bar_title"></span><span class="bar_close"></span></li>');
				tempB.attr('id','bar_'+arg.id);
				$('.bar_title',tempB).html(arg.title);
				$('#tbar_container').append(tempB);
				tempW.show('drop',{direction:'left'},500);
			}else if(win.is(':hidden')){
				win.show('drop',{direction:'left'},500);
			}else{
				// 置顶窗口
				DESKTOP.util.window_flat();
				win.addClass('window_stack');
			}
		},
		util:{
			clear_active: function() {
				$('a.active, tr.active').removeClass('active');
				$('ul.menu').hide();
			},
			window_flat: function() {
				$('div.window').removeClass('window_stack');
			},
			window_resize: function(el) {
				// window容器
				var win = $(el).closest('div.window');

				// 是否已经最大化?
				if (win.hasClass('window_full')) {
				  // 还原position
				  win.removeClass('window_full').css({
					'top': win.attr('data-t'),
					'left': win.attr('data-l'),
					'right': win.attr('data-r'),
					'bottom': win.attr('data-b'),
					'width': win.attr('data-w'),
					'height': win.attr('data-h')
				  });
				}else {
				  win.attr({
					// 将当前坐标缓存起来
					'data-t': win.css('top'),
					'data-l': win.css('left'),
					'data-r': win.css('right'),
					'data-b': win.css('bottom'),
					'data-w': win.css('width'),
					'data-h': win.css('height')
				  }).addClass('window_full').css({
					// 最大化的尺寸
					'top': '0',
					'left': '0',
					'right': '0',
					'bottom': '0',
					'width': '100%',
					'height': '100%'
				  });
				}

				// 置顶窗口
				DESKTOP.util.window_flat();
				win.addClass('window_stack');
			},
			topBar:function(){
				
			}
		}
	
	}
})(jQuery, this, this.document);

$(function(){
	DESKTOP.init('module_1');
	
});

 

 

分享到:
评论
3 楼 qwq123qa 2012-10-28  
感谢楼主的奉献
2 楼 hqingjin 2012-10-18  
效果很不错,LZ很是牛
1 楼 maply_zhang 2012-06-27  
感谢楼主的奉献

相关推荐

    jQuery UI仿webqq桌面系统WebOS界面操作

    在本项目中,“jQuery UI仿webqq桌面系统WebOS界面操作”是一个利用jQuery UI库创建的,模拟WebQQ桌面系统风格的Web操作系统界面。这个系统旨在提供一种类似于桌面环境的用户体验,用户可以通过浏览器进行交互,享受...

    jquery仿WebQQ菜单ui界面

    《jQuery仿WebQQ菜单UI界面详解》 在Web开发领域,优秀的用户界面(UI)设计是吸引用户并提升用户体验的关键因素之一。WebQQ以其简洁、直观的界面设计赢得了广大用户的喜爱,因此,许多开发者尝试使用jQuery来仿制...

    jquery-ui仿WebQQ整合苹果菜单界面

    【标题】"jquery-ui仿WebQQ整合苹果菜单界面"是一个基于jQuery UI库创建的项目,旨在模拟WebQQ的用户界面,并结合苹果风格的菜单设计,为用户提供一种独特的交互体验。这个项目展示了如何利用jQuery UI的强大功能来...

    bingdou.net jquery ui仿WebQQ整合苹果菜单界面

    《构建仿WebQQ的jQuery UI苹果菜单界面》 在网页设计和开发中,用户界面(UI)的设计至关重要,它直接影响到用户体验。本项目名为“bingdou.net jquery ui仿WebQQ整合苹果菜单界面”,旨在利用jQuery UI库创建一个...

    jquery ui仿腾讯web qq界面desktop酷炫特效

    在【jQuery UI仿腾讯Web QQ界面】的设计中,开发者可能利用了jQuery UI的灵活性和强大的功能来创建与腾讯Web QQ类似的桌面风格界面。Web QQ是腾讯公司推出的一款基于网页的即时通讯服务,它的界面设计简洁、直观,...

    Jquery仿WebQQ桌面程序特效

    【jQuery仿WebQQ桌面程序特效】是一个利用jQuery库和相关技术构建的网页应用程序,它旨在模仿WebQQ的桌面体验,提供一种简洁而直观的交互方式。这个特效的主要特点在于其可定制性和易用性,用户只需调整body的背景...

    jQuery easyui ,extjs,html200套模板+仿WEBQQ8套模板后台模板

    在提供的10套仿WEBQQ模板中,开发者可以学习到如何设计简洁明了的聊天界面、动态通知以及友好的用户交互。这些模板对于想要创建类似在线客服系统或企业内部通讯工具的开发者来说,是非常有价值的参考资源。 综上所...

    最全网络全部仿webqq界面总结,HTML+CSS

    在仿WebQQ界面中,CSS起着至关重要的作用,它决定了界面的颜色、字体、间距、动画效果等视觉元素。CSS可以实现如渐变背景、圆角、阴影等高级效果,同时通过布局技术如Flexbox或Grid,可以实现响应式设计,确保界面在...

    jquery仿WebQQ菜单ui界面.zip

    《构建jQuery仿WebQQ菜单UI界面》 在前端开发领域,设计吸引用户并提供良好交互体验的界面至关重要。本教程将深入探讨如何使用jQuery、CSS和HTML5技术,构建一个仿照WebQQ风格的菜单UI界面。这个项目不仅能够帮助...

    高仿webQQ桌面应用

    - 开发者可能使用了前端框架(如React、Vue或Angular)和库(如jQuery),以提高开发效率,简化代码结构,并提供丰富的组件和功能。 8. **安全与性能**: - 安全方面,应用应遵循HTTPS协议,保护用户数据的安全...

    仿WebQQ.rar

    总结来说,"仿WebQQ.rar"是一个基于JQuery的桌面系统项目,它的目标是复制WebQQ的功能和用户体验。项目结构清晰,代码易读,便于二次开发,适合学习和实践JQuery和JavaScript技术。同时,通过分析提供的文件,我们...

    js仿WebQQ整合苹果菜单界面

    本文将深入探讨“js仿WebQQ整合苹果菜单界面”这一主题,涉及的知识点包括JavaScript基础、前端框架Query-UI的使用、用户界面设计以及与苹果设备兼容性的实现。 首先,JavaScript是Web开发的三大核心技术之一,负责...

    仿webQQ2.0源码

    详细介绍地址:...仿webQQ2.0源码,通过flash socket与javascript进行通讯.界面使用jquery编写.详细运行效果可以在这个网址看到:http://v.youku.com/v_show/id_XMjM2NzkyODQ4.html

    仿webQQ源码 .net ajax XML jQ

    【标题】"仿webQQ源码 .net ajax XML jQ" 涉及的主要知识点包括:WebQQ的实现原理、.NET框架的应用、Ajax技术、XML数据处理以及jQuery库的使用。下面将对这些关键点进行详细介绍。 1. **WebQQ实现原理**:WebQQ是一...

    (仿webQQ)ajax网页聊天工具 .net版

    【标题】"(仿webQQ)ajax网页聊天工具 .net版"揭示了这是一个使用.NET框架开发的、模仿WebQQ功能的网页聊天应用。这个工具利用了AJAX(Asynchronous JavaScript and XML)技术来实现页面的异步更新,提供类似于即时...

    基于jquery仿window桌面,webQQ

    【jQuery仿Windows桌面WebQQ实现详解】 在当前的互联网应用中,模拟桌面环境已经成为一种创新的交互方式,尤其是在Web应用程序中。"基于jQuery仿window桌面,webQQ"项目就是一个这样的尝试,它旨在为用户带来类似...

    仿webqq 源码,很炫的界面

    【标题】"仿webqq 源码,很炫的界面"揭示了这是一个关于WebQQ的前端项目,目的是实现一个类似QQ网页版的用户界面,且界面设计极具吸引力。WebQQ是腾讯公司推出的一种基于Web浏览器的即时通讯服务,允许用户在不安装...

    仿WEBQQ源码文件

    【标题】"仿WEBQQ源码文件"是一个项目,它旨在模仿腾讯的WebQQ界面和功能,使用了jQuery这一流行的JavaScript库。这个源码对于学习和理解网页版即时通讯应用的开发具有一定的教学价值,适合初级到中级的IT开发者进行...

    Jquery-UI仿WebQQ整合苹果菜单源码_c9bc0438-1e2c-4ff7-90c0-8879346e4d11.rar

    而"Jquery-UI仿WebQQ整合苹果菜单源码"则是结合了jQuery UI的特性,模拟了WebQQ中的苹果风格菜单效果,适用于创建现代、简洁的网页交互体验。 这个源码的核心在于jQuery UI的`menu`组件。`menu`组件允许开发者创建...

Global site tag (gtag.js) - Google Analytics