经典的带阴影的可拖动的浮动层

yizhihongxing

下面我就为你详细讲解如何制作“经典的带阴影的可拖动的浮动层”。

准备工作

首先,我们需要准备完成以下几项工作:

  1. 编写 HTML 结构
  2. 编写 CSS 样式

HTML 结构

首先,我们需要在 HTML 中创建一个 div 元素,用于作为浮动层的基础容器。在这个 div 上添加两个特殊的类名:.draggable(可拖动的)和 .shadow(带阴影的)。其中,.draggable类名表示这个浮动层是可拖动的,.shadow类名表示这个浮动层需要添加阴影效果。

示例如下:

<div class="draggable shadow">
  <!-- 待添加内容 -->
</div>

CSS 样式

接下来,我们需要添加以下 CSS 样式,来完成浮动层的效果:

基础样式

首先,我们需要为浮动层添加基础的样式,包括宽度、高度、位置、背景色等:

.draggable {
  width: 200px; /* 宽度 */
  height: 200px; /* 高度 */
  position: absolute; /* 位置 */
  top: 50%; /* 垂直居中 */
  left: 50%; /* 水平居中 */
  transform: translate(-50%, -50%); /* 垂直、水平居中 */
  background-color: #fff; /* 背景色 */
  border-radius: 5px; /* 圆角 */
}

可拖动样式

接下来,我们需要为浮动层添加可拖动的样式,包括鼠标指针形状、z-index 值等:

.draggable {
  /* 基础样式 */
  cursor: move; /* 鼠标指针形状 */
  z-index: 1; /* z-index 值 */
}

阴影样式

接下来,我们需要为浮动层添加阴影的样式,包括阴影颜色、阴影模糊度、阴影扩散度等:

.shadow {
  /* 基础样式 */
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3), 0 0 2px rgba(0, 0, 0, 0.2); /* 阴影 */
}

Javascript 事件

最后,我们需要添加 Javascript 代码,来实现浮动层的可拖动功能:

let isDragging = false; // 判断是否拖动
let mouseX, mouseY; // 鼠标位置(相对于浮动层左上角)
let targetX, targetY; // 浮动层位置(相对于页面左上角)

// 监听mousedown事件
document.querySelector('.draggable').addEventListener('mousedown', function(e) {
  isDragging = true; // 开始拖动
  targetX = e.target.offsetLeft;
  targetY = e.target.offsetTop;
  mouseX = e.pageX - targetX;
  mouseY = e.pageY - targetY;
});

// 监听mousemove事件
document.addEventListener('mousemove', function(e) {
  if (!isDragging) return false;

  let x = e.pageX - mouseX;
  let y = e.pageY - mouseY;

  document.querySelector('.draggable').style.left = x + 'px';
  document.querySelector('.draggable').style.top = y + 'px';
});

// 监听mouseup事件
document.addEventListener('mouseup', function() {
  isDragging = false; // 停止拖动
});

以上就是制作“经典的带阴影的可拖动的浮动层”的完整攻略,接下来我将为你提供两个示例。

示例1:百度搜索框

<div class="draggable shadow">
  <input type="text" placeholder="百度一下,你就知道">
</div>
.draggable {
  width: 300px;
  height: 40px;
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translate(-50%, -20%);
  background-color: #fff;
  border-radius: 20px;
  padding: 10px;
}

.draggable input[type="text"] {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  font-size: 18px;
}

.shadow {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3), 0 0 2px rgba(0, 0, 0, 0.2);
}

/* 省略Javascript事件 */

示例2:图片浏览器

<div class="draggable shadow">
  <img src="./images/pic.png" alt="">
</div>
.draggable {
  width: 600px;
  height: 400px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #f0f0f0;
  border-radius: 10px;
  overflow: hidden;
}

.draggable img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.shadow {
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3), 0 0 5px rgba(0, 0, 0, 0.2);
}

/* 省略Javascript事件 */

希望以上对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:经典的带阴影的可拖动的浮动层 - Python技术站

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

