接触jquery有段时间了,终于照着写了我的第一个jquery插件,用来生成fusinocharts的html代码,我注意到用fusincharts提供的函数生成chart空白边距太大,最明显的在标题和图形之间空得太多,但我不能控制它。于是我将flash生成在一个div内,且将它设置置于底层,固定好div高宽,让内层的flash放大,这样就得到我想要的大小又没有多于的空白边距了。
(function($) {
$.fn.FusionChart = function(options) {
var opts = $.extend({}, $.fn.FusionChart.defaults, options);
var width=opts.width;
var height=opts.height;
var zoom=opts.zoom;
var src=opts.src;
var data=opts.data;
var title=opts.title;
var bgcolor=opts.bgcolor;
var titH=Math.floor(height*0.3);
if(!title)titH=0;
return this.each(function() {
$this = $(this);
var tit=$('<div></div>');
tit.text(title);
var swf=$('<div></div>');
var swfWidth=Math.floor(width*zoom);
var swfHeight=Math.floor(height*zoom);
swf.html(swfHTML(swfWidth,swfHeight,src,data));
var marginTop=-1*Math.floor((height-titH)*(zoom-1)/2);
var marginLeft=-1*Math.floor(width*(zoom-1)/2);
var con=$('<div></div>');
con.append(swf).append(tit);
con.css({width:width,height:height,'text-align':'center','margin-right':'auto','margin-left':'auto',overflow:'hidden'});
con.css({position:'relative'});
swf.css({width:swfWidth,height:swfHeight,'margin-top':marginTop,'margin-left':marginLeft});
swf.css({position:'absolute',top:0,left:0});
$this.empty().append(con);
tit.css({'text-align':'center','margin-right':'auto','margin-left':'auto',overflow:'hidden','font-size':'13px'});
tit.css({position:'absolute',top:5,left:0,width:'100%'});
});
function swfHTML(width,height,src,dataXML,bgcolor){
var swfNode='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ width +'" height="'+ height +'">"';
swfNode += '<param name="movie" value="'+ src+'?chartWidth='+width+'&chartHeight='+height+'" />';
swfNode += '<param name="quality" value="high" />';
swfNode += '<param name="wmode" value="Opaque" />';
swfNode += '<param name="bgcolor" value="'+bgcolor+'" />';
swfNode += '<param name="FlashVars" value="&dataXML='+dataXML+'" />';
swfNode += '<embed src="'+src+'?chartWidth='+width+'&chartHeight='+height+'" ';
swfNode += 'flashVars="&dataXML='+dataXML+'" ';
swfNode += 'quality="high" width="'+width+'" height="'+height+'" wmode="Opaque" bgcolor="'+bgcolor+'"';
swfNode += 'type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
swfNode += '</object>';
return swfNode;
}
}
$.fn.FusionChart.defaults = {
width:250,
height:200,
src:'',
data:'',
title:'',
zoom:1,
bgcolor:'#FFFFFF'
}
})(jQuery);
分享到:
相关推荐
**jQuery Validation Engine 插件详解** 在Web开发中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预设的规则,...在实际开发中,结合使用其他jQuery插件和前端框架,能更好地构建出高效、友好的Web应用。
标题 "我的第一个jQuery插件 -- 圆角DIV" 指涉的是一个关于创建自定义jQuery插件的教程,该插件主要用于实现HTML元素(尤其是DIV)的圆角效果。在早期的Web开发中,CSS2无法直接创建圆角,所以开发者会利用...
- **相邻兄弟选择器**: `$("prev + next")`选取紧跟在`prev`元素后的第一个`next`元素。 - **通用选择器**: `*$("*")`选取页面上的所有元素。 ## jQuery 插件的使用 jQuery插件是扩展jQuery功能的代码片段,它们...
"jQuery插件大全(内含Demo)"是一个宝贵的资源库,涵盖了网页开发所需的多种功能。通过学习和应用这些插件,开发者不仅可以快速构建功能丰富的网页,还能提升自身技能,更好地应对日益复杂和多变的前端开发需求。在...
在第一种形态下,我们可以通过`$.fn.extend`方法将一个对象作为函数附加到jQuery的原型上,使得通过`$(selector).pluginName()`的形式调用这个插件。 ### 二、参数支持 - 提高灵活性 第二种形态是在基础形态上添加...
【标题】"我的第一个jQuery插件-伪3D图片播放" 涉及的主要知识点是JavaScript库jQuery的扩展,以及创建具有伪3D效果的图片滚动插件。在这个项目中,开发者通过编写自定义的jQuery插件实现了动态的、具有立体感的...
我们在编写js的时候,如果采用了jquery框架,当然很希望Eclipse能帮我们完成代码自动完成的功能了,但Eclipse默认只是支持js的代码自动完成,利用这个插件,可以让Eclipse支持jquery的代码自动完成功能(前提:...
例如,"Bootstrap"是一个流行的设计框架,其中包含了许多jQuery插件,如Modal对话框、Dropdown下拉菜单和Carousel轮播图等。 要下载jQuery插件,通常有以下几种途径: 1. 官方网站:访问jQuery官方网站...
一个jQuery插件通常是一个函数,通过$.fn.extend()方法扩展了jQuery对象的原型链。在这个分页插件中,我们可能会看到类似以下的代码结构: ```javascript (function($) { $.fn.extend({ pagination: function...
标题中的“第二个jQuery文件 下载安装插件之一”暗示了我们正在讨论的是关于jQuery的某个特定版本或插件,可能是用户在寻找或者推荐的用于开发的资源。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、...
本文将深入探讨一个针对鼠标双击和触摸屏双击事件检测的jQuery插件——jQuery-doubleTap。 **一、插件简介** jQuery-doubleTap是一款专门用于检测鼠标双击和移动设备触摸屏双击事件的插件。它通过优化"click"和...
jQuery EasyUI 是一个强大的前端开发框架,它基于广泛使用的JavaScript库jQuery,专为构建用户界面而设计。这个框架的目标是让web开发者能够快速、轻松地创建功能完备且具有吸引力的用户交互界面,无需深入研究复杂...
【标题】"我的jQuery插件"揭示了这是一个与jQuery相关的个人开发项目,可能是一个自定义的、用于扩展jQuery功能的插件。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等...
教程分为三个部分,即“jQ学习第一季”、“jQ学习第二季”和“jQ学习第三季”,涵盖了jQuery的基础到高级应用。 在jQuery的学习过程中,首先需要理解jQuery的核心概念,包括选择器(Selector)、DOM操作、事件处理...
### jQuery插件开发精品教程 #### 一、引言 jQuery是一个广泛使用的JavaScript库,其核心功能之一是通过插件扩展其功能。在这一部分,我们将了解到插件对jQuery的重要性,以及如何使用插件来提升jQuery的能力。 ##...
下面将详细介绍一些常用的jQuery插件类别及其代表性插件。 ### 三、jQuery插件分类详解 #### 1. 文件上传插件 - **AjaxFileUpload**: 实现基于AJAX的文件上传功能。 - **jQUploader**: 强大的文件上传插件,支持多...
在这个“用户注册验证JQuery插件及实例”中,我们将探讨如何使用JQuery这一强大的JavaScript库来实现高效、友好的前端验证。 JQuery是一个轻量级、高性能的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计...
active: 0, // 初始选中第一个选项卡 animation: {duration: 500} // 动画持续500毫秒 }); ``` ### 四、常见JQuery选项卡插件 1. **jQuery UI Tabs**:这是官方提供的一个强大且高度可定制的选项卡组件,提供了...