html+css设计两个摆动的大灯笼

以下是关于“HTML+CSS设计两个摆动的大灯笼”的完整攻略:

1.理解需求

首先,我们要理解需求意味着我们知道如何开始设计我们的大灯笼。根据所给出的需求,我们需要设计两个大灯笼,使它们可以摆动。因此,设计的页面应该包括两个大灯笼的模型,以及它们摆动的动作。在完成这个任务之后,这个网站应该呈现一个稳定的页面,并且大灯笼应该能够正确地摆动。

2.HTML布局

接下来,我们需要完成HTML布局。我们可以这样做:

<!-- index.html 文件 -->
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>HTML+CSS设计两个摆动的大灯笼</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <!-- 设计两个大灯笼 -->
  <div class="lantern left">
    <!-- 灯笼的顶部 -->
    <div class="top"></div>

    <!-- 灯笼的身体 -->
    <div class="body"></div>

    <!-- 灯笼的底部 -->
    <div class="bottom"></div>

    <!-- 灯笼下面的绳子 -->
    <div class="rope"></div>
  </div>

  <div class="lantern right">
    <!-- 灯笼的顶部 -->
    <div class="top"></div>

    <!-- 灯笼的身体 -->
    <div class="body"></div>

    <!-- 灯笼的底部 -->
    <div class="bottom"></div>

    <!-- 灯笼下面的绳子 -->
    <div class="rope"></div>
  </div>

  <script src="move.js"></script>
</body>
</html>

在上面代码中,我们创建了一个具有两个灯笼的div容器。具体来说,我们为左侧灯笼设立一个lantern left类,为右侧灯笼设置一个lantern right类。在设计灯笼时,我们需要为顶部、身体和底部,以及绳子,分别创建新的div元素。

3.CSS样式

CSS样式设计可以这样做:

/* style.css 文件 */
.lantern{
  float:left;
  width:50%;
  height:600px;
  position:relative;
}

.lantern .top {
  background:#0a0a0a;
  border-radius:50% 50% 0 0;
  width: 200px;
  height: 200px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -100px;
}

.lantern .body {
  background: #cc3a3a;
  width: 203px;
  height: 300px;
  position: absolute;
  top: 200px;
  left: 50%;
  margin-left: -101.5px;
}

.lantern .bottom {
  background: #0a0a0a;
  border-radius: 0 0 50% 50%;
  width: 200px;
  height:200px;
  position: absolute;
  top: 500px;
  left: 50%;
  margin-left: -100px;
}

.lantern .rope {
  background: #a8a8a8;
  width: 5px;
  height: 150px;
  position: absolute;
  top: 650px;
  left: 50%;
  margin-left: -2.5px;
}

.left .rope{
  transform: rotate(-20deg);
  transform-origin: center bottom;
}

.right .rope{
  transform: rotate(20deg);
  transform-origin: center bottom;
}

上述样式代码中,我们使用了常规样式和过渡动画的方法让大灯笼摆动。具体来说,我们设置了灯笼、灯笼顶部、灯笼身体、灯笼底部、以及灯笼下的绳子的CSS样式值。我们通过浮动(float),宽度(width)和高度(height)属性设置容器的定位。我们同时赋予每个项在相对位置上足够的空间。在左右两侧的大灯笼中,我们将灯笼底部与顶部分别定义为凸形与凹形。我们还对绳子运用CSS的新特性“transform”来让它们摆动。

4. JavaScript动态效果

接着,我们定义JavaScript文件,以使大灯笼可以摆动。我们可以这样做:

// move.js 文件
(function move(){
  const lanterns = document.querySelectorAll('.lantern')
  let offset = 0;

  setInterval(() => {
    offset+=0.1;
    lanterns[0].style.transform = `rotate(${Math.sin(offset)* 20}deg)`;
    lanterns[1].style.transform = `rotate(${-Math.sin(offset)* 20}deg)`;
  }, 1000/60);
})();

在上述代码中,我们使用了JavaScript闭包(IIFE函数),来使每个灯笼独立地摆动。我们首先使用querySelectorAll方法获取所有的灯笼元素。然后,我们使用setInterval()定时器函数每秒执行60次来改变偏移量的值,从而实现动画。我们将左灯笼旋转20度,右灯笼旋转-20度,这就可以构成两个灯笼相互摆动的效果。

