如何'剪切'DOM元素并将其显示在其他位置
How to 'cut' DOM element and display it in other place?
我有网站,只有当视口宽度小于768px时,我想从.tab-content
"剪切"每个div#id
,并将每个div添加到每个li
。
我的HTML页面:
<section id="menu">
<div class="container">
<div class="row">
<div class="col-xs-12">
<ul id="menu-nav" class="nav nav-pills text-center">
<li class="active"><h2><a href="#about" data-toggle="tab">About</a></h2></li>
<li><h2><a href="#services" data-toggle="tab">Services</a></h2></li>
<li><h2><a href="#contact" data-toggle="tab">Contact</a></h2></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="tab-content">
<div class="tab-pane active" id="about">
<div class="col-sm-8 col-sm-offset-2">
<p class="text-center">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis odit id praesentium, maxime, harum corporis officia laboriosam earum laudantium mollitia et quas, iure enim expedita. Nam sit, est libero obcaecati.
</p>
</div>
</div>
<div class="tab-pane" id="services">
<div class="col-sm-8 col-sm-offset-2">
<p class="text-center">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis odit id praesentium, maxime, harum corporis officia laboriosam earum laudantium mollitia et quas, iure enim expedita. Nam sit, est libero obcaecati.
</p>
</div>
</div>
<div class="tab-pane" id="contact">
<div class="col-sm-8 col-sm-offset-2">
<p class="text-center">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis odit id praesentium, maxime, harum corporis officia laboriosam earum laudantium mollitia et quas, iure enim expedita. Nam sit, est libero obcaecati.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
我尝试对每个div#ID使用jquery,但它不起作用。
$(document).ready(function(){
if ($(window).width() < 768) {
var divAbout = $('#about').pop();
$(divAbout).appendTo('#menu-nav li:first-of-type');
}
});
我想在手机上看到这个结果:
<li>
<h2>About</h2>
<div id="about">
...
</div>
</li>
其他潜水艇也是如此。
您可以使用调整大小处理程序并执行
var flag;
$(window).on('resize.menu', function () {
var width = $(window).width(),
$ul = $('#menu-nav');
if (width < 768 && flag != 1) {
flag = 1;
$('#menu .tab-content .tab-pane').each(function () {
$(this).appendTo($ul.find('li:has(a[href="#' + this.id + '"])'))
});
} else if (width >= 768 && flag != 2) {
flag = 2;
$ul.find('.tab-pane').appendTo('#menu .tab-content');
}
}).trigger('resize.menu')
演示:Fiddle
希望您希望开发一个响应式的web设计。而不是剪切DOM并将其添加到li
标记中。使用CSS3 media queries
可以根据元素宽度显示和隐藏元素。
但这里有一个解决您问题的方法:
$(document).ready(function(){
if ($(window).width() < 768) {
$(".tab-content div").each(function(index, ele) {
var id = this.id; // about , contact
$("li a[href='#'"+id+"]").parent().parent().append(this);
// this will match li with a having href="#about" etc
});
}
});
相关文章:
- 如何在Simile展品地图中显示位置
- 在TWebBrowser(谷歌地图)中显示位置,而无需单击按钮
- 如何使用XML中的经度和纬度值在地图上显示位置
- Jquery下拉菜单位于幻灯片上方的一个显示位置
- 谷歌地图 API v3 未正确显示位置
- 必应地图未使用 asp.net MVC 显示位置
- 在地图上显示位置
- 使用移动网络应用程序在iphone地图上显示位置
- 栏杆4:单击链接后如何更改显示位置
- 如何在网站上向用户显示位置(国家)
- 在Firefox中显示位置栏
- 无法使用Javascript在谷歌地图中显示位置详细信息
- 如何在Google Maps Places API上突出显示位置
- 根据弹出窗口的显示位置动态更改弹出窗口的位置
- 拖放时显示位置和合计
- 显示位置的变化在谷歌地图上没有重新加载地图一次又一次
- takto显示位置固定
- 在Google Maps API的标记上显示位置信息
- 使用JavaScript检查是否显示位置栏(适用于Internet explorer)
- 如何修改jQuery输入的显示位置