相关文章

  • IE6、IE7、IE8浏览器下的CSS、JS兼容性对比

    IE6/IE7/IE8浏览器下的CSS兼容性问题 在现代的浏览器中,我们可以使用最新的CSS属性来创建漂亮的网页,但是在IE6/IE7/IE8等老旧的浏览器中,我们需要注意一些CSS兼容性问题。 盒模型 在标准盒模型(box-sizing: content-box)中,元素的width和height只包括内容的宽和高,但在IE6/IE7/IE8等旧版浏览器中…

    css 2023年6月10日
    00
  • jquery实现动态改变css样式的方法分析

    下面我将为您详细讲解“jquery实现动态改变css样式的方法分析”的完整攻略,分别包含两条示例说明。 一、基本概念 在使用jQuery实现动态改变CSS样式前,我们需要先了解以下基本概念: 选择器:用于选取需要修改样式的HTML元素,可以是ID选择器、类选择器、标签选择器等。 CSS属性:要修改的CSS属性,如color、font-size等。 CSS值:…

    css 2023年6月10日
    00
  • 前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)

    前端实现弹幕效果的方法总结 弹幕效果是什么? 弹幕效果,也叫滚动字幕效果,通常指在网页、视频等场景中,文字形成一个一个小球或矩形的形式,以极快的速度从右边滚动到左边。弹幕效果可以让用户更加关注到正在发生的内容和交互,增加互动性。 CSS3实现弹幕效果 基本思路 CSS3实现弹幕效果的基本思路是通过一个动态的容器,来实现文字的随机位置分布和动态滚动。这个容器可…

    css 2023年6月9日
    00
  • 利用CSS3的3D效果制作正方体

    制作3D正方体这个过程通常可以分为以下几个步骤: 1.确定一个容器,为3D场景提供空间,可以设定宽、高、以及透视效果的角度。 2.设置立方体的六个面,让它们呈现出正方形。 3.将六个面浮起来,让立方体看起来具有体积感。 下面将详细讲解如何实现以上的步骤,其中包括两个样例说明: 1.基础版3D正方体: HTML代码如下: <div class=&quot…

    css 2023年6月10日
    00
  • bootstrap datepicker限定可选时间范围实现方法

    当你需要在网页中添加一个日期选择器时,bootstrap datepicker是一个非常方便实用的选择。但是如果你希望用户只能选择一定的时间范围内的日期,该怎么做呢?下面我们就来详细讲解“bootstrap datepicker限定可选时间范围实现方法”的完整攻略。 1. 引入bootstrap datepicker插件 在使用bootstrap datep…

    css 2023年6月9日
    00
  • CSS让子元素div的高度填满父容器的剩余空间的方法

    以下是详细讲解 CSS 让子元素 div 的高度填满父容器的剩余空间的方法的完整攻略。 方法一:Flexbox Flexbox 是一种强大的布局方式,使用起来非常方便。可以通过设置父元素的 display 属性为 flex 来开启 flexbox 布局,然后设置子元素的 flex 属性来实现子元素填满父容器的剩余空间。 示例一:垂直方向上让子元素 div 填…

    css 2023年6月10日
    00
  • Adobe Dreamweaver CS3 官方简体中文龙卷风修正版v1.1下载

    下面就为大家介绍下载”Adobe Dreamweaver CS3 官方简体中文龙卷风修正版v1.1″的完整攻略。 1. 确认系统要求 在下载Adobe Dreamweaver CS3之前,我们需要确认电脑是否满足软件的最低系统要求。Adobe Dreamweaver CS3支持 Windows XP, Windows Vista和Windows 7等操作系统…

    css 2023年6月9日
    00
  • javascript基本数据类型和转换

    JavaScript基本数据类型和转换 JavaScript是一种弱类型语言,数据类型是JavaScript编程中非常重要的一个概念。在JavaScript中,有基本数据类型和复杂数据类型。接下来将会详细地讲解基本数据类型和它们之间的转换。 基本数据类型 JavaScript中有6种基本数据类型:字符串(string)、数值(number)、布尔值(bool…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部