Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Canvas drawing example of angular

2025-01-19 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Network Security >

Share

Shulou(Shulou.com)06/01 Report--

An example of angular:

Run the following code

/ / reference the module angular.directives-round-progress; var APP = angular.module ('APP', [' angular.directives-round-progress']). Controller ('MainCtrl', function ($scope) {$scope.roundProgressData = {/ / this is the initialized data; label: 11, percentage: 0.11} / / redraw the canvas of the interface by listening on the roundProgressData attribute under scope; $scope.$watch (' roundProgressData', function (newValue) {newValue.percentage = newValue.label / 100) }, true);}); / *! * AngularJS RoundProgress Directive * * Copyright 2013 Stephane Begaudeau * Released under the MIT license * / angular.module ('angular.directives-round-progress', []). Directive (' angRoundProgress', [function () {var compilationFunction = function (templateElement, templateAttributes, transclude) {if (templateElement.length = 1) {/ / initialize DOM model, including initializing canvas, etc.) Var node = templateElement [0]; var width = node.getAttribute ('data-round-progress-width') | |' 400; var height = node.getAttribute ('data-round-progress-height') | |' 400; var canvas = document.createElement ('canvas'); canvas.setAttribute (' width', width); canvas.setAttribute ('height', height) Canvas.setAttribute ('data-round-progress-model', node.getAttribute (' data-round-progress-model')); / / equivalent to demo, replacing the original element; Node [XSS _ clean] .replaceChild (canvas, node); / / various configurations; var outerCircleWidth = node.getAttribute ('data-round-progress-outer-circle-width') | |' 20' Var innerCircleWidth = node.getAttribute ('data-round-progress-inner-circle-width') | |' 54th; var outerCircleBackgroundColor = node.getAttribute ('data-round-progress-outer-circle-background-color') | |' 505769; var outerCircleForegroundColor = node.getAttribute ('data-round-progress-outer-circle-foreground-color') | |' # 12eeb9; var innerCircleColor = node.getAttribute ('data-round-progress-inner-circle-color') | |' 505769' Var labelColor = node.getAttribute ('data-round-progress-label-color') | |' # 12eeb9 percent; var outerCircleRadius = node.getAttribute ('data-round-progress-outer-circle-radius') | |' 100percent; var innerCircleRadius = node.getAttribute ('data-round-progress-inner-circle-radius') | |' 70percent; var labelFont = node.getAttribute ('data-round-progress-label-font') | |' 50pt Calibri' Return {pre: function preLink (scope, instanceElement, instanceAttributes, controller) {var expression = canvas.getAttribute ('data-round-progress-model'); / / listens to the model and listens to an attribute when it is over; scope.$watch (expression, function (newValue, oldValue) {/ / Create the content of the canvas / / includes new and redrawn Var ctx = canvas.getContext ('2d'); ctx.clearRect (0,0, width, height); / / The "background" circle var x = width / 2; var y = height / 2; ctx.beginPath (); ctx.arc (x, y, parseInt (outerCircleRadius), 0, Math.PI * 2, false); ctx.lineWidth = parseInt (outerCircleWidth) Ctx.strokeStyle = outerCircleBackgroundColor; ctx.stroke (); / / The inner circle ctx.beginPath (); ctx.arc (x, y, parseInt (innerCircleRadius), 0, Math.PI * 2, false); ctx.lineWidth = parseInt (innerCircleWidth); ctx.strokeStyle = innerCircleColor; ctx.stroke () / / The inner number ctx.font = labelFont; ctx.textAlign = 'center'; ctx.textBaseline =' middle'; ctx.fillStyle = labelColor; ctx.fillText (newValue.label, x, y); / / The "foreground" circle var startAngle =-(Math.PI / 2) Var endAngle = (Math.PI * 2) * newValue.percentage)-(Math.PI / 2); var anticlockwise = false; ctx.beginPath (); ctx.arc (x, y, parseInt (outerCircleRadius), startAngle, endAngle, anticlockwise); ctx.lineWidth = parseInt (outerCircleWidth); ctx.strokeStyle = outerCircleForegroundColor; ctx.stroke ();}, true) }, post: function postLink (scope, instanceElement, instanceAttributes, controller) {}};}; var roundProgress = {/ / compile, first operate on dom, then listen on $socpe; compile: compilationFunction, replace: true}; return roundProgress;}])

New channel IELTS

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Network Security

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report