首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Vanilla JS中的多个选项之间切换时平滑移动背景

在Vanilla JS中实现多个选项之间平滑移动背景的方法可以通过以下步骤来实现:

  1. 首先,创建一个包含多个选项的HTML元素,例如使用<ul><li>标签来创建一个选项列表。每个选项可以使用不同的背景图片或颜色。
  2. 使用CSS来设置选项列表的样式,包括设置宽度、高度、背景图片等。确保选项列表的容器具有足够的宽度以容纳所有选项。
  3. 在JavaScript中,使用querySelectorgetElementById等方法获取选项列表的容器元素。
  4. 为选项列表的容器元素添加一个事件监听器,例如click事件。当用户点击选项时,触发事件。
  5. 在事件处理程序中,获取用户点击的选项的索引或标识符。可以通过event.target来获取被点击的选项元素,然后根据其在选项列表中的位置来确定索引。
  6. 使用CSS的transform属性来平滑移动背景。可以通过设置translateXtranslateY来改变背景的位置。根据选项的索引或标识符来计算需要移动的距离。
  7. 使用transition属性来添加过渡效果,使背景移动时平滑过渡。

下面是一个示例代码:

HTML:

代码语言:txt
复制
<ul id="options">
  <li>Option 1</li>
  <li>Option 2</li>
  <li>Option 3</li>
</ul>

CSS:

代码语言:txt
复制
#options {
  width: 300px;
  height: 200px;
  background-image: url(option1.jpg); /* 初始背景图片 */
  transition: background-image 0.5s ease; /* 添加过渡效果 */
}

li {
  cursor: pointer;
}

JavaScript:

代码语言:txt
复制
var optionsContainer = document.getElementById('options');
var options = optionsContainer.getElementsByTagName('li');

optionsContainer.addEventListener('click', function(event) {
  var clickedOption = event.target;
  var index = Array.prototype.indexOf.call(options, clickedOption);

  // 根据选项的索引来计算需要移动的距离
  var distance = index * -300; // 假设每个选项的宽度为300px

  optionsContainer.style.backgroundPositionX = distance + 'px';
});

在上述示例中,当用户点击选项时,背景图片会平滑地移动到相应的位置。可以根据实际需求修改代码中的样式和计算逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

国外轻量级开源论坛系统vanilla Forums介绍

