茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    jQuery動態(tài)效果顯示人物結構關系圖的方法
    來源:易賢網 閱讀:4178 次 日期:2015-05-11 14:37:45
    溫馨提示:易賢網小編為您整理了“jQuery動態(tài)效果顯示人物結構關系圖的方法”,方便廣大網友查閱!

    這篇文章主要介紹了jQuery動態(tài)效果顯示人物結構關系圖的方法,涉及jQuery操作json結構數(shù)據及鼠標事件的技巧,需要的朋友可以參考下

    這是一個人物關系圖,可動態(tài)展示,效果非常漂亮。點擊文字可出現(xiàn)動態(tài)關系圖的轉換效果。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "">

    <html xmlns="">

    <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){//傳入參數(shù)1:數(shù)組 參數(shù)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程序設計有所幫助。

    更多信息請查看IT技術專欄

    更多信息請查看腳本欄目

    2026上岸·考公考編培訓報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網