做一个响应式的Javascript水平导航,中间有Logo
Make a Responsive Javascript Horizontal Navigation with Logo in Center
我在这个网站上发现了一个问题/帖子,在第一次看它的时候效果很好,直到我需要它做更多的事情,我已经玩了它,还没有找到一个解决方案,让它做我需要它做的事情。
我正在为客户建立一个网站,所以我需要它很容易操作,如果客户想要改变事情的实际顺序,所以在主题的后端建立一个ul/li列表不是一个选项,除非有一个简单的方法让我修改函数。php和改变菜单选项卡的设置方式。
这是我的javascript编码,菜单是一个实际的wordpress菜单。jQuery(document).ready(function() {
jQuery("ul#menu-primary-items").find("li:contains('Home')").hide(); // hides home from navigation
var position = jQuery("ul#menu-primary-items li").length-1;
var i = 0;
jQuery('ul#menu-primary-items li').each(function() {
if(i == position/2) {
jQuery(this).after('the img src code is in here');
}
i++;
});
});
在整个页面宽度上,我需要它看起来像
Link | Link | Link | LOGO IMG | Link | Link |Link
在媒体宽度(主题@media max-width是999px)我需要它是一个下拉样式的wordpress框
LOGO IMG
WP "MENU" button
Link
Link
Link
Link
Link
Link
不像上面那样显示,而是显示为
WP "MENU" button
Link
Link
Link
LOGO IMG
Link
Link
Link
在JQuery代码中检查媒体,设置LOGO位置:
jQuery(document).ready(function() {
jQuery("ul#menu-primary-items").find("li:contains('Home')").hide(); // hides home from navigation
var position = jQuery("ul#menu-primary-items li").length-1;
var i = 0;
/* check media here */
var isMedia999=false;
isMedia999 = (window.width() < 1000); //true if max width is <=999px
/* chek is done */
if( ! isMedia999)
jQuery('ul#menu-primary-items li').each(function() {
if(i == position/2) {
jQuery(this).after('the img src code is in here');
}
i++;
});
else jQuery('ul#menu-primary-items li').each(function() {
if(i == 0) { // <== first position if max width 999px
jQuery(this).after('the img src code is in here');
}
i++;
});
});
当然这不会被实现。在调整大小时刷新,所以你可以这样做:
jQuery(document).ready(function() {
myfunc();
windows.resize(myfunc());
});
function myfunc(){
jQuery("ul#menu-primary-items").find("li:contains('Home')").hide();
var position = jQuery("ul#menu-primary-items li").length-1;
var i = 0;
/* check media here */
var isMedia999=false;
isMedia999 = (window.width() < 1000); //true if max width is <=999px
/* chek is done */
if( ! isMedia999)
jQuery('ul#menu-primary-items li').each(function() {
if(i == position/2) {
jQuery(this).after('the img src code is in here');
}
i++;
});
else jQuery('ul#menu-primary-items li').each(function() {
if(i == 0) { // <== first position if max width 999px
jQuery(this).after('the img src code is in here');
}
i++;
});
});
}
更好:使用CSS和2个徽标。
第一个标志被隐藏为媒体宽度> 999px,第二个标志被隐藏为媒体<= 999px宽度。
@media max-width is 999px {
.logo#wide { display:none; }
.logo#tiny { display:inline; }
}
@media min-width is 1000px {
.logo#wide { display:inline; }
.logo#tiny { display:none; }
}
EDIT: JQuery:jQuery(文档)时函数(){# menu-primary-items jQuery("ul");("李:包含(‘回家’)")hide ();//在导航栏中隐藏home
var position = jQuery("ul#menu-primary-items li").length-1;
var i = 0;
jQuery('ul#menu-primary-items li').each(function() {
if(i == 0) {
//put logo tiny here for media maxwidth 999px
}
if(i == position/2) {
// put logo wide here for media minwidth 1000px
}
i++;
});
});
这样做可以吗?
@media(max-width:whateveryouwant px)
{
.logo{
float:right;
}
}
另一种方法是将元素抛出DOM。你可以用jQuery实现:
if((window).width() <= sizeYouWant){
$('.logo').insertBefore('#FirstElement');
}
相关文章:
- Wordpress 3级水平导航-需要jquery/javascript帮助进行对齐
- 如何实现水平页面导航系统
- 使用jquery将垂直导航更改为水平导航
- 滑块水平缩略图导航器大小和图像数量
- 无法在WordPress主题中居中水平导航
- 具有垂直滚动条的水平滚动条页面导航
- 引导区悬停水平子导航
- 水平滚动jQuery固定导航
- 在winjs中的水平列表视图中进行左右导航
- CSS垂直导航菜单,带有水平子菜单和半透明带
- 水平滚动导航条不能正常工作
- 固定导航在ios移动时水平滚动
- 引导水平导航条与垂直下拉CSS
- 键盘水平导航
- 引导4:当导航条折叠时,li项水平显示在导航条品牌旁边
- 导航栏中的水平图标
- 鼠标悬停时水平展开导航条
- CSS切换导航水平以及垂直屏幕上调整大小
- 做一个响应式的Javascript水平导航,中间有Logo
- Jquery/JS和CSS水平列表导航单击下拉超链接不工作