3) Thành tỷ lệ kèo cá cược bóng đá radar

Các thành tỷ lệ kèo cá cược bóng đá trước hiển thị HTML, nhưng thành tỷ lệ kèo cá cược bóng đá radarHTML?Không có sự khác biệt lớn nào ngoại trừ điều đó Hơn nữa,tương thích với các trình duyệt hiện đại sau IE9, vì vậy nó có thể được vẽ mà không gặp vấn đề gì trong hầu hết các môi trường Nếu bạn muốn làm cho nó tương thích với IE6, 7 và 8, bạn cũng sẽ cần sử dụng công nghệ có tên VML, nhưng lần này nó không được hỗ trợ VML (Ngôn ngữ đánh dấu vectơ) là ngôn ngữ XML để vẽ hình ảnh ở định dạng vector, là định dạng dữ liệu để thể hiện đồ họa máy tính hai chiều bên trong máy tính
Đầu tiên, chúng ta hãy xem Radarjsx
varPhản ứng= yêu cầu'Phản ứng';varRadarTiền cảnh= yêu cầu'/RadarForeground';varRadarNền= yêu cầu'/RadarBackground';varHằng số= yêu cầu'/Hằng số';varRa-đa=Phản ứngcreateClasstrở về<khóa svg="Rađa"chiều rộng=Hằng sốRADER_WIDTHchiều cao=Hằng sốRADER_HEIGHT><RadarBackground nămTháng=cái nàyđạo cụnămThángdanh mục=cái nàyđạo cụdanh mụcisChildCategory=cái nàyđạo cụisChildCategory/><RadarForeground dotPosition=cái nàyđạo cụdotPositionđã chọnOssId=cái nàyđạo cụđã chọnOssId/></svg>;;mô-đunxuất=Ra-đa;
Như bạn có thể thấy trong mã ở trên, có hai thành tỷ lệ kèo cá cược bóng đá bên trong thẻ svg
| Tên phương thức | Vẽ gì vậy |
|---|---|
| RadarBackground | Nền radar |
| Tiền cảnh Radar | Dấu chấm thể hiện thứ hạng |
Bản vẽ thực tế được thực hiện trong từng thành tỷ lệ kèo cá cược bóng đá Đầu tiên, chúng ta hãy xem RadarBackground
RadarBackground

trở về<g>cái này_circlescái này_borderscái này_rankscái này_categoryName</g>;
Phương thức kết xuất bao gồm bốn phương thức Chúng ta sẽ lần lượt xem xét từng cái
| Tên phương thức | Mô tả |
|---|---|
| _circles | Vẽ hình tròn nền |
| _borders | Một đường thẳng ngăn cách các vòng tròn |
| _ranks | Tỷ lệ được đánh dấu 1,2,3,4 |
| _categoryName | Tên danh mục |
phương thức _circles

Phương pháp này vẽ tĩnh bốn vòng tròn đã tạonhư sau Tôi không làm điều gì đặc biệt khó khăn cả
ở trênChỉ cần gói các thẻ vòng tròn vào một mảng và trả lại Mã nguồn như dưới đây
varvòng tròn= ;cho vartôi= 0;tôi< 4;tôi++vòng kết nốiđẩy<phím vòng tròn="vòng tròn-" +tôicx=Hằng sốRADER_CENTER_Xcy=Hằng sốRADER_CENTER_Yr=tôi+ 1 *Hằng sốRADER_SPACINGđiền=Hằng sốRADER_FILLđột quỵ=Hằng sốRADER_COLOR></vòng tròn>;trở vềvòng kết nối;
_phương thức viền

