国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

jQuery實(shí)現(xiàn)帶漸顯效果的人物多級(jí)關(guān)系圖代碼

2019-11-20 11:27:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了jQuery實(shí)現(xiàn)帶漸顯效果的人物多級(jí)關(guān)系圖。分享給大家供大家參考。具體如下:

這里演示jQuery實(shí)現(xiàn)帶漸顯效果的人物多級(jí)關(guān)系圖,setQuestPose:function中的n代表共幾個(gè)對(duì)象 r代表周長(zhǎng) i代表第幾個(gè)對(duì)象 w代表外面對(duì)象的寬帶 h代表外面對(duì)象的高度 d代表其實(shí)角度,測(cè)試時(shí)請(qǐng)注意,如果右下角提示有錯(cuò)誤,請(qǐng)重新刷新頁(yè)面即可。

運(yùn)行效果截圖如下:

在線演示地址如下:

http://demo.VeVB.COm/js/2015/jquery-show-gxt-style-demo/

具體代碼如下:

<!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><title>jQuery漸顯效果的人物多級(jí)關(guān)系圖</title><meta http-equiv="content-type" content="text/html;charset=gb2312"><style type="text/css">#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="jquery1.3.2.js"></script><script type="text/javascript">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:"娛樂(lè)圈"}, {name:"成龍",relationship:"激吻"}, {name:"黃立行",relationship:"電影"}] }, {name:"方大同",friend:[ {name:"房祖名",relationship:"情敵"}, {name:"薛凱琪",relationship:"否認(rèn)拍拖"}, {name:"林宥嘉",relationship:"歌手"}, {name:"韓庚",relationship:"演唱會(huì)"}] }, {name:"薛凱琪",friend:[ {name:"方大同",relationship:"否認(rèn)拍拖"}, {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){//傳入?yún)?shù)1:數(shù)組 參數(shù)2:第幾個(gè) 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代表共幾個(gè)對(duì)象 r代表周長(zhǎng) i代表第幾個(gè)對(duì)象 w代表外面對(duì)象的寬帶 h代表外面對(duì)象的高度 d代表其實(shí)角度 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>看不到效果,刷新一下就可以了;<br><div id="box"></div></body></html>

希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 五常市| 南充市| 南华县| 安仁县| 维西| 鄂州市| 上虞市| 合肥市| 江都市| 沽源县| 邹城市| 诸暨市| 儋州市| 昆明市| 习水县| 墨竹工卡县| 德州市| 拉孜县| 揭东县| 句容市| 顺义区| 中方县| 阿瓦提县| 鲁甸县| 连云港市| 那坡县| 南木林县| 阿巴嘎旗| 美姑县| 衡水市| 龙口市| 灵武市| 天祝| 寿阳县| 东港市| 万山特区| 浦城县| 龙州县| 高陵县| 松桃| 灵宝市|