使用 CSS 和 JavaScript 在 HTML 中点击按钮移动图片

17 Mar 2025 | 6 分钟阅读

HTML、CSS 和 JavaScript 是捆绑在一起的。这三种语言都有不同的选项和属性,尤其是 CSS 和 JavaScript。没有什么比不断地自己探索属性更好的方式来将它们根植于脑海中。一旦我们了解了足够的选项,制作具有不同外观的专业网站将不是一项艰巨的任务。

这是一个简单的任务,用于发现一些基本属性

任务:在按钮点击时,在不同方向上移动图像 10px。例如:点击右按钮时,图像应向右移动 10px。

方向

  1. 向上
  2. 向下
  3. 右上斜线
  4. 左上斜线
  5. 左下斜线
  6. 右下斜线

步骤:

  1. 将图像插入网页
  2. 为所有 8 个方向创建按钮
  3. 为每个按钮编写 JavaScript 函数
  4. 使用 CSS 为按钮设置样式
  5. 测试工作

那么,让我们按照步骤开始编码

  1. 创建一个新文件并将其保存为 .html 扩展名。
  2. 我们可以将 CSS 和 JavaScript 代码嵌入其中,也可以创建外部文件并将它们链接到 html 文件。
  3. 我们将使用 <style></style> 和 <script></script> 嵌入它们

基本骨架

观察颜色

Move an image on button clicks in HTML using CSS and JavaScript

4. 现在,我们需要使用 <img> 标签将图像插入网页

  • 请注意,图像保存在与 html 文件相同的位置。
  • 如果不是,请将完整路径分配给 src。
  • 您还可以分配一个在线图像链接,但每次运行文件时;您都需要有活动的内部连接才能访问图像。

5. 现在,我们需要为 8 个方向构建 8 个按钮

  • 在按钮上,我们可以写方向的名称,或者我们可以简单地显示箭头。
  • 我们可以使用十进制或十六进制代码来访问这些代码。
  • 以下是代码
    使用 &#code 例如:&#8592
    Move an image on button clicks in HTML using CSS and JavaScript
  • 我们将使用表格来排列按钮,使其方便且等距。
  • 点击这些按钮时,我们会调用一个 JavaScript 函数,并将按钮的方向作为参数传递。
  • 使用 <center></center>,我们将同时将图像和按钮表格居中排列。

HTML 代码

运行后

Move an image on button clicks in HTML using CSS and JavaScript

6. 现在是时候为按钮提供实际功能了,或者我们可以为元素添加样式,然后添加功能。

CSS

现在,让我们使用一些简单的属性为按钮添加一些样式

输出

Move an image on button clicks in HTML using CSS and JavaScript

使用的属性

属性说明
table_layout: fixed表格中所有单元格的布局保持固定(列宽),无论其中内容的长度如何。
border-spacing: 10px单元格边框之间的距离或间距。仅当 border-collapse 设置为 separate 时才适用。我们可以设置垂直和水平距离。
border一个用于为元素的边框添加宽度、样式和颜色的属性。
border-radius使元素的角落边缘变圆。(为元素添加圆角)。值越大,圆角越圆。我们可以为四个角指定四个值。
background-color为元素的背景添加颜色。我们可以使用颜色名称或十六进制代码。
box-shadow为元素添加阴影。通过逗号分隔,我们可以为单个元素添加多个阴影。
padding在元素与其周围边框之间创建空间。使用 padding-top、padding-right、padding-bottom 和 padding-left,我们可以为元素的每个侧面设置间距。
.b:hover当用户将光标悬停在按钮上时,我们可以更改按钮的属性,如 box-shadow 和 background-color,以产生点击的效果。

JavaScript

我们在这里使用的功能是 CSS 属性:position。我们可以为该属性赋予五个不同的值

  1. static - > 默认
  2. relative
  3. fixed (固定)
  4. 绝对寻址
  5. sticky
机制
static这是我们在文档中插入图像时的默认值。它不会受到代码后面 .left 和 .top 修改的影响。
relative图像的位置相对于其正常位置设置,我们可以在稍后的代码中使用 .left 和 .top 属性来更改位置。移动时,其他元素不会占据元素腾出的空间。直到手动安排,空间才会保持空白。
绝对寻址元素相对于其最近的祖先定位。如果没有附近的祖先,位置将相对于文档 body 的位置设置。移动时,其他元素会占据其空间。
fixed (固定)位置相对于视口(文档可见部分)的位置设置。移动时,其他元素会占据元素腾出的空间。主要用于即使在用户滚动时也能保持在同一位置的导航菜单。
sticky类似于 relative。不同之处在于元素保持在其位置固定,直到某个点,然后它们变为 relative。这用于需要固定直到用户滚动到某个点才起作用的导航菜单。

代码

说明

通过使用 .style,我们正在访问元素的 CSS。首先,我们将图像存储在一个变量 'a' 中,然后将其位置设置为 relative。因此,当我们尝试定位图片时,我们将能够使用 .left 和 .top 属性,并且位置是相对于其当前位置分配的。要使用 position 属性,我们必须先将其分配给某个值,然后使用点属性来改变元素的位置。

只有 left 和 top 属性可用,我们将不得不使用这两个属性来定位元素在所有方向上的位置

  1. left(-) 向左
  2. lefft(+) 向右
  3. top(-) 向上
  4. top(+) 向下
  5. 左上:top(-) + left(-)
  6. 右上:top(-) + left(+)
  7. 左下:top(+) + left(-)
  8. 右下:top(+) + left(+)

具体来说

  1. 如果 b 等于 "left",则 left 属性减去 10 像素。
  2. 如果 b 等于 "right",则 left 属性增加 10 像素。
  3. 如果 b 等于 "up",则 top 属性减去 10 像素。
  4. 如果 b 等于 "down",则 top 属性增加 10 像素。
  5. 如果 b 等于 "top-right",则 left 属性增加 10 像素,top 属性减去 10 像素。
  6. 如果 b 等于 "top-left",则 left 属性减去 10 像素,top 属性减去 10 像素。
  7. 如果 b 等于 "bottom-right",则 left 属性增加 10 像素,top 属性增加 10 像素。
  8. 如果 b 等于 "bottom-left",则 left 属性减去 10 像素,top 属性增加 10 像素。

输出

Move an image on button clicks in HTML using CSS and JavaScript