Phương pháp này thay đổi số dòng được vẽ tùy thuộc vào số lượng danh mục Nếu có 5 tên danh mục thì có 5 mục Nếu có 6 tên danh mục thì có 6 mục Tính góc bằng số đường thẳng bạn vẽ và vẽ nó thực sự được tạo ranhư sau
Điều này được thể hiện trong mã nguồn như sau Tại thời điểm này, số lượng đường vẽ thay đổi tùy thuộc vào số lượng danh mục, vì vậy hãy tính góc từ số lượng danh mục và chuyển đổi nó sang tọa độ XY bằng các hàm lượng giác
varđường viền= ;cho vartôi= 0len= cái nàyđạo cụdanh mụcđộ dài;tôi<len;tôi++varseta= 2 * ToánPI/ len *tôi;vary=Hằng sốRADER_RADIUS* Toántội lỗiseta- ToánPI/2;varx=Hằng sốRADER_RADIUS* Toáncosseta- ToánPI/2;biên giớiđẩy<khóa đường dẫn="biên giới-" +tôiđiền=Hằng sốRADER_FILLđột quỵ=Hằng sốRADER_COLORd='M320,330l' +x+ ',' +y+ 'z'></path>;trở vềbiên giới;
phương thức _ranks

Vẽ số biểu thị thứ hạng radar Điều này không thay đổi tùy thuộc vào radar, do đó, tĩnh như sau
4321
Mã nguồn như sau
varxếp hạng= ;cho vartôi= 1;tôi<= 4;tôi++vary=Hằng sốRADER_CENTER_Y- Hằng sốRADER_SPACING*tôi + Hằng sốRADER_SPACING / 2;xếp hạngđẩy<khóa văn bản="xếp hạng-" +tôitên lớp="văn bản xếp hạng"x=Hằng sốRADER_CENTER_Xy=yphông chữ="10px Arial">5 -tôi</văn bản>;trở vềxếp hạng;
phương thức_categoryName

Vẽ tên danh mục bằng số lượng danh mục thực sự đã được vẽđược hiển thị dưới đây
Thư viện/KhungỨng dụngCông cụtỷ lệ kèo cá cược bóng đá mềm trung gianNền tảngHệ thống xử lý ngôn ngữ
Lúc này, văn bản của tên danh mục được tính toán để vẽ chính xác giữa các dòng được vẽ giống như phương thức _borders trước đó
var_cái này= cái này;trở về cái nàyđạo cụdanh mụcbản đồvarvăn bảnStyle=cỡ chữ: '14px'phông chữFamily: 'Arial'văn bảnAnchor: 'giữa';nếu !_thisđạo cụisChildCategorytextStylecon trỏ= 'con trỏ';vardịch= 'dịch(' + Hằng sốRADER_CENTER_X+ ',' +Hằng sốRADER_CENTER_Y+ ')';varcung= 360/ _nàyđạo cụdanh mụcđộ dài;varradian=cung*tôi+cung /2;varxoay= 'xoay(' +radian+ ')';varbiến đổi=dịch+ ' ' +xoay;//Xoay nhãn dưới cùng 180 độvarnhãnRot=radian> 90 &&radian< 270 ? 180 : 0;trở lại<phím g='danh mục-nhãn-nhóm-' +tôibiến đổi=chuyển đổi><khóa văn bản='nhãn danh mục-' +tôitên lớp="nhãn danh mục"dữ liệu-mã danh mục=danh mụcidbiến đổi='xoay(' +nhãnRot+ ',0,-300)'y="-300"đột quỵ="không có"điền="#666666"phong cách=textStyle>danh mụctên hiển thị</văn bản></g>;;
Các phương pháp khác
phương thức thành phầnDidMount cho biết thành tỷ lệ kèo cá cược bóng đá này làĐược thực thi khi được thêm vào cây Ở đây, một sự kiện nhấp chuột được thêm vào nội dung Bằng cách gán sự kiện nhấp chuột vào thẻ body, bạn có thểđây Tốt hơn là nên nhận các sự kiện ở cấp cao nhất có thể trong hệ thống phân cấp, vì điều này hiệu quả hơn việc chỉ định trình xử lý sự kiện nhấp chuột cho từng tỷ lệ kèo cá cược bóng đá tử
Phương thức _categoryClick được đăng ký làm trình nghe như sau
nếu emục tiêutên thẻtoUpperCase !== 'TEXT' || cái nàyđạo cụisChildCategory trở lại;varid danh mục=emục tiêugetAttribution'id danh mục dữ liệu';cái nàychuyển sangHằng sốROOT_PATH+ 'radarPhạm vi/danh mục/' +id danh mục+ '/' + cái nàyđạo cụnămTháng;
Thẻ được nhấp vàothì màn hình sẽ chuyển tiếp Nói cách khác, trong trường hợp này, nó giống như khi danh mục được nhấp vào Thực thi phương thức transitionTo của ReactRouter
RadarForeground