5. 示例

示例1:Codepen链接

示例2:JSFiddle链接

总体来说,我们使用HTML、CSS和JavaScript的组合来设计两个摆动的大灯笼,实现了非常好的效果,且可以得到一份可重复利用的代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:html+css设计两个摆动的大灯笼 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • css 垂直居中的几种实现方法

    当我们需要将一个元素在容器中垂直居中时,可能会遇到一些困难,因为垂直居中需要对父元素和子元素进行操作,而且还需要考虑到子元素的大小和行高等因素。有几种实现方法可以用来解决这个问题。 方法一:使用 Flexbox 使用 Flexbox 布局可以轻松实现元素的垂直居中。将要垂直居中的元素的父元素设置为 display:flex。然后将子元素的 align-ite…

    css 2023年6月10日
    00
  • 在HTML中引入CSS的几种方式介绍

    在HTML中,引入CSS样式网页可以更好的装扮和展示,让用户获得更好的浏览体验。下面我们将详细讲解在HTML中引入CSS的几种方式。 内联样式 内联样式是直接将样式写在HTML标签中,使用style属性。内联样式的优点是方便快捷,可以快速地为单个元素定制样式,然而内联样式的劣势是使得HTML文档变得杂乱无章,不利于维护和修改。 <!DOCTYPE ht…

    css 2023年6月9日
    00
  • jquery实现的缩略图预览滑块实例

    下面我将详细讲解如何使用 jQuery 实现缩略图预览滑块的效果: 前置准备 在开始实现缩略图预览滑块之前,需要先引入 jQuery 库,可以通过以下方式进行引入: <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></s…

    css 2023年6月11日
    00
  • jQuery实现的浮动层div浏览器居中显示效果

    要实现一个浮动层div在浏览器居中显示,可以使用下面的步骤: 1. 设置浮动层div的样式 首先需要定义一个浮动层div的样式,设置它的宽度、高度、颜色、边框等属性,并让它在页面中以绝对定位的方式浮动。 #float-layer { position: absolute; width: 300px; height: 200px; background-col…

    css 2023年6月10日
    00
  • JQuery操作元素的css样式

    JQuery是一种流行的JavaScript库,它为开发人员提供了一个方便的方式来操作HTML和CSS。在此,我们将详细讲解JQuery如何操作元素的CSS样式。 1. 选取元素 要操作一个元素的CSS样式,必须先选取该元素。在JQuery中,选取元素的方式有很多。最基本的是使用元素的ID或类名。例如,$(‘#example’)将选取ID为“example”…

    css 2023年6月10日
    00
  • css中url的路径含义及使用

    下面是CSS中url路径含义及使用的完整攻略: CSS中URL路径的含义 在CSS中,URL是一个重要的概念,它的主要作用是用来引用各种资源文件,如图片、字体等。URL的全称是Uniform Resource Locator,翻译成中文就是统一资源定位符。在CSS中,URL通常被用于以下几个地方: 引入背景图片 引入图标、字体等 引入其他资源,如视频、音频等…

    css 2023年6月9日
    00
  • 浅谈PHP之ThinkPHP框架使用详解

    感谢您对于“浅谈PHP之ThinkPHP框架使用详解”的关注和提问。下面是我关于这个话题的回答: ThinkPHP框架使用详解 什么是ThinkPHP ThinkPHP是一款优秀的开源PHP框架,其特点是遵循Apache2开源协议,具有免费、高效、简单、灵活等优点。其特别适合Web应用开发领域中的快速开发,包含支持单元测试、认证授权、路由等常用的功能模块。 …

    css 2023年6月9日
    00
  • CSS设置字体方法详解

    CSS字体是指用于在网页中渲染文本的字体样式。在CSS中,可以使用以下属性来设置字体: font-family:设置字体的名称。可以设置多个备用字体名称,用逗号分隔。如果第一种字体不可用,就使用第二种,以此类推。例如: body { font-family: "Helvetica Neue", Arial, sans-serif; } f…

    Web开发基础 2023年3月20日
    00
合作推广
合作推广
分享本页
返回顶部