如何利用js实现横向拖拽导航条功能

本文主要介绍了js实现横向拖拽导航条功能的方法。具有很好的参考价值,下面一起来看下吧

效果如下:

如何利用js实现横向拖拽导航条功能

代码如下:

nbsp;HTML>  p横向拖拽排序     body, p {   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;  } 

p横向拖拽排序

 

登录后复制  导航一  导航二导航  导航导航导航三  导航导航四  导五  $(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 thep = null, move = false; var choose = false; //拖拽对象 拖拽状态 选中状态 var thepId = 0, thepHeight = 0, thepHalf = 0; var tarFirstY = 0; //拖拽对象的索引、高度、的初始化。 var tarp = null, tarFirst, tempp; //要插入的目标元素的对象, 临时的虚线对象 var initPos = {x: 0, y: 0}; var thepWidth;//拖拽对象的宽度 $(“.drag”).each(function () { $(this).mousedown(function (event) { choose = true; //拖拽对象 thep = $(this); //记录拖拽元素初始位置 initPos.x = thep.position().left; initPos.y = thep.position().top; //鼠标元素相对偏移量 range.x = event.pageX – thep.position().left; range.y = event.pageY – thep.position().top; thepId = thep.index(); thepWidth = thep.width(); thepHalf = thepWidth / 2; thep.removeClass(“drag”); thep.addClass(“drag-dash”); thep.css({left: initPos.x + 'px', top: initPos.y + 'px'}); // 创建新元素 插入拖拽元素之前的位置(虚线框) $(“

“).insertBefore(thep); tempp = $(“.dash”); $(“.dash”).css(“width” , thepWidth); return false }); }); $(document).mouseup(function (event) { if (!choose) { return false; } if (!move) { //恢复对象的初始样式 thep.removeClass(“drag-dash”); thep.addClass(“drag”); tempp.remove(); // 删除新建的虚线p choose = false; return false; } thep.insertBefore(tempp); // 拖拽元素插入到 虚线p的位置上 //恢复对象的初始样式 thep.removeClass(“drag-dash”); thep.addClass(“drag”); tempp.remove(); // 删除新建的虚线p 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 + thepWidth; // 拖拽元素随鼠标移动 thep.css({left: lastPos.x + 'px', top: lastPos.y + 'px'}); // 拖拽元素随鼠标移动 查找插入目标元素 var $main = $('.drag'); // 局部变量:按照重新排列过的顺序 再次获取 各个元素的坐标, $main.each(function () { tarp = $(this); tarPos.x = tarp.position().left; tarPos.y = tarp.position().top; tarPos.x1 = tarPos.x + tarp.width() / 2; tarFirst = $main.eq(0); // 获得第一个元素 tarFirstX = tarFirst.position().left + thepHalf; // 第一个元素对象的中心纵坐标 //拖拽对象 移动到第一个位置 if (lastPos.x = tarPos.x – thepHalf && lastPos.x1 >= tarPos.x1) { tempp.insertAfter(tarp); } }); return false }); });

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

JS和CSS实现鼠标经过弹出一个带缓冲动画渐变效果DIV框

利用JS实现随页面滚动显示/隐藏窗口固定位置元素

以上就是如何利用js实现横向拖拽导航条功能的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2748645.html

(0)
上一篇 2025年3月8日 04:48:52
下一篇 2025年2月19日 09:35:35

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS实现移动端向左滑动出现删除按钮的功能

    最近在做移动端项目时,需要实现一个列表页面的每一项item向左滑动时出现相应的删除按钮,其实实现此功能很简单的。这篇文章主要介绍了基于js实现移动端向左滑动出现删除按钮,需要的朋友可以参考下 最近在做移动端项目时,需要实现一个列表页面的每一…

    2025年3月8日
    200
  • JavaScript实现使用Canvas绘制图形

    本篇文章主要介绍了javascript实现使用canvas绘制图形的基本教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 由于这两年HTML5火的正热,所以研究了一下,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把。…

    2025年3月8日 编程技术
    200
  • JS和Canves实现点击按钮水波纹效果

    本文给大家分享基于js和canves实现点击按钮水波纹效果,效果非常逼真,对此感兴趣的朋友一起看看吧 近来看到个不错的按钮点击效果,当点击时产生一次水波涟漪效果,挺好玩的,于是简单的实现了下(没考虑低版本浏览器兼容问题) 先看看效果吧,如下…

    2025年3月8日
    200
  • js和css3实现旋转效果

    本文主要介绍了js+css3实现旋转效果的方法。具有一定的参考价值,下面一起来看下吧 我的前面一张文章实现了用css3制作旋转的效果,现在呢,我换另外一种方法来实现.就是使用js结合css3的方法来实现的.下面我就先上图给大家看看效果吧 下…

    2025年3月8日
    200
  • 如何用JS和CSS3制作炫酷的弹窗效果

    本文给大家分享使用js和css3制作的炫酷弹窗效果,整个背景模糊,要比纯色加透明度高大上好多。对js弹窗效果感兴趣的朋友一起学习吧 昨天在家看电视时,退出的时候发现了一个弹窗效果,整个背景模糊,觉得这样的效果好炫,要比纯色加透明度高大上好多…

    2025年3月8日
    200
  • 关于JavaScript制作简单的框选图表

    这篇文章主要为大家详细介绍了javascript制作一个简单的框选图表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 故事背景:这几天遇到一个客户,是做会议记录的,每次会议过程中,都会有特定设备记录下讲话人的位置以角度值显示。他给我角度…

    2025年3月8日
    200
  • JS文件上传神器bootstrap fileinput的解析

    这篇文章主要介绍了js文件上传神器bootstrap fileinput,样式非常美观,并且支持上传文件预览,ajax同步或异步上传,拖曳文件上传等炫酷的功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Bootstrap FileI…

    2025年3月8日
    200
  • 如何通过JS判断iframe是否加载完成

    这篇文章主要介绍了js判断iframe是否加载完成的方法,提供了2种实现方法,可分别针对ie内核与非ie内核浏览器进行判断与操作,涉及javascript事件操作与判定技巧,需要的朋友可以参考下 本文实例讲述了JS判断iframe是否加载完…

    编程技术 2025年3月8日
    200
  • 关于js鼠标按键事件和键盘按键事件的使用方法

    这篇文章主要介绍了js鼠标按键事件和键盘按键事件用法,结合实例形式总结分析了javascript针对鼠标与键盘事件的常用操作技巧,需要的朋友可以参考下 本文实例讲述了js鼠标按键事件和键盘按键事件用法。分享给大家供大家参考,具体如下: ke…

    编程技术 2025年3月8日
    200
  • JS实现带有3D立体感的银灰色竖排折叠菜单的代码

    这篇文章主要介绍了js实现带有3d立体感的银灰色竖排折叠菜单代码,可实现基本的js响应鼠标事件动态展开与折叠菜单栏的功能,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了JS实现带有3D立体感的银灰色竖排折叠菜单代码。分享给大家供…

    2025年3月8日
    200

发表回复

登录后才能评论