varPhản ứng= yêu cầu'Phản ứng';varuuid= yêu cầu'nút-uuid';varDấu chấm= yêu cầu'/Dot';varRadarStore= yêu cầu'/stores/RadarStore';varHằng số= yêu cầu'/Hằng số';varRadarTiền cảnh=Phản ứngtạoLớpvar_cái này= cái này;varvị trí= cái nàyđạo cụdotPosition;varx= {};trở lại<phím g="tiền cảnh">vị tríbản đồtrở lại <Phím chấm='dấu chấm-' +vị trísản phẩmidsố=possốđiền=posmàusản phẩm=possản phẩmx=posxy=posyđã chọnOssId=_thisđạo cụđã chọnOssId/></g>;;mô-đunxuất khẩu=RadarTiền cảnh;
RadarForeground đang vẽ các dấu chấm Một Dot được tạo đơn giản dựa trên thông tin dotPosition được truyền dưới dạng đạo cụ
Dấu chấm

Dấu chấm tượng trưng cho từng dấu chấm trên Nếu bạn nghĩ về nó một mình, nó không khó chút nào Tuy nhiên, thành tỷ lệ kèo cá cược bóng đá Dot sẽ hoạt hình khi vị trí của nó thay đổi Tính năng này bao gồmTôi đang sử dụng thẻ animateTransform cho chức năng hoạt ảnh, nhưng Reactjs không nhận dạng tốt thẻ này nên tôi sẽ tạo thẻ animateTransform bằng phương thức thành phầnDidUpdate
Thực tếsẽ trông như thế này:
110
Cũngsẽ hiển thị theo cùng một cách
varCircleStyle=điền: cái nàyđạo cụđiềnđột quỵ: cái nàyđạo cụđiền;varvăn bảnStyle=phông chữFamily: 'Arial'đột quỵ: 'không có'điền: '#ffffff'văn bảnAnchor: 'giữa'cỡ chữ: '9px'phông chữWeight: 'đậm';nếu !smilSupport|| !cái này_prevXvarbiến đổi= 'dịch(' + cái nàyđạo cụx + ',' + cái nàyđạo cụy + ')';khácvarbiến đổi= 'dịch(' + cái này_prevX+ ',' + cái này_prevY+ ')';varchìa khóa= "dot-" + cái nàyđạo cụsố;trở lại<phím g=khóagiới thiệu="g"biến đổi=chuyển đổi>cái này_selectedCirclekhóa<phím vòng tròn=khóa + '-vòng tròn'r="8"phong cách=circleStyletrênMouseOver=cái này_onMouseOver></vòng tròn><khóa văn bản=khóa + '-văn bản'y="3"phong cách=textStyletrênMouseOver=cái này_onMouseOver>cái nàyđạo cụsố</văn bản></g>;
Đối với thẻ animateTransform trực tiếp trong phương thức thành phầnDidUpdate
Cuối cùng
Tôi phải mất một tháng ngoài giờ làm việc nhưng đã có thể triển khai lại OSS Radar Scope® bằng Reactjs (*Internet Explorer không được hỗ trợ, vì vậy vui lòng xem nó trong một trình duyệt khác Ngoài ra, nếu nó được hiển thị, hãy thử chỉ định "tháng hiển thị" ở cột bên trái)
Tôi cảm thấy Reactjs cho phép tôi viết mã rõ ràng mà không làm cho nó quá phức tạp Tôi không có kinh nghiệm với nhiều người phát triển bằng Reactjs, nhưng tôi nghĩ nó dễ phát triển hơn jQuery truyền thống vì các thành tỷ lệ kèo cá cược bóng đá có thể được tách biệt rõ ràng Tôi hy vọng có thể sử dụng nó trong các dự án phát triển thực tế trong tương lai
