下拉菜单移动元素
Dropdown menu move elements
是否有办法使下拉菜单对角线移动,如果子菜单打开?目前我的菜单上下移动,你可以看到http://jsfiddle.net/LthgY/1280/我想在它旁边添加一个弯曲的图片但由于它上下移动,它会撞到图片
$(document).ready(function(){
$("#menu > li > a").on("click", function(e){
if($(this).parent().has("ul")) {
e.preventDefault();
}
if(!$(this).hasClass("open")) {
$("#menu li ul").slideUp(350);
$("#menu li a").removeClass("open");
$(this).next("ul").slideDown(350);
$(this).addClass("open");
}
else if($(this).hasClass("open")) {
$(this).removeClass("open");
$(this).next("ul").slideUp(350);
}
});
});
当然——你可以用transform
来旋转下拉框#menu {
transform: rotate(45deg);
}
可以添加到你的CSS中来达到这个目的。
http://jsfiddle.net/LthgY/1281/编辑:
从注释
关于元素保持直立,但"向下滑动"对角线。
您可能需要做一些微调,但这将说明总体思想:
http://jsfiddle.net/LthgY/1282/我修改了以下CSS规则:
#menu li ul {
transform: rotate(45deg);
transform: translateX( -50px);
transform: translateY(10px);
display: none;
line-height: 70%;
}
本质上这做的是rotates
在菜单中的子列表,然后translates
(moves
)子列表,以弥补由旋转变换引起的位置偏移。
$(document).ready(function() {
$("#menu > li > a").on("click", function(e) {
if ($(this).parent().has("ul")) {
e.preventDefault();
}
if (!$(this).hasClass("open")) {
$("#menu li ul").slideUp(350);
$("#menu li a").removeClass("open");
$(this).next("ul").slideDown(350);
$(this).addClass("open");
} else if ($(this).hasClass("open")) {
$(this).removeClass("open");
$(this).next("ul").slideUp(350);
}
});
});
ol,
ul {
list-style: none;
}
/*
* modified CSS rule below
*/
#menu {
margin-left: 65px;
}
#menu li ul {
transform: translateX(-90px);
transform: rotate(45deg);
margin-left: -30px;
display: none;
line-height: 70%;
}
#menu li ul li {
transform: rotate(-45deg);
}
#menu li ul li a {
font-size: 11px;
text-decoration: none;
transform: translateY(-10px);
}
/* end of modified rules */
#menu a {
text-decoration: none;
display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="menu">
<li><a class="menu1" href="#">Menu1</a>
<ul>
<li><a class="menu1_1" href="#">A</a>
</li>
<li><a class="menu1_2" href="#">B</a>
</li>
<li><a class="menu1_3" href="#">C</a>
</li>
<li><a class="menu1_4" href="#">D</a>
</li>
</ul>
</li>
<li><a class="menu2" href="#">Menu2</a>
<ul>
<li><a class="menu1_1" href="#">A</a>
</li>
<li><a class="menu1_2" href="#">B</a>
</li>
<li><a class="menu1_3" href="#">C</a>
</li>
<li><a class="menu1_4" href="#">D</a>
</li>
</ul>
</li>
<li><a class="menu3" href="#">Menu3</a>
<ul>
<li><a class="menu1_1" href="#">A</a>
</li>
<li><a class="menu1_2" href="#">B</a>
</li>
<li><a class="menu1_3" href="#">C</a>
</li>
<li><a class="menu1_4" href="#">D</a>
</li>
</ul>
</li>
<li><a class="menu4" href="#">Menu4</a>
<ul>
<li><a class="menu1_1" href="#">A</a>
</li>
<li><a class="menu1_2" href="#">B</a>
</li>
<li><a class="menu1_3" href="#">C</a>
</li>
<li><a class="menu1_4" href="#">D</a>
</li>
</ul>
</li>
<li><a class="menu5" href="#">Menu5</a>
<ul>
<li><a class="menu1_1" href="#">A</a>
</li>
<li><a class="menu1_2" href="#">B</a>
</li>
<li><a class="menu1_3" href="#">C</a>
</li>
<li><a class="menu1_4" href="#">D</a>
</li>
</ul>
</li>
<li><a class="menu6" href="#">Menu6</a>
<ul>
<li><a class="menu1_1" href="#">A</a>
</li>
<li><a class="menu1_2" href="#">B</a>
</li>
<li><a class="menu1_3" href="#">C</a>
</li>
<li><a class="menu1_4" href="#">D</a>
</li>
</ul>
</li>
<li><a class="menu7" href="#">Menu7</a>
<ul>
<li><a class="menu1_1" href="#">A</a>
</li>
<li><a class="menu1_2" href="#">B</a>
</li>
<li><a class="menu1_3" href="#">C</a>
</li>
<li><a class="menu1_4" href="#">D</a>
</li>
</ul>
</li>
</ul>
注意仍然有一些修饰性的问题需要解决,比如字母出现向后——但至少这个答案给了你一个如何做到这一点的基本想法。
相关文章:
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- 将元素移动到右侧,然后返回到左侧
- 将jQuery draggable()元素移动到新的父元素
- Jquery-将图像从一个元素移动到另一个元素
- Css-是否可以在调整屏幕大小时使元素移动,以使其适合屏幕
- 制作元素移动的动画
- 如何将较低的z级元素移动到透明png下方
- SVG文本锚点设置使文本元素移动
- 如何将元素移动到鼠标位置
- d3:应用 scale() 变换时元素移动
- jQuery UI 工具提示在源 DOM 元素移动时卡住打开
- 如何在页面上选择文本块,然后将元素移动到其前面
- 下拉列表使元素移动
- 将一个元素移动到另一个元素中,其余元素将转到第三个位置
- 将最后一个元素移动到数组中的第二个项目的最快方法
- Javascript以可变的角度和速度为元素移动制作动画
- 在 JavaScript 中将数组元素移动到变量
- 使用jQuery单击时将元素移动/复制到另一个位置
- 将排序数组的数组元素移动到具有特殊逻辑的另一个位置
- 如何跟踪元素移动和特定位置的触发功能