返回顶部
首页 > 资讯 > 前端开发 > html >如何使用Html+css实现拖拽导航条
  • 828
分享到

如何使用Html+css实现拖拽导航条

2024-04-02 19:04:59 828人浏览 薄情痞子
摘要

小编给大家分享一下如何使用html+CSS实现拖拽导航条,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!<!DOCTYPE HTML><html><head&g

小编给大家分享一下如何使用html+CSS实现拖拽导航条,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

<!DOCTYPE HTML>

<html>

<head>

    <meta charset="UTF-8">

    <title>div横向拖拽排序</title>

    <script src="Http://libs.baidu.com/Jquery/1.9.0/jquery.js"></script> 

    <style type="text/css">

        body, div {

            padding: 0px;

            margin: 0px;

        }

 

        .box {

            position: relative;

            margin-left: 15px;

            padding: 10px;

            padding-right: 0px;

            width: 810px;

            border: blue solid 1px;

        }

        .box ul{

            list-style: none;

            overflow: hidden;

            padding: 0;

            margin:0;

        }

        .drag {

            float: left;

            border: #000 solid 1px;

            text-align: center;

        }

        .box ul li a{

            display: block;

            padding: 10px 25px;

        }

        .drag-dash {

            position: absolute;

            border: #000 solid 1px;

            background: #ececec;

        }

 

        .dash {

            float: left;

            border: 1px solid transparent;

        }

    </style>

</head>

<body>

<h2>div横向拖拽排序</h2>

<div class="box">

    <ul>

        <li class="drag"><a href="#">导航一</a></li>

        <li class="drag"><a href="#">导航二导航</a></li>

        <li class="drag"><a href="#">导航导航导航三</a></li>

        <li class="drag"><a href="#">导航导航四</a></li>

        <li class="drag"><a href="#">导五</a></li>

    </ul>

</div>

 

<script type="text/javascript">

    $(document).ready(function () {

        var range = {x: 0, y: 0};//鼠标元素偏移量

        var lastPos = {x: 0, y: 0, x1: 0, y1: 0}; //拖拽对象的四个坐标

        var tarPos = {x: 0, y: 0, x1: 0, y1: 0}; //目标元素对象的坐标初始化

        var theDiv = null, move = false;

        var choose = false; //拖拽对象 拖拽状态 选中状态

        var theDivId = 0, theDivHeight = 0, theDivHalf = 0;

        var tarFirstY = 0; //拖拽对象的索引、高度、的初始化。

        var tarDiv = null, tarFirst, tempDiv; //要插入的目标元素的对象, 临时的虚线对象

        var initPos = {x: 0, y: 0};

        var theDivWidth;//拖拽对象的宽度

        $(".drag").each(function () {

            $(this).mousedown(function (event) {

                choose = true;

                //拖拽对象

                theDiv = $(this);

                //记录拖拽元素初始位置

                initPos.x = theDiv.position().left;

                initPos.y = theDiv.position().top;

                //鼠标元素相对偏移量

                range.x = event.pageX - theDiv.position().left;

                range.y = event.pageY - theDiv.position().top;

                theDivId = theDiv.index();

                theDivWidth = theDiv.width();

                theDivHalf = theDivWidth / 2;

                theDiv.removeClass("drag");

                theDiv.addClass("drag-dash");

                theDiv.css({left: initPos.x + 'px', top: initPos.y + 'px'});

                // 创建新元素 插入拖拽元素之前的位置(虚线框)

                $("<div class='dash'></div>").insertBefore(theDiv);

                tempDiv = $(".dash");

                $(".dash").css("width" , theDivWidth);

                return false

            });

        });

 

 

        $(document).mouseup(function (event) {

            if (!choose) {

                return false;

            }

            if (!move) {

                //恢复对象的初始样式

                theDiv.removeClass("drag-dash");

                theDiv.addClass("drag");

 

                tempDiv.remove(); // 删除新建的虚线div

                choose = false;

                return false;

            }

            theDiv.insertBefore(tempDiv); // 拖拽元素插入到 虚线div的位置上

            //恢复对象的初始样式

            theDiv.removeClass("drag-dash");

            theDiv.addClass("drag");

            tempDiv.remove(); // 删除新建的虚线div

            move = false;

            choose = false;

            return false

        }).mousemove(function (event) {

            if (!choose) {return false}

            move = true;

            lastPos.x = event.pageX - range.x;

            lastPos.y = event.pageY - range.y;

            lastPos.x1 = lastPos.x + theDivWidth;

            // 拖拽元素随鼠标移动

            theDiv.css({left: lastPos.x + 'px', top: lastPos.y + 'px'});

            // 拖拽元素随鼠标移动 查找插入目标元素

            var $main = $('.drag'); // 局部变量:按照重新排列过的顺序 再次获取 各个元素的坐标,

            $main.each(function () {

                tarDiv = $(this);

                tarPos.x = tarDiv.position().left;

                tarPos.y = tarDiv.position().top;

                tarPos.x1 = tarPos.x + tarDiv.width() / 2;

                tarFirst = $main.eq(0); // 获得第一个元素\

                tarFirstX = tarFirst.position().left + theDivHalf; // 第一个元素对象的中心纵坐标

                //拖拽对象 移动到第一个位置

                if (lastPos.x <= tarFirstX) {

                    tempDiv.insertBefore(tarFirst);

                }

                //判断要插入目标元素的 坐标后, 直接插入

                if (lastPos.x >= tarPos.x - theDivHalf && lastPos.x1 >= tarPos.x1) {

                    tempDiv.insertAfter(tarDiv);

                }

            });

            return false

        });

    });

