From 57e5923a4d96f95ac32919510326be9ec1df4a8e Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Sat, 2 Jan 2021 18:16:25 +0100 Subject: [PATCH] apply performance optimizations to s-meter, too --- htdocs/css/openwebrx.css | 23 +++++++++++++---------- htdocs/index.html | 4 ++-- htdocs/openwebrx.js | 20 +++++++++++++------- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/htdocs/css/openwebrx.css b/htdocs/css/openwebrx.css index f4fa7f6..c2e87fc 100644 --- a/htdocs/css/openwebrx.css +++ b/htdocs/css/openwebrx.css @@ -676,8 +676,7 @@ img.openwebrx-mirror-img } } -#openwebrx-smeter-outer -{ +#openwebrx-smeter { border-color: #888; border-style: solid; border-width: 0px; @@ -685,16 +684,20 @@ img.openwebrx-mirror-img height: 7px; background-color: #373737; border-radius: 3px; - position: relative; + overflow: hidden; } -#openwebrx-smeter-bar -{ - transition: all 0.2s linear; - width: 0px; - height: 7px; + +.openwebrx-smeter-bar { + transition-property: transform; + transition-duration: 0.2s; + transition-timing-function: linear; + will-change: transform; + transform: translate(-100%) translateZ(0); + width: 100%; + height: 100%; background: linear-gradient(to top, #ff5939 , #961700); - position: absolute; - margin: 0; padding: 0; left: 0; + margin: 0; + padding: 0; border-radius: 3px; } diff --git a/htdocs/index.html b/htdocs/index.html index 21dd986..3932923 100644 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -151,8 +151,8 @@
0 dB
-
-
+
+
diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js index 594f0b5..05bce97 100644 --- a/htdocs/openwebrx.js +++ b/htdocs/openwebrx.js @@ -151,13 +151,19 @@ function waterfallColorsContinuous(levels) { function setSmeterRelativeValue(value) { if (value < 0) value = 0; if (value > 1.0) value = 1.0; - var bar = e("openwebrx-smeter-bar"); - var outer = e("openwebrx-smeter-outer"); - bar.style.width = (outer.offsetWidth * value).toString() + "px"; - var bgRed = "linear-gradient(to top, #ff5939 , #961700)"; - var bgGreen = "linear-gradient(to top, #22ff2f , #008908)"; - var bgYellow = "linear-gradient(to top, #fff720 , #a49f00)"; - bar.style.background = (value > 0.9) ? bgRed : ((value > 0.7) ? bgYellow : bgGreen); + var $meter = $("#openwebrx-smeter"); + var $bar = $meter.find(".openwebrx-smeter-bar"); + $bar.css({transform: 'translate(' + ((value - 1) * 100) + '%) translateZ(0)'}); + if (value > 0.9) { + // red + $bar.css({background: 'linear-gradient(to top, #ff5939 , #961700)'}); + } else if (value > 0.7) { + // yellow + $bar.css({background: 'linear-gradient(to top, #fff720 , #a49f00)'}); + } else { + // red + $bar.css({background: 'linear-gradient(to top, #22ff2f , #008908)'}); + } } function setSquelchSliderBackground(val) {