亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery動態效果顯示人物結構關系圖的方法

2019-11-20 12:31:56
字體:
來源:轉載
供稿:網友

本文實例講述了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="jquery-1.6.2.min.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)})</script></head><body><div id="box"></div></body></html>

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日产精品久久久一区二区福利| 国产精品久久久久久久一区探花| 亚洲男人天堂2019| 国产精品一区二区久久| 亚洲视频精品在线| 成人免费网站在线看| 亚洲欧美国产另类| 好吊成人免视频| 欧美日韩国产区| 国产亚洲精品一区二区| 欧美日韩激情视频8区| 亚洲精品欧美日韩专区| 亚洲大胆美女视频| 成人午夜高潮视频| 成人女保姆的销魂服务| 亚洲福利在线看| 自拍偷拍亚洲一区| 久久久久久久一| 久久精品2019中文字幕| 欧美日韩亚洲一区二区三区| 国产精品欧美一区二区三区奶水| 亚洲片国产一区一级在线观看| 欧美成人午夜激情| 日本精品免费一区二区三区| 岛国av午夜精品| 欧美电影电视剧在线观看| 久久精品中文字幕免费mv| 久久九九免费视频| 成人激情免费在线| 国产精品自拍小视频| 亚洲a在线播放| 久久精品91久久久久久再现| 国产精品日韩欧美| 成人欧美在线观看| 久久五月天综合| xxx一区二区| 91成人在线视频| 欧美有码在线观看视频| 亚洲高清在线观看| 精品女厕一区二区三区| 色久欧美在线视频观看| 国产激情久久久| 成人乱色短篇合集| 欧美激情第1页| 午夜精品国产精品大乳美女| 亚洲影院色在线观看免费| 日韩精品在线电影| 在线观看久久久久久| 成人精品视频在线| 亚洲视频在线观看视频| 1769国内精品视频在线播放| 国产精品福利无圣光在线一区| 久久综合88中文色鬼| 久久精品中文字幕一区| 精品国产老师黑色丝袜高跟鞋| 欧美精品在线观看91| 国产视频丨精品|在线观看| 伊人久久五月天| 亚洲欧美激情一区| 亚洲电影免费观看高清完整版| 国产精品久久久久7777婷婷| 久久夜色精品亚洲噜噜国产mv| 日韩一区二区av| 欧美视频裸体精品| 国产精品av免费在线观看| 成人激情视频在线观看| 久久精品国产一区| 日韩在线视频导航| 日韩在线观看高清| 久久韩国免费视频| 中文字幕九色91在线| 日韩电影中文字幕一区| 国产亚洲精品91在线| 欧美最猛性xxxxx亚洲精品| 欧美重口另类videos人妖| 欧美麻豆久久久久久中文| 精品一区二区三区电影| 国产精品入口福利| 福利一区视频在线观看| 国产精品电影一区| 午夜精品在线视频| 粉嫩老牛aⅴ一区二区三区| 日韩av影片在线观看| 久久综合色影院| 日本高清视频一区| 国产日韩专区在线| 亚洲国产精品成人av| 亚洲一区二区三区乱码aⅴ| 中文字幕欧美专区| 亚州国产精品久久久| 日韩网站免费观看高清| 日韩国产欧美区| 国产精品丝袜久久久久久高清| 欧美激情久久久久久| 国产精品无av码在线观看| 一区二区欧美日韩视频| 91黑丝在线观看| 欧美在线播放视频| 国产日韩欧美日韩大片| 亚洲国产成人久久综合| 最近2019中文字幕第三页视频| 日韩精品免费在线视频| 欧美人在线视频| 国产+成+人+亚洲欧洲| 欧美精品免费在线观看| 亚洲欧美成人一区二区在线电影| 国产成人高清激情视频在线观看| 姬川优奈aav一区二区| 中文字幕在线观看日韩| 国产精品一区二区久久精品| 成人a在线视频| 91精品在线一区| 国产精品精品一区二区三区午夜版| 日韩欧美在线免费| 91人成网站www| 亚洲第一天堂av| 国产91在线播放精品91| 久久国产精品久久精品| 国产精品久久久av| 欧美尺度大的性做爰视频| 久久久久久国产精品美女| 欧美亚洲一级片| 亚洲精品免费一区二区三区| 日韩网站在线观看| 欧美福利视频网站| 欧美乱大交做爰xxxⅹ性3| 欧美一级视频一区二区| 欧美精品在线看| 国产在线精品播放| 欧美日韩电影在线观看| 亚洲最大的成人网| 中文字幕欧美专区| 亚洲丁香久久久| 亚洲成人久久久| 在线观看久久久久久| 亚洲视频在线观看视频| 亚洲精品福利免费在线观看| 国产综合久久久久| 欧美午夜激情小视频| 久久久国产精彩视频美女艺术照福利| 亚洲一区www| 91国产在线精品| 久久视频在线免费观看| 国产日本欧美一区二区三区在线| 91人人爽人人爽人人精88v| 午夜精品久久久久久99热| 精品国产乱码久久久久久天美| 国产精品久久久久久久久免费| 亚洲欧美综合区自拍另类| 亚洲国产日韩一区| 欧美美女18p| 久久免费视频网| 欧美巨猛xxxx猛交黑人97人| 日韩欧美一区二区在线| 国产精品国内视频| 日韩二区三区在线| 国产精品丝袜一区二区三区| 日韩精品视频三区| www国产亚洲精品久久网站| 国产精品久久久久av| 日本久久久久亚洲中字幕| 亚洲黄色www网站| 亚洲影院在线看| 国产成人精彩在线视频九色|