</script>

</body>

</html>

看完了这篇文章,相信你对“如何使用Html+css实现拖拽导航条”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网html频道,感谢各位的阅读!

--结束END--

本文标题: 如何使用Html+css实现拖拽导航条

本文链接: https://lsjlt.com/news/89758.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用Html+css实现拖拽导航条
    小编给大家分享一下如何使用Html+css实现拖拽导航条,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!<!DOCTYPE HTML><html><head&g...
    99+
    2024-04-02
  • js如何实现横向拖拽导航条功能
    这篇文章给大家分享的是有关js如何实现横向拖拽导航条功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果如下:代码如下:<!DOCTYPE HTML> &...
    99+
    2024-04-02
  • 如何使用HTML和CSS实现拖拽式布局
    拖拽式布局是一种常见且实用的网页布局方式,它允许用户通过鼠标拖拽的方式来调整页面中元素的位置。在本文中,我们将介绍如何使用HTML和CSS来实现这种拖拽式布局,并提供一些具体的代码示例供参考。实现拖拽式布局的关键技术是使用HTML5中的Dr...
    99+
    2023-10-21
    CSS html 拖拽式布局
  • HTML+CSS+JavaScript实现可拖拽模态框
    前言 模态框是指覆盖在父窗口上的子窗口,但在HTML网页中,并没有父窗口和子窗口的概念。这里是通过可隐藏的遮罩层和一个可隐藏的盒子来实现模态框的效果。 效果演示: 下面开始详细介绍...
    99+
    2024-04-02
  • 如何使用bootstrap实现收缩导航条
    这篇文章将为大家详细讲解有关如何使用bootstrap实现收缩导航条,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下效果图 贴上我的代码<!DocType...
    99+
    2024-04-02
  • 如何使用HTML和CSS实现导航标签页布局
    在网页设计中,导航标签页是一种常见的布局方式,用于展示网站的不同页面和内容。它可以提高用户体验,让用户可以直观地浏览和访问网站的各个部分。本文将介绍如何使用HTML和CSS来实现导航标签页布局,并给出具体的代码示例。首先,我们需要创建一个基...
    99+
    2023-10-21
    CSS html 导航标签页布局
  • AmazeUI如何实现导航条
    这篇文章主要介绍AmazeUI如何实现导航条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!拥有易用的导航条对于任何网站都很重要。本文主要介绍了AmazeUI 导航条的实现示例,分享给大家,具体如下:<!doct...
    99+
    2023-06-09
  • 如何实现html元素拖拽功能
    这篇文章主要讲解了“如何实现html元素拖拽功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现html元素拖拽功能”吧!1.创建拖拽对象 我们可以通...
    99+
    2024-04-02
  • JavaScript如何实现可拖拽的进度条
    这篇文章给大家分享的是有关JavaScript如何实现可拖拽的进度条的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.进度条实现<html><head>  <me...
    99+
    2023-06-15
  • 如何使用HTML和CSS实现一个导航标签布局
    导航标签布局在网页设计中非常常见,它可以让用户快速找到所需要的页面,并提高网站的导航友好度。下面将详细介绍如何使用HTML和CSS实现一个导航标签布局,并附上具体的代码示例。编写HTML结构首先,需要定义导航标签的HTML结构。可以使用无序...
    99+
    2023-10-21
    CSS html 导航标签
  • 如何使用HTML和CSS实现水平导航标签布局
    如何使用HTML和CSS实现水平导航标签布局封面图现如今,很多网站都采用水平导航标签布局,这种布局形式简洁明了,易于导航和使用。本文将介绍如何使用HTML和CSS来实现水平导航标签布局,并给出具体的代码示例。首先,我们来看看HTML代码的结...
    99+
    2023-10-28
    CSS html 水平导航
  • 如何使用JavaScript实现拖拽效果
    这篇文章主要介绍如何使用JavaScript实现拖拽效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!拖拽在前端开发中是很常见的功能,也是基本功之一,本文是不限制范围的拖拽也就是最简...
    99+
    2024-04-02
  • 如何使用HTML5实现拖拽功能
    这篇文章给大家分享的是有关如何使用HTML5实现拖拽功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   问题:突然奇想,想在电影网上加一个收藏(类似于购物车的东西),可以通...
    99+
    2024-04-02
  • BootStrap中如何实现导航条
    这篇文章给大家分享的是有关BootStrap中如何实现导航条的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、默认的导航条制作默认的导航条,可分以下几步:1.在ul里加上(ul ...
    99+
    2024-04-02
  • 如何使用JavaScript实现公用导航条功能
    JavaScript是一种广泛应用于网页前端开发的脚本语言,其强大的功能与灵活性为开发者带来了无限的可能性。其中,公用导航条是常见的网页设计元素,可以提升用户体验,方便用户在不同页面之间进行导航。在本文中,我们将介绍如何使用JavaScri...
    99+
    2023-05-14
  • Bootstrap中导航条和分页导航如何实现
    这篇文章主要介绍Bootstrap中导航条和分页导航如何实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 本篇文章带大家了解一下Bootstrap中的导...
    99+
    2024-04-02
  • 如何使用纯CSS实现鼠标点击拖拽效果
    这篇文章主要介绍“如何使用纯CSS实现鼠标点击拖拽效果”,在日常操作中,相信很多人在如何使用纯CSS实现鼠标点击拖拽效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用纯CSS实现鼠标点击拖拽效果”的疑...
    99+
    2023-07-04
  • CSS怎么实现导航条菜单
    这篇文章主要介绍“CSS怎么实现导航条菜单”,在日常操作中,相信很多人在CSS怎么实现导航条菜单问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS怎么实现导航条菜单”的疑惑...
    99+
    2024-04-02
  • html5如何实现拖拽
    这篇文章主要介绍了html5如何实现拖拽,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。html5实现拖拽的方法:首先新建一个空的HTML5结构;然后在body元素中放置一个d...
    99+
    2023-06-15
  • 如何使用HTML和CSS实现一个导航标签栏布局
    导航标签栏是一个常见的网页设计元素,它可以为用户提供快速导航到网站的不同页面或功能。在本文中,我们将学习如何使用HTML和CSS来实现一个简单但具有吸引力的导航标签栏布局。要实现这个布局,我们将首先创建HTML的基本结构,然后使用CSS来样...
    99+
    2023-10-21
    CSS html 导航标签栏
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作