{"id":793,"date":"2026-04-04T16:15:46","date_gmt":"2026-04-04T16:15:46","guid":{"rendered":"https:\/\/iszbjg1yp8.onrocket.site\/?page_id=793"},"modified":"2026-04-04T17:54:45","modified_gmt":"2026-04-04T17:54:45","slug":"calculatrice-stylo","status":"publish","type":"page","link":"https:\/\/azentraresearchlabs.com\/fr\/pen-click-calculator\/","title":{"rendered":"Stylo Calculatrice"},"content":{"rendered":"<div class=\"wp-block-wd-section color-scheme-light wd-00a649e0\">\n<div class=\"wp-block-wd-infobox wd-hover-parent wd-align wd-icon-top wd-97c1e16c\">\n<div class=\"wp-block-wd-icon wd-da2fe74c\"><img loading=\"lazy\" decoding=\"async\" width=\"569\" height=\"568\" class=\"wp-image-121\" src=\"https:\/\/azentraresearchlabs.com\/wp-content\/uploads\/2026\/03\/Azentra-White-Logo-Transparent.png\" alt=\"\" srcset=\"https:\/\/azentraresearchlabs.com\/wp-content\/uploads\/2026\/03\/Azentra-White-Logo-Transparent.png 569w, https:\/\/azentraresearchlabs.com\/wp-content\/uploads\/2026\/03\/Azentra-White-Logo-Transparent-150x150.png 150w, https:\/\/azentraresearchlabs.com\/wp-content\/uploads\/2026\/03\/Azentra-White-Logo-Transparent-300x300.png 300w\" sizes=\"auto, (max-width: 569px) 100vw, 569px\" \/><\/div>\n\n\n\n<div class=\"wp-block-wd-container wd-dir-col wd-d783ab75\">\n<h1 class=\"wp-block-wd-title title wd-6385af35\">Stylo Calculatrice<\/h1>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-wd-paragraph wd-04b46947\">Cette calculatrice \u00e0 stylo est con\u00e7ue pour prendre en charge les conversions de mesures simples dans des environnements de recherche structur\u00e9s. En saisissant le contenu total d'un stylo et une valeur de mesure s\u00e9lectionn\u00e9e, l'outil fournit un nombre estim\u00e9 de clics bas\u00e9 sur des hypoth\u00e8ses standardis\u00e9es.<\/p>\n\n\n\n<div class=\"wp-block-wd-row wd-929e44dd\">\n<div class=\"wp-block-wd-column wd-align-is-lg-center wd-aa0326e0\">\n<style>\n.calculator-container {\n  display: flex;\n  gap: 40px;\n  align-items: center;\n  background: #f3f4f6;\n  padding: 30px;\n  max-width: 900px;\n}\n\n\/* LEFT SIDE *\/\n.calculator-left {\n  flex: 1;\n}\n\n.calculator-left label {\n  display: block;\n  margin-bottom: 6px;\n  font-weight: 500;\n  color: #444;\n}\n\n\/* INPUT *\/\n.input-group {\n  position: relative;\n  margin-bottom: 20px;\n}\n\n.input-group input {\n  width: 100%;\n  padding: 14px 55px 14px 14px;\n  border: 1px solid #dcdfe3;\n  font-size: 16px;\n  background: #fff;\n}\n\n.input-group span {\n  position: absolute;\n  right: 15px;\n  top: 50%;\n  transform: translateY(-50%);\n  color: #777;\n  margin-top: 13px;\n}\n\n\/* RESULT BOX *\/\n.result-box {\n  background: #e6e8eb;\n  padding: 10px;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n.result-label {\n  font-size: 14px;\n  color: #444;\n}\n\n.result-value {\n  font-size: 24px;\n  font-weight: 700;\n  color: #2d2d2d;\n}\n\n\/* RIGHT SIDE *\/\n.calculator-right {\n  flex: 0 0 auto;\n}\n\n.pen-wrapper {\n  position: relative;\n}\n\n.pen-wrapper img {\n  max-width: 200px;\n}\n\n\/* PEN DISPLAY *\/\n#penDisplay {\n  position: absolute;\n  top: 73%;\n  left: 52%;\n  transform: translate(-50%, -50%);\n  \n  font-size: 14px;\n  font-weight: 700;\n  color: #222;\n\n  min-width: 42px;\n  text-align: center;\n}\n\n\/* \ud83d\udd25 MOBILE FIX (side-by-side layout) *\/\n@media (max-width: 768px) {\n  .calculator-container {\n    flex-direction: row;\n    align-items: center;\n    gap: 15px;\n  }\n\n  .calculator-left {\n    flex: 1;\n  }\n\n  .calculator-right {\n    width: 120px;\n  }\n\n  .pen-wrapper img {\n    max-width: 100%;\n  }\n\n  #penDisplay {\n    font-size: 14px;\n    padding: 4px 8px;\n  }\n\n  .result-value {\n    font-size: 16px;\n  }\n\n  .input-group input {\n    font-size: 14px;\n    padding: 10px 45px 10px 10px;\n  }\n}\n<\/style>\n\n<div class=\"calculator-container\">\n\n  <!-- LEFT -->\n  <div class=\"calculator-left\">\n\n    <div class=\"input-group\">\n      <label>Dosage total dans le stylo<\/label>\n      <input type=\"number\" id=\"totalMg\" value=\"5\">\n      <span>mg<\/span>\n    <\/div>\n\n    <div class=\"input-group\">\n      <label>Dosage souhait\u00e9<\/label>\n      <input type=\"number\" id=\"desiredMcg\" value=\"500\">\n      <span>mcg<\/span>\n    <\/div>\n\n    <div class=\"result-box\">\n      <div class=\"result-label\">Nombre de clics<\/div>\n      <div class=\"result-value\" id=\"result\">30<\/div>\n    <\/div>\n\n  <\/div>\n\n  <!-- RIGHT -->\n  <div class=\"calculator-right\">\n    <div class=\"pen-wrapper\">\n      <img decoding=\"async\" src=\"https:\/\/azentraresearchlabs.com\/wp-content\/uploads\/2026\/04\/Pen-Click-Calculator.webp\" alt=\"Stylo\">\n      <div id=\"penDisplay\">30<\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\nlet currentValue = 0;\n\nfunction animateValue(start, end, duration) {\n  let startTime = null;\n\n  function animation(currentTime) {\n    if (!startTime) startTime = currentTime;\n    const progress = Math.min((currentTime - startTime) \/ duration, 1);\n\n    const value = Math.floor(progress * (end - start) + start);\n\n    document.getElementById(\"result\").innerText = value;\n    document.getElementById(\"penDisplay\").innerText = value;\n\n    if (progress < 1) {\n      requestAnimationFrame(animation);\n    }\n  }\n\n  requestAnimationFrame(animation);\n}\n\nfunction calculateClicks() {\n  const totalMg = parseFloat(document.getElementById(\"totalMg\").value);\n  const desiredMcg = parseFloat(document.getElementById(\"desiredMcg\").value);\n\n  let clicks = 0;\n\n  if (totalMg > 0 && desiredMcg > 0) {\n    const totalMcg = totalMg * 1000;\n    clicks = desiredMcg \/ (totalMcg \/ 300);\n  }\n\n  let rounded = Math.round(clicks);\n\n  \/\/ Handle NaN \/ Infinity \/ negative\n  if (!isFinite(rounded) || isNaN(rounded) || rounded < 0) {\n    rounded = 0;\n  }\n\n  animateValue(currentValue, rounded, 300);\n  currentValue = rounded;\n}\n\ndocument.getElementById(\"totalMg\").addEventListener(\"input\", calculateClicks);\ndocument.getElementById(\"desiredMcg\").addEventListener(\"input\", calculateClicks);\n\n\/\/ initial load\ncalculateClicks();\n<\/script>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-wd-paragraph wd-d67f180c\">Cette calculatrice est fournie \u00e0 titre informatif et de r\u00e9f\u00e9rence uniquement. Elle permet d'assurer la coh\u00e9rence des calculs li\u00e9s aux rapports de solutions et aux unit\u00e9s de mesure, mais elle ne remplace pas le jugement professionnel, les protocoles de laboratoire ou les proc\u00e9dures de recherche contr\u00f4l\u00e9es.<\/p>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-793","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/azentraresearchlabs.com\/fr\/wp-json\/wp\/v2\/pages\/793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azentraresearchlabs.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/azentraresearchlabs.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/azentraresearchlabs.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azentraresearchlabs.com\/fr\/wp-json\/wp\/v2\/comments?post=793"}],"version-history":[{"count":23,"href":"https:\/\/azentraresearchlabs.com\/fr\/wp-json\/wp\/v2\/pages\/793\/revisions"}],"predecessor-version":[{"id":823,"href":"https:\/\/azentraresearchlabs.com\/fr\/wp-json\/wp\/v2\/pages\/793\/revisions\/823"}],"wp:attachment":[{"href":"https:\/\/azentraresearchlabs.com\/fr\/wp-json\/wp\/v2\/media?parent=793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}