13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

仅仅使用纯 CSS 鼠标点击拖拽效果

背景

鼠标拖拽元素移动,算是一个稍微有点点复杂的交互。

创新互联公司2013年开创至今,先为武汉等服务建站,武汉等地企业,进行企业商务咨询服务。为武汉企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

而在本文,我们就将打破常规,向大家介绍一种超强的仅仅使用纯 CSS 就能够实现的鼠标点击拖拽效果。

在之前的这篇文章中 -- [1],我们介绍了非常多有意思的纯 CSS 的鼠标跟随效果,像是这样:

但是,可以看到,上面的效果中,元素的移动不是很丝滑。如果你了解上述的实现方式,就会知道它存在比较大的局限性。

本文,我们还是仅仅通过 CSS,来实现一种丝滑的鼠标点击拖动元素移动的效果。

鼠标点击拖拽跟随效果

OK,什么意思呢?我们先来看一个最最简单的效果示意图,实现点击一个元素,能够拖动元素进行移动的效果:

好的,到这里,在继续往下阅读之前,你可以停一停。这种效果,正常而言,都是必须要借助 JavaScript 才能够实现的。从表现上来看:

  1. 首先拖拽元素过程,可以任意将元素进行移动
  2. 然后放置元素,让元素停留在另外一个地方

思考一下,如果不借助 JavaScript 的话,有办法将元素小球从 A 点移动到 B 点么?这个效果完全就不像是纯 CSS 能够完成的。

答案必然是可以的!整个过程也非常之巧妙,这里我们核心需要利用强大的 resize 属性。以及,配合通过构建一种巧妙的布局,去解决可能会遇到的各种难题。

使用 resize,构建可拖拽改变大小的元素

首先,我们利用 resize 属性来实现一个可改变大小的元素。

什么是 resize 呢?根据 [2]:该 CSS 属性允许你控制一个元素的可调整大小性。

其 CSS 语法如下所示:

{
resize: none;
resize: both;
resize: horizontal;
resize: vertical;
resize: block;
resize: inline;
}

简单解释一下:

看一个最简单的 DEMO:

Lorem ipsum dolor sit amet, consectetur adipisicing elit. A aut qui labore rerum placeat similique hic consequatur tempore doloribus aliquid alias, nobis voluptates. Perferendis, voluptate placeat esse soluta deleniti id!

p {
width: 200px;
height: 200px;
resize: horizontal;
overflow: scroll;
}

这里,我们设置了一个长宽为 200px 的 

 为横向可拖拽改变宽度。效果如下:

简单总结一些小技巧: