WordPress + JQuery UI 选项卡 + 动态更改选项卡的宽度
Wordpress + JQuery UI Tabs + Dynamically changing Width of Tabs
我正在尝试在WordPress站点的一个页面上设置一个选项卡式窗格(通过jQuery)。我有选项卡工作,在大多数情况下,它看起来在这个阶段是我想要的。不过有一个问题 - 设置选项卡的宽度,以便每个选项卡的跨度足够长,以至于所有选项卡的总和都等于窗格的空间。现在这通常不会太难,但问题是我不知道最终会有多少个选项卡(我的客户不确定)。
以下是我通过Jetpack的自定义CSS功能使用的CSS:
.ui-tabs-nav {
font-size: larger;
font-weight: bold;
background: none;
height: 30px;
/*To stop nav block scaling of tab size*/
}
.ui-tabs .ui-tabs-nav {
margin: 0;
padding: .2em .2em 0;
border: none;
background: none;
}
.ui-tabs .ui-tabs-nav li {
display: inline;
border: none;
margin: 0 0 -5px;
background: none;
}
.ui-tabs-anchor {
color: #000034;
}
ul.ui-widget-header, ul.ui-widget-content, ul.ui-state-default, ul.ui-state-hover {
background: none;
border: none;
}
.ui-tabs-active a {
text-decoration: none;
background: none;
color: #222222;
position: relative;
z-index: 5;
}
还有一些 JavaScript 来调整选项卡的宽度:
jQuery(document).ready(function($) {
var numTabs = $('#tabs li').length;
var tabWidth = 100 / numTabs;
var tabPercent = tabWidth + "%";
var liArray = $('#tabs li');
var i;
for (i = 0; i < liArray.length; i++) {
liArray[i].style.width = tabPercent;
}
});
最后,一些 HTML:
<div id="tabs">
<ul class="ui-widget-header ui-corner-top">
<li><a href="#tabs1">First</a></li>
<li><a href="#tabs2">Second</a></li>
<li><a href="#tabs3">Third</a></li>
</ul>
<div id="tabs1">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
<div id="tabs2">Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.</div>
<div id="tabs3">Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.</div>
</div>
所以是的,考虑到这些片段 - 我如何使用 Javascript 将样式动态应用于我的选项卡,以便它们的所有宽度组合 = 窗格的 100%?
谢谢!
将 li 更改为块元素,以便设置其宽度。
jQuery(document).ready(function($) {
$("#tabs").tabs();
var numTabs = $('#tabs li').length;
var tabWidth = 98 / numTabs; // using 98 because sometimes using 100 will cause last element to get "bumped" down below the first element.
var tabPercent = tabWidth + "%";
$('#tabs li').each(function () {
$(this).css("width", tabPercent);
$(this).css("display", "inline-block");
});
});
http://jsfiddle.net/bwzhLzco/1/
相关文章:
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- jQuery动态表单显示在select选项上
- 从动态创建的html选择中选择所选选项
- .aspx页面上引导程序中的动态选项卡
- 使用php动态更改选择选项
- 带有多个答案选项的Javascript动态数组窗口
- 表单选择选项动态吸引
- 如何使用提示将选项动态添加到选择菜单以获取值
- 如何从选择菜单选项动态声明全局变量
- 将选项动态添加到选择框中
- 使用jQuery将选项动态分组到opt组中
- jquery中的select选项动态字段无效
- 将表单从多个选项动态更改为平面选项
- 使用ng选项动态添加禁用的选项项
- 合成:如何根据从单选按钮中选择的选项动态更改画布新图纸
- Magento简单产品页面-使用自定义选项动态更新SKU
- 主干网-使用用户输入的选项动态应用select2
- 无法使用其选项动态创建select
- JQUERY填充"选择"选项动态地基于来自另一个选择元素的输入