Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
在文本框内设置同心圆_创想鸟

在文本框内设置同心圆

在文本框内设置同心圆

本文档旨在指导开发者如何在HTML文本框内创建和控制同心圆,并解决输入值改变后圆圈大小不更新的问题。通过修改CSS的定位方式,将圆圈定位在文本框内,并使用JavaScript动态调整圆圈大小。同时,本文档还提供了一种限制输入值大小,并向用户显示错误提示的方法,确保圆圈不会超出屏幕范围。

1. HTML 结构

首先,我们需要一个包含标题、输入框和用于绘制圆圈的容器的HTML结构。

Cutter Calculator



2. CSS 样式

关键在于.circles容器的定位方式和圆圈的定位方式。我们需要将.circles设置为position: relative,而将.circle和.circle2设置为position: absolute。 这样,圆圈就会相对于.circles容器进行定位,而不是整个页面。

.wrapper {  height: 400px;  width: 100%;  display: flex;  align-items: center;  justify-content: center;  flex-direction: column;}.circles {  margin-top: 15px;  position: relative;}.circle {  display: inline-block;  border-radius: 50%;  border-style: solid;  border-width: 2px;  border-color: blue;  background-color: rgba(0, 0, 0, 0);  z-index: -1;  left: 50%;  top: 50%;  position: absolute;}.circle2 {  display: inline-block;  position: absolute;  border-radius: 50%;  border-style: solid;  border-width: 2px;  border-color: red;  background-color: rgba(0, 0, 0, 0);  z-index: -1;  left: 50%;  top: 50%;}

3. JavaScript 代码

使用jQuery监听输入框的change事件,当输入值改变时,动态调整圆圈的大小。同时,我们还需要动态调整.circles容器的大小,以适应圆圈的大小。

$(function() {  $('.circle').hide();  $('#outer_diameter').on('change', function() {    var $outer_diameter = parseFloat($("#outer_diameter").val()).toFixed(3);    var $converted = ($outer_diameter * 10).toFixed(3);    console.log($outer_diameter, $converted);    $('.circle').css({      height: (2 * $converted),      width: (2 * $converted),      top: "calc(50% - " + ($converted) + "px)",      left: "calc(50% - " + ($converted) + "px)"    });    $('.circle').fadeIn(300);    $('.circles').css({height:(2 * $converted) + 10, width: (2 * $converted) + 10})    $('#error').hide();  })  $('.circle2').hide();  $('#inner_diameter').on('change', function() {    var $outer_diameter = parseFloat($("#outer_diameter").val()).toFixed(3);    var $inner_diameter = parseFloat($("#inner_diameter").val()).toFixed(3);    var $converted_2 = (($outer_diameter * 10) - ($inner_diameter * 10)).toFixed(3);    console.log($inner_diameter, $converted_2);    $('.circle2').css({      height: (2 * $converted_2),      width: (2 * $converted_2),      top: "calc(50% - " + ($converted_2) + "px)",      left: "calc(50% - " + ($converted_2) + "px)"    });    $('.circle2').fadeIn(300);  })});

代码解释:

$(‘.circle’).hide();: 页面加载时隐藏圆圈。$(‘#outer_diameter’).on(‘change’, function() { … });: 监听outer_diameter输入框的change事件。当输入框的值发生改变时,执行回调函数。parseFloat($(“#outer_diameter”).val()).toFixed(3);: 获取输入框的值,转换为浮点数,并保留三位小数。$(‘.circle’).css({ … });: 设置.circle元素的CSS属性,包括高度、宽度、top和left。$(‘.circle’).fadeIn(300);: 以300毫秒的淡入效果显示.circle元素。$(‘.circles’).css({height:(2 * $converted) + 10, width: (2 * $converted) + 10}): 设置包含圆圈的容器的高度和宽度,保证容器能够包含住圆圈。$(‘#inner_diameter’).on(‘change’, function() { … });: 监听inner_diameter输入框的change事件,逻辑与outer_diameter类似。

4. 限制输入值大小

为了防止用户输入过大的值导致圆圈超出屏幕范围,我们可以添加一个条件判断,限制输入值的范围。

$('#outer_diameter').on('change', function() {  var $outer_diameter = parseFloat($("#outer_diameter").val()).toFixed(3);  if ($outer_diameter >= 85) {    alert("Outer Diameter Too big");    // 或者显示一个错误信息    // $('#error').text("Outer Diameter Too big").show();    return;  }  var $converted = ($outer_diameter * 10).toFixed(3);  console.log($outer_diameter, $converted);  $('.circle').css({    height: (2 * $converted),    width: (2 * $converted),    top: "calc(50% - " + ($converted) + "px)",    left: "calc(50% - " + ($converted) + "px)"  });  $('.circle').fadeIn(300);  $('.circles').css({height:(2 * $converted) + 10, width: (2 * $converted) + 10})  $('#error').hide();})

代码解释:

if ($outer_diameter >= 85) { … }: 如果输入值大于等于85,则显示一个警告框,并阻止后续代码的执行。alert(“Outer Diameter Too big”);: 显示一个警告框,提示用户输入的值过大。return;: 阻止后续代码的执行。

5. 解决Formidable Forms计算后圆圈大小不更新的问题

如果使用了Formidable Forms,并且计算后的值没有立即更新圆圈的大小,可能是因为Formidable Forms的计算过程没有触发change事件。 我们需要手动触发change事件,或者直接在Formidable Forms的回调函数中更新圆圈的大小。

方法一:手动触发change事件

在Formidable Forms的计算完成后,手动触发outer_diameter和inner_diameter输入框的change事件。

// 假设Formidable Forms计算完成后会执行这个函数function formidableFormsCalculationComplete() {  $('#outer_diameter').trigger('change');  $('#inner_diameter').trigger('change');}

方法二:在Formidable Forms的回调函数中更新圆圈大小

找到Formidable Forms的计算完成后的回调函数,直接在回调函数中更新圆圈的大小。 这需要你熟悉Formidable Forms的API和事件机制。

总结:

通过以上步骤,我们可以在文本框内创建和控制同心圆,并解决输入值改变后圆圈大小不更新的问题。关键在于CSS的定位方式和JavaScript的动态调整。同时,我们还提供了一种限制输入值大小,并向用户显示错误提示的方法,确保圆圈不会超出屏幕范围。 对于Formidable Forms计算后圆圈大小不更新的问题,可以通过手动触发change事件或者直接在Formidable Forms的回调函数中更新圆圈的大小来解决。

以上就是在文本框内设置同心圆的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1579360.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Angular、Bootstrap、HTML 验证类统一化指南
上一篇 2025年12月22日 20:33:36
使用 CSS Grid 实现垂直排列的侧边栏布局
下一篇 2025年12月22日 20:33:46

相关推荐

  • mysql如何添加主键索引 mysql创建主键索引的步骤详解

    mysql如何添加主键索引 mysql创建主键索引的步骤详解mysql如何添加主键索引 mysql创建主键索引的步骤详解mysql如何添加主键索引 mysql创建主键索引的步骤详解mysql如何添加主键索引 mysql创建主键索引的步骤详解

    mysql中添加主键索引主要有三种方式:1. 创建新表时直接添加主键,可在列定义后使用primary key或在所有列定义后单独声明;2. 在已有表上通过alter table添加主键,需确保目标列非空且唯一,必要时先清洗数据;3. 添加复合主键,适用于多列组合才能唯一标识记录的情况。主键索引在in…

    2026年9月22日 • 用户投稿
    000
  • PHP数组如何定义和使用_PHP数组定义与使用详细教程

    PHP数组是存储和管理多个值的核心工具,支持索引、关联、混合及多维结构;通过方括号定义,可灵活访问、修改、添加或删除元素,并利用foreach高效遍历。 PHP数组是存储一系列值的强大工具,无论这些值是简单的数据项,还是更复杂的结构。它的核心思想就是把一堆相关的数据“打包”在一起,通过一个统一的名字…

    2026年9月22日
    000
  • Java中递归处理列表:排序验证与条件性最大值移除策略

    在处理列表数据时,我们常遇到需要根据特定条件修改列表的需求。本教程将深入探讨一个具体的场景:如何设计一个递归函数,该函数首先判断一个整数列表是否已按升序排序。如果列表已排序,则停止处理;如果未排序,则进一步检查列表中的最大值。仅当最大值位于列表的起始位置或末尾时,才将其移除,并对修改后的列表重复此过…

    2026年9月22日
    000
  • Flyway多数据库与CI/CD测试集成策略

    本文深入探讨了在CI/CD流程中,如何高效地配置Flyway以管理多数据库环境下的迁移,尤其关注集成测试场景。我们将比较使用真实数据库服务、Testcontainers以及Flyway自身多数据库配置的优劣,并提供关于分离生产与测试环境迁移脚本的实用策略,旨在确保开发、测试与生产环境的数据一致性与流…

    2026年9月22日
    100
  • PHP框架日志系统怎么记录错误_PHP框架日志系统配置指南

    PHP框架通过配置日志级别、通道和处理器,结合Monolog库实现错误记录。以Laravel和Symfony为例,可在配置文件中定义多通道(如文件、Slack)、设置不同级别(ERROR、CRITICAL),并通过门面或服务在代码中捕获异常并写入上下文信息。 PHP框架的日志系统记录错误,核心在于通…

    2026年9月22日
    000
  • 华为:Pura 80 Ultra、Watch GT 6 Pro入选2025年度最佳发明

    10月25日消息,华为终端官微今日发布喜讯:pura 80 ultra与watch gt 6 pro成功入选《时代周刊》2025年度最佳发明榜单。 华为方面指出,Pura 80 Ultra凭借其在影像设计与技术创新方面的突破性表现,赢得权威认可。 WATCH GT 6 Pro则因出色的运动监测功能、…

    2026年9月22日
    000
  • 美团外卖如何使用支付宝支付

    想要在美团外卖中使用支付宝完成支付,享受更灵活便捷的点餐体验?只需几个简单步骤即可轻松实现。 首先,请确认你的手机已安装最新版本的美团外卖和支付宝应用程序。打开美团外卖App,浏览并选择你喜欢的美食,加入购物车后,点击“去结算”进入订单确认页面。 进入支付界面后,系统通常默认选择“美团支付”。此时,…

    2026年9月22日
    200
  • Spring Boot自定义Kafka配置与动态Bean注册最佳实践

    本文探讨了在Spring Boot应用中通过自定义注解简化Kafka配置的挑战与解决方案。重点介绍了如何利用META-INF/spring.factories实现早期自动配置,并详细阐述了使用ImportBeanDefinitionRegistrar在应用上下文初始化早期动态注册Kafka生产者工厂…

    2026年9月22日
    100
  • 在Java中如何开发简易问答社区

    答案是Java结合Spring Boot可快速构建问答社区,通过设计questions、answers、users三张表实现数据存储,使用JPA进行持久化,前端用HTML+JS调用后端API完成用户提问、回答、查看与互动功能。 开发一个简易问答社区,核心是实现用户提问、回答、查看问题和互动功能。Ja…

    2026年9月22日
    100
  • PHP 数组元素按日期条件过滤与删除:避免常见陷阱

    本教程详细介绍了如何在 PHP 中根据日期条件动态删除数组(或对象数组)中的元素。文章将重点讲解如何正确进行日期比较,特别是当数据源为 JSON 格式时,以及 unset 函数在遍历过程中移除元素时的正确用法,帮助开发者避免常见的字符串日期比较和对象属性访问错误。 简介 在数据处理中,根据特定条件过…

    2026年9月22日
    100
  • linux系统下codeblocks控制台打印中文乱码[通俗易懂]

    linux系统下codeblocks控制台打印中文乱码[通俗易懂]linux系统下codeblocks控制台打印中文乱码[通俗易懂]linux系统下codeblocks控制台打印中文乱码[通俗易懂]linux系统下codeblocks控制台打印中文乱码[通俗易懂]

    大家好,很高兴再次和大家见面,我是你们的朋友全栈君。 在Linux系统下使用CodeBlocks时,如果在控制台中打印中文可能会遇到乱码问题。以下是解决这一问题的详细步骤: 首先,我们来看一下在Linux系统下安装CodeBlocks后,运行以下代码时出现的问题: #include #include…

    2026年9月22日 • 用户投稿
    600
  • 解决Android设备管理移除时的SecurityException

    本文将详细介绍如何解决在尝试从Android设备移除设备管理员时遇到的java.lang.SecurityException异常。该异常通常发生在尝试移除一个非测试用途的设备管理员应用时。通过修改应用的配置,将其临时标记为测试应用,可以绕过此安全限制,从而成功移除设备管理员。请务必注意,这种方法仅适…

    2026年9月22日
    100
  • 百度地图导航语音无法关闭怎么办 百度地图语音设置调整技巧

    首先要分清关闭的是导航语音播报还是语音唤醒功能。①关闭导航语音:打开百度地图→【我的】→【设置】→【导航设置】→【导航中语音】→选择【静音】。②关闭语音唤醒:进入【我的】→【设置】→【语音设置】→【智能语音】→关闭【说“小度小度”唤醒】开关。操作后仍无效可尝试更新App或重新登录账号。 百度地图导航…

    2026年9月22日
    000
  • 悟空浏览器看小说章节错乱怎么办_悟空浏览器小说章节错乱解决方法

    1、清除悟空浏览器缓存:进入手机设置→悟空浏览器→存储→清除缓存,重启应用查看是否恢复。2、切换网络环境:断开当前Wi-Fi改用移动数据或更换其他Wi-Fi,关闭并重开浏览器,下拉刷新章节页面。3、更新或重装应用:前往应用商店更新悟空浏览器至最新版本;若无效则卸载后重新下载安装,登录账号后再次阅读,…

    2026年9月22日
    000
  • 抖音号如何升级成企业号?升级成企业号需要多久?

    随着短视频平台的迅猛发展,抖音已成为企业进行品牌宣传与用户运营的核心渠道。将普通个人账号升级为企业号,不仅能够解锁更多营销工具,还能增强品牌的权威性与可信度。 一、抖音个人号怎样升级为企业号? 确认基本条件 在申请前,需确保账号已完成实名认证,且未有违反社区规范的行为。个人账号必须绑定手机号,并完善…

    2026年9月22日
    600
  • Java类中Jackson @JsonNaming策略的运行时内省

    本文介绍如何在运行时动态内省Java类上通过@JsonNaming注解配置的Jackson PropertyNamingStrategy。通过利用ObjectMapper的SerializationConfig和JacksonAnnotationIntrospector,开发者可以编程方式获取类的命…

    2026年9月22日
    600
  • 高效利用 PriorityQueue 合并并排序多个列表

    本教程详细阐述了如何使用 Java 的 PriorityQueue 高效地合并并排序多个整数列表。文章首先指出将列表作为元素放入 PriorityQueue 的常见误区,进而纠正为应将单个整数元素放入队列。接着,它演示了如何正确声明、填充 PriorityQueue,并强调了通过循环调用 poll(…

    2026年9月22日
    400
  • mac怎么设置动态壁纸_mac设置动态壁纸方法

    可通过系统设置直接启用macOS自带的动态桌面;2. 利用iCloud同步功能实现Apple设备间的动态壁纸共享;3. 安装第三方应用扩展更多动态效果如视频或实时天气;4. 手动将.heic或.mov格式文件添加至指定目录以设置自定义动态壁纸。 如果您希望为Mac增添个性化视觉体验,可以将动态壁纸设…

    2026年9月22日
    300
  • 如何配置Android开发环境 Android Studio安装与JDK配置方法

    答案:配置Android开发环境需先安装JDK并设置环境变量,再下载安装Android Studio,配置SDK及虚拟设备,最后创建项目测试。具体步骤包括:1. 安装JDK 17并配置JAVA_HOME和Path;2. 从官网下载Android Studio并安装,自动集成SDK;3. 通过SDK …

    2026年9月22日
    200
  • ClipStudioPaintPro如何导出AI漫画图片?保存图像的详细指南

    导出AI漫画图片需通过Clip Studio Paint Pro的“文件”菜单选择“导出”,根据用途选单页、多页或Webtoon导出,推荐PNG用于高质量或透明背景需求,JPG用于网络分享以平衡文件大小与画质,设置300dpi以上分辨率确保清晰度,色彩配置选用sRGB保障跨平台一致性,批量导出时利用…

    2026年9月22日
    200

发表回复

登录后才能评论
关注微信