vanilla应用,不过找过1.0版本;Conversations是用户之间发私信应用,禁用后不影响论坛使用,但用户之间则不能互发私信,而且Conversations可以提供多个用户之间相互聊天功能...具体启用方法是: 解压文件后,将zh_CN文件夹移动网站locales里边;然后修改config/config.php文件Configuration[‘Garden’][‘Locale’]选项;改成...,将zh_CN文件夹移动网站locales里边;然后修改config/config.php文件Configuration[‘Garden’][‘Locale’]选项;改成Configuration[...文件Configuration[‘Garden’][‘Locale’]选项;改成Configuration[‘Garden’][‘Locale’] = ‘zh-CN’;,没有看到改选项的话就自己添加...中文话题 搜索 解压文件后,将zh_CN文件夹移动网站locales里边;然后修改config/config.php文件Configuration[‘Garden’][‘Locale’]选项;改成Configuration

4.7K20

Flutte部件目录-Material Components 顶

应用程序结构和导航 Scaffold Appbar 上面两个在基本部件已经讲过。 BottomNavigationBar ? 底部导航栏可轻松浏览并在单次点击之间在顶层视图之间切换。...一个显示在应用底部材质小部件,用于在少量视图中进行选择,通常介于3到5之间。 底部导航栏由文本标签,图标或两者多个项目组成,并放置在一块材料顶部。 它提供了应用程序顶级视图之间快速导航。...导航栏背景色是默认材质背景色ThemeData.canvasColor(实质上是不透明白色)。 BottomNavigationBarType.shifting,有四个或更多项目默认值。...如果您认为用户需要并排查看所有可用选项,请使用单选按钮进行排他选择。 ? Switch On/off开关切换单个设置选项状态。 Switch小部件实现这个组件。 ?...芯片代表小块复杂实体,联系人。 ? Tooltip 工具提示提供文本标签可帮助解释按钮或其他用户界面操作功能。

9.5K40
  • 关于Adobe Photoshop调整选区介绍

    黑底 (A):将选区置于黑色背景上 白底 (T):将选区置于白色背景上 黑白 (K):将选区显示为黑白蒙版 图层 (Y):将选区周围变成透明区域 安 F 键可以在各个模式之间循环切换,按 X 键可以暂时禁用所有模式...高品质预览:渲染更改准确预览。此选项可能会影响性能。选择此选项后,在处理图像,按住鼠标左键(向下滑动)可以查看更高分辨率预览。取消选择此选项后,即使向下滑动鼠标,也会显示更低分辨率预览。...在其他用例,如果选区是涉及头发和肩膀的人物肖像,此选项则会十分有用。在这个边缘更加趋向一致的人物肖像,可能需要为头发设置比肩膀更大调整区域。...全局调整设置 平滑:减少选区边界不规则区域(“山峰和低谷”)以创建较平滑轮廓。 羽化:模糊选区与周围像素之间过渡效果 对比度:增大,沿选区边框柔和边缘过渡会变得不连贯。...通常情况下,使用“智能半径”选项和调整工具效果会更好。 移动边缘:使用负值向内移动柔化边缘边框,或使用正值向外移动这些边框。向内移动这些边框有助于从选区边缘移去不想要背景颜色。

    2.5K60

    ECCV 2022 | CMU提出首个快速知识蒸馏视觉框架:ResNet50 80.1%精度,训练加速30%

    本文动机正是在研究如何在知识蒸馏训练过程避免或者说重复利用这种额外计算结果,该文章解决策略是提前保存每张图片不同区域软监督信号(regional soft label)在硬盘上,训练 student...(第二行)虽然存在一些样本 ReLabel 和 FKD 之间最大预测概率相似,但 FKD 包含更多标签分布从属类别概率,而 ReLabel 分布并没有捕获这些从属类别的信息。...在该策略,样本标签 Y_H 使用 teacher 预测最大 logits 索引。标签硬化策略产生依然是 one-hot 标签,如下公式所示: 2)平滑 (Smoothing)。...而 vanilla 和 FKD 在 crop=4 时候表现得最好。尤其 vanilla,相比 crop=1 精度提升了一个点,crop 大于 8 之后精度下降明显。...在 FKD 随机 crop 训练策略,许多样本采样于背景(上下文)区域,来自 teacher 模型软预测标签更能真实反映出实际输入内容,并且这些软标签可能与 one-hot 标签完全不同,FKD

    27820

    ECCV 2022 | CMU提出首个快速知识蒸馏视觉框架:ResNet50 80.1%精度,训练加速30%

    本文动机正是在研究如何在知识蒸馏训练过程避免或者说重复利用这种额外计算结果,该文章解决策略是提前保存每张图片不同区域软监督信号(regional soft label)在硬盘上,训练 student...(第二行)虽然存在一些样本 ReLabel 和 FKD 之间最大预测概率相似,但 FKD 包含更多标签分布从属类别概率,而 ReLabel 分布并没有捕获这些从属类别的信息。...在该策略,样本标签 Y_H 使用 teacher 预测最大 logits 索引。标签硬化策略产生依然是 one-hot 标签,如下公式所示: 2)平滑 (Smoothing)。...而 vanilla 和 FKD 在 crop=4 时候表现得最好。尤其 vanilla,相比 crop=1 精度提升了一个点,crop 大于 8 之后精度下降明显。...在 FKD 随机 crop 训练策略,许多样本采样于背景(上下文)区域,来自 teacher 模型软预测标签更能真实反映出实际输入内容,并且这些软标签可能与 one-hot 标签完全不同,FKD

    22620

    ECCV 2022 | CMU提出首个快速知识蒸馏视觉框架:ResNet50 80.1%精度,训练加速30%

    本文动机正是在研究如何在知识蒸馏训练过程避免或者说重复利用这种额外计算结果,该文章解决策略是提前保存每张图片不同区域软监督信号(regional soft label)在硬盘上,训练 student...(第二行)虽然存在一些样本 ReLabel 和 FKD 之间最大预测概率相似,但 FKD 包含更多标签分布从属类别概率,而 ReLabel 分布并没有捕获这些从属类别的信息。...在该策略,样本标签 Y_H 使用 teacher 预测最大 logits 索引。标签硬化策略产生依然是 one-hot 标签,如下公式所示: 2)平滑 (Smoothing)。...而 vanilla 和 FKD 在 crop=4 时候表现得最好。尤其 vanilla,相比 crop=1 精度提升了一个点,crop 大于 8 之后精度下降明显。...在 FKD 随机 crop 训练策略,许多样本采样于背景(上下文)区域,来自 teacher 模型软预测标签更能真实反映出实际输入内容,并且这些软标签可能与 one-hot 标签完全不同,FKD

    27330

    免费开源Argon博客主题 – 简约流畅WordPress主题模板

    前端框架,轻盈美观 丰富自定义选项 (顶栏,侧栏,头图等) 顶栏、侧栏完全自定义 (自定义链接,图标,博客名,二级菜单等) 丰富可自定义侧栏内容 (作者名称,格言,作者信息,作者链接,友情链接...(进度条,TODO 复选框,标签等) 内置 Mathjax、平滑滚动等 支持自定义 CSS 和 JS 适配小屏幕设备 夜间模式支持 安装和更新 安装 在 Github Release 页面下载...、浮动操作按钮等,提供了丰富自定义选项 夜间模式 – 支持日间、夜间、纯黑三种模式,并可以根据时间自动切换或跟随系统夜间模式 功能繁多 – Tag 和分类统计、作者链接、额外链接、文章字数和预计阅读时间...诸多功能 – 文章目录、阅读进度、Mathjax 或 Katex 公式解析、图片放大预览、Pangu.js 文本格式化、平滑滚动等 丰富短代码 – 支持通过短代码在文章插入 TODO、标签、警告...、提示、折叠区块、Github 信息卡、时间线、隐藏文本、视频等模块 其他 – 自适应、精心优化文章阅读界面 CSS、可切换衬线/非衬线字体、可自定义 CSS 和 JS、支持使用 CDN 加速静态文件访问

    2.4K20

    用APICloud如何开发出运行体验良好、高性能 App

    框架 默认样式设置、DOM 操作和字符串处理推荐使用 APICloud 前端框架 (api.js 和 api.css) 移动端 UI 框架推荐使用 AUI 4....SPA 模式不适合 APP 开发,DIV+JS 窗口切换影响用户体验。...导航切换切换底部导航或顶部分类菜单时候,要求切换体验平滑切换过程不能出现白屏、闪屏等现象 建议使用 FrameGroup 来实现 Frame 切换,要按需合理配置预加载 Frame 数量,每个...列表滚动: 滚动效果要平滑流畅,不能使用 iscroll 等 JS 方式来实现滚动 建议使用 Window+Frame UI 结构,以 Native 方式来实现列表页面的滚动。...可以在同一个界面登陆界面)创建多个 UIInput 模块实例,来实现多个输入框。

    2.2K20

    Android动画之共享元素动画简单实践

    共享元素动画(Shared Element Transition)是Android引入一种过渡动画效果,目的是在两个Activity或Fragment之间切换,更平滑地过渡和转移特定UI元素。...在共享元素过渡,两个界面共享一个或多个元素,这些元素在过渡过程中会从源Activity/Fragment平滑移动到目标Activity/Fragment。...以下是详细解释以及一个具体代码示例: 1. 配置Activity过渡动画 首先,在两个ActivityonCreate方法,设置过渡动画。...关键步骤包括在布局文件设置transitionName属性,在代码通过ActivityOptions创建动画选项,并启动目标Activity。...如果需要更精细动画效果,还可以通过自定义过渡动画文件来配置。 共享元素动画可以显著提升用户体验,尤其是当你需要在界面间平滑过渡具体元素(如图片、文本),可以提供更自然和清晰视觉反馈。

    24110

    ECCV 2022 | 首个快速知识蒸馏视觉框架:ResNet50 80.1%精度,训练加速30%

    本文动机正是在研究如何在知识蒸馏训练过程避免或者说重复利用这种额外计算结果,该文章解决策略是提前保存每张图片不同区域软监督信号(regional soft label)在硬盘上,训练 student...(第二行)虽然存在一些样本 ReLabel 和 FKD 之间最大预测概率相似,但 FKD 包含更多标签分布从属类别概率,而 ReLabel 分布并没有捕获这些从属类别的信息。...在该策略,样本标签 Y_H 使用 teacher 预测最大 logits 索引。标签硬化策略产生依然是 one-hot 标签,如下公式所示: 2)平滑 (Smoothing)。...而 vanilla 和 FKD 在 crop=4 时候表现得最好。尤其 vanilla,相比 crop=1 精度提升了一个点,crop 大于 8 之后精度下降明显。...在 FKD 随机 crop 训练策略,许多样本采样于背景(上下文)区域,来自 teacher 模型软预测标签更能真实反映出实际输入内容,并且这些软标签可能与 one-hot 标签完全不同,FKD

    59210

    玩转GSAP与barba.js,实现炫酷页面切换效果

    案例展示 今天我们将通过一个实战案例,来展示如何使用GSAP和barba.js制作一个炫酷页面切换效果。该案例展示了一个在线购物网站首页和产品页之间切换动画。...:当页面第一次加载背景会渐变显示,同时页面的主要内容(产品图片和文字)会从下方滑动到屏幕中央,伴随着淡入效果。...不同页面之间切换背景渐变效果:为了让每个页面更具特色,我们设置了不同页面在切换背景渐变效果。...时间线概念:理解时间线(Timeline)概念,如何使用时间线组织和控制多个动画。 学习barba.js基本配置: 初始化barba.js:学习如何在项目中引入和初始化barba.js。...每当页面切换,barba.js 会替换这个容器内容。这意味着,只有标记了 data-barba="container" 属性部分才会参与页面切换,其他部分导航栏、页脚等会保持不变。

    20110

    轻量级工具Vite到底牛在哪, 一文全知道

    背景与工作方式 在过去Webpack、Rollup 等构建工具作为主场明星,我们代码都是基于ES Module 规范去写。...一个巨大依赖图能够通过import 和 export桥梁在文件之间被完美搭建起来。...选项包括: vanilla vue vue-ts react react-ts preact preact-ts lit-element lit-element-ts svelte svelte-ts...因此,尽管vanilla选项没有专用TypeScript模板,但我们应该能够将其重命名main.js,为main.tsVite并自动对其进行编译。...我们在项目中得到了简单Vue设置,并插入Vue内容。安装vue-router并配置Vue之后即可工作。调整Vite汇总配置之后,我们可以使用Vite创建多个页面,文档多页应用。

    4.1K40

    CSS Transitions

    「触发过渡:」 过渡通常在「元素状态发生变化时触发」。 例如,当我们悬停在按钮上,可以更改其背景颜色,过渡效果将使颜色平滑地在指定持续时间内变化。...❝默认情况下,CSS更改是瞬间发生。 ❞ 在眨眼之间,我们按钮就瞬间移动到了新位置! (如果想看效果,可以从code 链接[6]查看效果,这节效果都可以查看)。...当一个元素高度缩小时,会引发一连串反应;所有兄弟元素都需要向上移动以填充空间! 其他属性,background-color,在进行动画成本较高。...❝这是因为计算机CPU和GPU之间数据切换导致。 ❞ 当我们使用transform和opacity来对元素进行动画,浏览器有时会尝试优化这个动画。...而transform可以通过GPU反锯齿技巧[10]在像素之间平滑移动。 「生活没有免费午餐,硬件加速也不例外」。

    31730

    视差滚动效果实现

    这种效果通过前景、中景和背景以不同速度移动来实现,使得近处对象看起来移动得更快,而远处对象移动得较慢。...为方便理解,你可以想象正开车行驶在公路上,汽车向前移动,你转头看向窗外,近处树木一闪而过,远方群山和风景慢慢渐行渐远,逐渐在视野消失,而天边太阳却只会在很长一段距离细微移动。...将内容分为多个层(背景、中间、前景),使用 translateZ() 将它们放置在 3D 空间不同深度。...对于较远层(背景层),使用 scale() 进行放大,以补偿由于距离产生视觉缩小效果。 当用户滚动页面,由于各层位于不同 Z 轴位置,它们会以不同速度移动,从而产生视差效果。...它只在浏览器准备好进行下一次重绘才会执行,避免了不必要计算和重绘。

    14720

    在React Native构建启动屏

    可以说,启动画面是让您移动应用品牌名称和图标深入用户记忆最佳方式。 在网络应用,我们使用预加载器为用户提供动画娱乐,同时服务器操作正在处理。...将内容模式设置为“aspect fit”,如下所示: 更改iOS启动屏幕颜色 你可能会问下一个问题是“我如何在 React Native 更改启动屏幕背景颜色?”...为了在 iOS 为启动屏幕强制使用一致背景,滚动到背景设置位置并从下拉菜单中选择 Custom。在弹出窗口中,选择启动屏幕期望颜色。...这就是结果: 总结 启动画面是对任何应用程序重要补充,因为它在启动应用程序和显示主要内容之间创造了平滑过渡,从而提高了用户体验。...启动画面有助于强化应用程序身份,使其容易被用户识别,从而提高品牌建设。 通常,某些配置和资源(字体和检查更新)会在应用准备就绪立即实施。

    51610

    前端动效讲解与实战

    (1)连续切换动画图片地址src(不推荐)我们将图片放到元素背景(background-image),通过更改 background-image 值实现帧切换。...多张图片会带来多个 HTTP 请求每张图片首次加载会造成图片切换闪烁不利于文件管理(2)连续切换雪碧图位置(推荐)我们将所有的帧动画图片合并成一张雪碧图,通过改变 background-position...animation: frame 10s linear both infinite;如果我们定义成这样,动画是不会阶梯状,一步一步执行,而是会连续变化背景图位置,是移动效果,而不是切换效果,如下图...,height);(3)通过JS来控制CSS属性值变化这种方式和前面CSS3帧动画一样,有三种方式,一种是通过JS切换元素背景图片地址background-image,一种是通过JS切换元素背景图片定位...对于一个"@keyframes"样式规则是由多个百分比构成“0%”到"100%"之间,我们可以在这个规则创建多个百分比,我们分别给每一个百分比给需要有动画效果元素加上不同属性,从而让元素达到一种在不断变化效果

    2.7K30

    enquirer 使用指南

    ; console.log(response); // { username: 'jonschlinkert' }await(需要在 async 函数内部运行)遇到多个问题,可以将多个问题对象以数组形式传给...,下文会单独解释 name: String, // 在最后获取到answers回答对象,作为当前这个问题键 message: String|Function, // 打印出来问题标题,如果为函数的话...为数组,数组每个元素可以为基本类型值。 validate: Function, // 接受用户输入,并且当值合法,函数返回true。...console.log('Answer:', answer));更多案例自动完成提示BasicAuth 提示确认提示表单提示输入提示隐形提示列表提示多选提示数字提示密码提示测验提示调查提示比例提示选择提示排序提示片段提示切换提示按类型分类示例数组提示选项特性方法选择定义选择选择属性相关提示授权提示布尔提示号码提示字符串提示符支持自动补全提示在用户键入时自动完成...- 开箱指南 - 掘金inquirer.js —— 一个用户与命令行交互工具_xhsdnn博客-CSDN博客_inquirer.js

    18510

    影视后期丨Adobe Audition安装教程-AU软件全版本下载地址 +干货分享

    :让控制点之间平滑过渡补充增益:增强处理信号b....Pass Filter)为低通滤波器,表示是否过滤掉高频/低频波段常量:切换Q值/宽度,超静音可消除噪音和失真范围:切换显示范围(30dB/90dB)5、调制① 和声(通过少量反馈添加多个短延迟)模拟多个语音或乐器...高级设置频谱衰减率:当音频低于噪声基准时处理频率百分比平滑:分析后变化非常大频段(白噪声)将以不同于恒定频段(60Hz嗡嗡声)方式进行平滑精度因数:控制振幅变化(建议5~10之间)过渡宽度:...噪声和所需音频之间振幅范围FFT大小:确定分析单个频段数量(建议4096~8192之间)噪声样本快照:捕捉音频样本包含噪声快照数量(值为4000最适合生成准确数据)7、立体声声像声像指(人耳感知到...较低值可产生发泡声音背景噪声)窗口宽度:每个 FFT 窗口百分比b. “鉴别” 选项卡帮助识别中置声道设置。

    2.9K20
    领券