jquery 人物关系图 圆角

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
#box{ width:500px; height:500px; position: relative}
.host{ position:absolute; width:100px; height:50px; line-height:50px; text-align:center; color:#000000; background-color:#eeeeee ; border:#000000 1px solid; font-weight:bolder}
.guest{position:absolute; width:80px; height:40px; line-height:40px;text-align:center; color: #999999; background-color:#FFFFFF ; border:#000000 1px solid; cursor:pointer}
.relationship{position:absolute; width:60px; height:20px;  color: #aaa; line-height:20px; font-size:12px; text-align:center}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script src="http://www.zhangxinxu.com/study/js/jquery.corner.js"></script>
<script>
var relationName = [
        {name:"成龙",friend:[
                {name:"房祖名",relationship:"父子"},
                {name:"林凤娇",relationship:"夫妻"},
                {name:"吴绮莉",relationship:"绯闻"},
                {name:"徐静蕾",relationship:"激吻"}]
        },
        {name:"房祖名",friend:[
                {name:"成龙",relationship:"父子"},
                {name:"林凤娇",relationship:"母子"},
                {name:"方大同",relationship:"情敌"},
                {name:"薛凯琪",relationship:"女友"},
                {name:"陈坤",relationship:"朋友"},
                {name:"赵薇",relationship:"朋友"}]
        },
        {name:"林凤娇",friend:[
                {name:"成龙",relationship:"夫妻"},
                {name:"房祖名",relationship:"母子"},
                {name:"吴绮莉",relationship:"情敌"}]
        },
        {name:"吴绮莉",friend:[
                {name:"成龙",relationship:"绯闻"},
                {name:"林凤娇",relationship:"情敌"},
                {name:"吴卓林",relationship:"母女"}]
        },
        {name:"徐静蕾",friend:[
                {name:"李亚鹏",relationship:"电影"},
                {name:"韩寒",relationship:"娱乐圈"},
                {name:"成龙",relationship:"激吻"},
                {name:"黄立行",relationship:"电影"}]
        },
        {name:"方大同",friend:[
                {name:"房祖名",relationship:"情敌"},
                {name:"薛凯琪",relationship:"否认拍拖"},
                {name:"林宥嘉",relationship:"歌手"},
                {name:"韩庚",relationship:"演唱会"}]
        },
        {name:"薛凯琪",friend:[
                {name:"方大同",relationship:"否认拍拖"},
                {name:"房祖名",relationship:"女友"}]
        }
]

var relation = {
        radius:150,
        boxW:500,
        boxH:500,
        hostW:100,
        hostH:50,
        guestW:80,
        guestH:40,
        relationW:60,
        relationH:20,
        angle:0,
        id:"box",
        init:function(array,n){//传入参数1:数组 参数2:第几个
                this.array = array;
                this.appendHost(this.array,n);
                this.appendQuest(this.array,n);
                this.appendRelationShip(this.array,n);
        },
       
        appendHost:function(array,n){
                var box = $("#"+this.id);
                var host ="<span class='host'>"+array[n].name+"</span>";
                box.append(host)
                this.postHost();
        },
       
        postHost:function(){
                var x = (this.boxW - this.hostW)/2;
                var y = (this.boxH - this.hostH)/2;
                $(".host").css({
                        left:x,
                        top:y
                })
        },
       
        appendQuest:function(array,n){
                var box = $("#"+this.id);
                var guests="";
                var that = this;
                for(var i=0; i<array[n].friend.length; i++){
                        guests+="<span class='guest'>"+array[n].friend[i].name+"</span>";
                }
                $(guests).appendTo(box);
                $(".guest").live("click",function(){
                        that.move(that,this);
                })
                this.postQuest();
        },
       
        postQuest:function(){
                var guests = $(".guest");
                var that = this;
                guests.each(function(i){
                        guests.eq(i).css({
                                left:that.setQuestPose(guests.length,that.radius,i,that.guestW,that.guestH,that.angle).left,
                                top:that.setQuestPose(guests.length,that.radius,i,that.guestW,that.guestH,that.angle).top
                        }).attr("angle",i/guests.length)
                })
        },
       
        setQuestPose:function(n,r,i,w,h,d){//n:代表共几个对象 r代表周长 i代表第几个对象 w代表外面对象的宽带 h代表外面对象的高度 d代表其实角度
                var p = i/n*Math.PI*2+Math.PI*2*d;
                var x = r * Math.cos(p);
                var y = r * Math.sin(p);
                return {
                        "left":parseInt(this.boxW/2+ x - w/2),
                        "top":parseInt(this.boxH/2 + y - h/2)
                }
        },
       
        appendRelationShip:function(array,n){
                var box = $("#"+this.id);
                var relation="";
                for(var i=0; i<array[n].friend.length; i++){
                        relation+="<span class='relationship'>"+array[n].friend[i].relationship+"</span>";
                }
                box.append(relation);
                this.postRelationShip();
        },
       
        postRelationShip:function(){
                var guests = $(".relationship");
                var that = this;
                guests.each(function(i){
                        guests.eq(i).css({
                                left:that.setQuestPose(guests.length,that.radius/2,i,that.relationW,that.relationH,that.angle).left,
                                top:that.setQuestPose(guests.length,that.radius/2,i,that.relationW,that.relationH,that.angle).top
                        })
                })
        },
       
        move:function(t,i){
                var n = $(".guest").index($(i));
                this.angle = parseFloat($(i).attr("angle"))+0.5;
               
                this.delect(n);
               
                this.moveHost(i);
                this.moveQuest(i);
                this.moveRelationship(i);
               
                this.changeClass();
               
                setTimeout(function(){t.newAppend(i)},500);
        },
       
        newAppend:function(i){
                this.newAppendGuest(i,"guest","name",this.guestW,this.guestH,this.radius);
                this.newAppendGuest(i,"relationship","relationship",this.relationW,this.relationH,this.radius/2);
               
        },

       
        newAppendGuest:function(i,className,name,w,h,r){
                var host = $(i).html();
                var guest = $(".guest").html();
                var box = $("#"+this.id);
                var that = this;
                var next=0;
                for(var i=0; i<this.array.length; i++){
                        if(host == this.array[i].name){
                                for(var j=0;j<this.array[i].friend.length; j++){
                                        if(guest !== this.array[i].friend[j].name){
                                                next++;
                                                var guests ="<span class='"+className+"'>"+this.array[i].friend[j][name]+"</span>";
                                                $(guests).appendTo(box).css({
                                                        left:that.setQuestPose(this.array[i].friend.length,r,next,w,h,that.angle).left,
                                                        top:that.setQuestPose(this.array[i].friend.length,r,next,w,h,that.angle).top
                                                }).attr("angle",that.angle+next/this.array[i].friend.length).hide().fadeIn(1000);
                                        }
                                }
                        }
                }
        },
       
       
        moveHost:function(i){
                var hLeft = parseInt($(".host").css("left")) + this.hostW/2;
                var hTop = parseInt($(".host").css("top"))  + this.hostH/2;
                var gLeft = parseInt($(i).css("left")) + this.guestW/2;
                var gTop = parseInt($(i).css("top")) + this.guestH/2;
                var l = gLeft - hLeft;
                var t = gTop - hTop;
                var left = (hLeft - l - this.guestW/2)+"px";
                var top = (hTop - t - this.guestH/2)+"px";
                this.animate(".host",left,top);
        },
       
        moveRelationship:function(i){
                var hLeft = parseInt($(".host").css("left")) + this.hostW/2;;
                var hTop = parseInt($(".host").css("top")) + this.hostH/2;
                var gLeft = parseInt($(".relationship").css("left")) + this.relationW/2;
                var gTop = parseInt($(".relationship").css("top"))  + this.relationH/2;
                var l = gLeft - hLeft;
                var t = gTop - hTop;
                var left = (hLeft - l - this.relationW/2)+"px";
                var top = (hTop - t - this.relationH/2)+"px";
                this.animate(".relationship",left,top);
        },
       
        moveQuest:function(i){
                var left = $(".host").css("left");
                var top = $(".host").css("top");
                this.animate(i,left,top);
        },
       
        delect:function(n){
                $(".guest").slice(0,n).remove();
                $(".guest").slice(1).remove();
                $(".relationship").slice(0,n).remove();
                $(".relationship").slice(1).remove();
        },
       
        animate:function(i,left,top){
                $(i).animate({
                        left:left,
                        top:top
                },500);
        },
       
        changeClass:function(){
                var that =this;
                $(".guest").addClass("abcdef").removeClass("guest");
                $(".host").addClass("guest").removeClass("host").attr("angle",that.angle);
                $(".abcdef").addClass("host").removeClass("abcdef").attr("angle",null);
        }
       
}

$(document).ready(function(){
        relation.init(relationName,0)
		$("span").corner("round60px");
})
</script>
</head>

<body>
<div id="box"></div>

</body>
</html>

 

实现CSS3圆角效果的jQuery Corners插件指南 本文还有配套的精品资源,点击获取 简介:本文介绍jQuery Corners 0.3_0插件,它是一个轻量级JavaScript工具,通过API实现CSS3圆角效果,确保在不支持CSS3的旧版浏览器中提供一致的用户体验。插件兼容多种浏览器,支持渐变背景和图片背景下的圆角处理,并与其他jQuery插件兼容。文章详细说明了插件的安装、使用方法和实际应用中的价值,包括自定义圆角大... 阅读详情

相关推荐

JQUERY CSS3实现文本圆角与光晕效果指南

CSS3圆角技术是网页设计中不可或缺的一部分,它能够为元素的边角添加圆滑的视觉效果,从而提升用户界面的整体美观度。通过合理的运用圆角,可以使网站看起来更加现代、友好,并且能够突出重点内容。在传统的CSS文件中,我们常常会遇到重复使用的颜色值、字体大小等属性值。为了方便管理这些重复的数据,Sass引入了变量的概念。// 定义变量// 使用变量body {上述代码中,我们将字体和颜色定义为变量,在CSS中通过符号引用。

weixin_35294091的博客 1010

动态效果显示的人物结构的关系图

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <...

weixin_33919941的博客 989

geneajs:使用 htmljavascript 渲染家庭树亲属关系图

基因 一组用于处理家谱数据并呈现家谱/亲属关系图的 JavaScript。 它能做什么? 它显示 参考人 它的兄弟姐妹 所有的祖先 父母的兄弟姐妹和他们的后代 参考人的后代 后代、兄弟姐妹和参考人的(多个)配偶 去做 构建家谱数据结构的函数 处理 GEDCOM 文件的函数(读取、编辑、写入) 人员框的更多格式和数据 紧凑型树 ? 飞涨 ? 更多测试 我怎样才能使用它? 您确实需要一个具有以下元素的 javascript 对象: 谱系 兄弟姐妹1(数组,可选,参考人的兄弟姐妹,显示在左侧) 兄弟姐妹2(数组,可选,参考人的兄弟姐妹,显示在右侧) 父亲兄弟姐妹(数组,可选,参考人父亲的兄弟姐妹,显示在左侧) Mother_siblings(数组,可选,参考人母亲的兄弟姐妹,显示在右侧) 父亲(可选) 母亲(可选) 在这些里面你放了一个(或多个,如果它是一个数组) da

关系网络

Vis Network https://visjs.github.io/vis-network/examples/ echarts关系图 https://www.echartsjs.com/examples/zh/index.html#chart-type-graph

北京Java青年 1098

jquery html5三维线性人物关系图特效代码

jquery html5三维线性人物关系图特效代码

jQuery实现带渐显效果的人物多级关系图代码

本文实例讲述了jQuery实现带渐显效果的人物多级关系图。分享给大家供大家参考。具体如下: 这里演示jQuery实现带渐显效果的人物多级关系图,setQuestPose:function中的n代表共几个对象 r代表周长 i代表第几个对象 w代表外面对象的宽带 h代表外面对象的高度 d代表其实角度,测试时请注意,如果右下角提示有错误,请重新刷新页面即可。 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-show-gxt-style-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD

vue.js中使用d3.js画家谱关系图

为什么80%的码农都做不了架构师?>>> ...

weixin_34050427的博客 4579

中兴通讯招聘测评答题技巧,真题解析(附真题)

中兴招聘测评、中兴入职测评、中兴线上考试

guang221315221的博客 5803

亲属关系图及简表

祖   祖                             外     外                                             祖     祖           母   父                             父     母           │   │                             │     │

兰染 1万+

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3471

告别水印!Vue3项目集成Stimulsoft.Reports.js完整配置与激活指南

本文详细介绍了如何在Vue3项目中集成Stimulsoft.Reports.js,提供从授权策略到性能优化的完整解决方案。通过模块化架构设计和现代化引入方式,帮助开发者高效实现专业级报表功能,同时避免版权风险和水印问题,特别适合中小型项目需求。

weixin_33701294的博客 431

人员关系html,html5简单的人物关系图制作代码

特效描述:html5 人物关系图制作。jQuery html5图片创建人物关系图,引入js和jtopo,可以动态修改图片,人物关系结构制作代码代码结构1. 引入JS2. HTML代码$(document).ready(function() {var gxData={user:{img:'img/6.png'},other:[{x:200,y:33,size:56,img:'img/1.png',r...

weixin_35304361的博客 2281

从DC到DCG:手把手教你搭建物理感知综合流程(含DEF文件处理避坑指南)

本文详细介绍了从Design Compiler(DC)过渡到DC Topographical(DCT)和DC Graphical(DCG)的完整操作框架,特别针对DEF文件处理提供避坑方案。通过环境准备、工具升级、DEF文件处理、DCG综合配置等步骤,帮助开发者高效应对28nm以下工艺节点的物理感知综合挑战,显著提升时序收敛效率。

weixin_27966471的博客 380

jquery 做圆角

jQuery 圆角插件jquery.corner.js demo页面 1. 此插件最初由Dave Methvin书写。 2. 此插件demo页面由张鑫旭翻译并编辑,要查看原demo页面请点这里。 3. 此插件后经过几次的改进,目前此项目放在github上。 4. 当前最新版本的插件js下载:jquery.corner.js

lzq_it的专栏 1189

光学设计必知:Ansys Zemax中6种系统孔径类型的适用场景全解析

本文深入解析Ansys Zemax中6种系统孔径类型的适用场景,包括入瞳直径、像方空间F/#、物方空间NA等,帮助光学设计师精准控制光线选择和成像质量。通过实际案例和代码示例,详细讲解各孔径类型的计算原理、参数设置及在显微系统、激光扩束等场景中的优化策略,提升复杂光学系统设计效率。

weixin_29266007的博客 551

AMBA-CHI协议详解(三)

Write Transactions、Atomic transactions、 Stash transactions、 Dataless transactions的等各个事务的事务流。

Crazzy_M的博客 3180

html div怎么设置圆角,jquery设置div圆角

要设置DIV的圆角,最简单的办法莫过于使用CSS3配合HTML5,如果加上jquery,那么就更加灵活了,下面我们看几个例子。首先看看下面的这个图,下面的有编号内容的这个DIV,正是圆角的DIV,要实现起来实在太简单了。如果要实现上面的这个DIV的圆角,使用下面的一行代码即可。$("#DIV的ID号").css("border-radius","9px");注意,这是jquery的代码。其中,bo...

weixin_39966922的博客 3007

YOLO11多个点组合创新:GC10-DET缺陷检测 | DCNv4结合SPPF+11Detect创新性结合

DCNv4结合SPPF+11Detect创新性结合,原始mAP50为0.633 提升至0.651

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1290

html页面展示关系图,可拖拽的html5人物关系图代码

一款可拖拽的html5人物关系图代码,可以显示预设的人物头像、人物的关系等,可以鼠标拖拽来自由排列人物顺序,可以指定不同关系的连线样式。查看演示下载资源:33次 下载资源下载积分:20积分页面的body部分,设置好人物关系的canvas显示容器,代码如下: 页面的底部,需引入jQuery库和必要的JS文件,并设置好人物关系所有的显示内容,...

weixin_42510783的博客 2555

知识图谱(Knowledge Graph)原理与代码实战案例讲解

知识图谱(Knowledge Graph)原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍 1.1 问题的由来

AI天才研究院 1078

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

自写的一个jQuery圆角插件

下面介绍自己写的一个jQuery圆角的插件,功能非常简单。目前只能实现1px的固定弧度的圆角矩形边框。 原理是利用1px的div,具体实现看代码。 使用方法: view source print? 1 $('.test').round

脑袋不好使 560

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

html设置input圆角矩形_CSS+Jquery实现页面圆角框方法大全

所以我就想用一个既方便调用又方便更新的方法来实现,结果如愿以偿。先将此技术点总结如下:在此之前我也寻找过目前网络上最流行的做法的实现方案,大体共总结出7种方法,但是发现他们的方法多多少少都存在缺陷,后来我自己做出了我自己觉得满意的方法。先看目前网络上最流行的7种做法:1,无图片纯css圆角框收录理由:兼容性强,不用图形图一特点:1.不用任何图形,使用很多个div容器模拟出圆角效果。2.兼容性:通杀...

weixin_42107165的博客 1881

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

html圆角兼容jq,自写的一个jQuery圆角插件

原理是利用1px的div,具体实现看代码。使用方法:$('.test').rounder();这样会根据默认的设置产生一个圆角框,效果如图:圆角处会有点锯齿:(如果仅此而已,那肯定是不够的。我们会想加上自己的一个样式该怎么办?使用方法:$('.test').rounder({borderColor:'red',backgroundColor:'#EEE',color:'blue'});效果如图:接...

weixin_29243063的博客 159

超级好用的圆角插件jQuery Corner速成

********************************导言***********************************     虽然圆角页面很好看,但一直以来都不太好实现,一方面是没有CSS3,二是都得通过美工切图切出来角。但这些麻烦事即将过去,就是因为它:jQuery Corner的出现! *******************

feifei20081014的专栏 728

生成圆角的 jquery 插件

圆角效果 生成圆角的 jquery 插件代码提取于 thickbox网址http://jquery.com/demo/thickbox/jquery-latest.pack.js 下载地址http://jquery.com/src/jquery-latest.pack.js插件代码下载http://download1.youkuaiyun.com/down3/20070623/23162012797.

ggg Freak 2506

超级好用的圆角框制作——Jquery Corner

圆角页面很好看,但一直以来都不太好实现。即使牛腩老师在新闻发布系统中又是PS又是截图的给大家讲过如何制作圆角框,当现在想想,似乎都已经忘光了,在这里分享一种简单容易上手的制作方法——Jquery Corner。   简而言之,Jquery Corner一方面是没有CSS来控制样式,二来避免了PS美工切图的麻烦和烦恼,只需要简单的js引用和js操作,从而实现了很友好的圆角效果。 基本情况:

死理性派~~~~ 2336
上一篇: jquery 中国地图
下一篇: jquery 画线绑定元素关系(项目中为客户之间的关系)
sfSam
博客等级 码龄16年 13粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值