1
我正在使用jquery在這個可滾動的選項卡上工作。它運行良好,但我面臨的唯一問題是兩個箭頭div的位置。他們都是float:left
,但不知何故堆疊在主標籤容器的右側。這兩個div都是在運行時創建的。這兩個箭頭div的我想要的位置是:開始(標籤前)的左箭頭div和最後(標籤後)的右箭頭div。任何幫助或建議將受到歡迎。在左邊移動一個div,在另一個div的右邊移動div
jQuery代碼低於但看到它的工作,去這裏:JSFiddle
(function ($) {
var settings = {
barheight: 38
}
$.fn.scrollabletab = function (options) {
var ops = $.extend(settings, options);
var ul = this.children('ul').first();
var ulHtmlOld = ul.html();
var tabBarWidth = $(this).width() - 60;
ul.wrapInner('<div class="fixedContainer" style="height: ' + ops.barheight + 'px; width: ' + tabBarWidth + 'px; overflow: hidden; float: left;"><div class="moveableContainer" style="height: ' + ops.barheight + 'px; width: 5000px; position: relative; left: 0px;"></div></div>');
ul.append('<div style="width: 20px; float: left; height: ' + (ops.barheight - 2) + 'px; margin-left: 5px; margin-right: 0;"></div>');
var leftArrow = ul.children().last();
leftArrow.button({ icons: { secondary: "ui-icon ui-icon-carat-1-w" } });
leftArrow.children('.ui-icon-carat-1-w').first().css('left', '2px');
ul.append('<div style="width: 20px; float: left; height: ' + (ops.barheight - 2) + 'px; margin-left: 1px; margin-right: 0;"></div>');
var rightArrow = ul.children().last();
rightArrow.button({ icons: { secondary: "ui-icon ui-icon-carat-1-e" } });
rightArrow.children('.ui-icon-carat-1-e').first().css('left', '2px');
var moveable = ul.find('.moveableContainer').first();
leftArrow.click(function() {
var offset = tabBarWidth/6;
var currentPosition = moveable.css('left').replace('px', '')/1;
if (currentPosition + offset >= 0) {
moveable.stop().animate({ left: '0' }, 'slow');
}
else {
moveable.stop().animate({ left: currentPosition + offset + 'px' }, 'slow');
}
});
rightArrow.click(function() {
var offset = tabBarWidth/6;
var currentPosition = moveable.css('left').replace('px', '')/1;
var tabsRealWidth = 0;
ul.find('li').each(function (index, element) {
tabsRealWidth += $(element).width();
tabsRealWidth += ($(element).css('margin-right').replace('px', '')/1);
});
tabsRealWidth *= -1;
if (currentPosition - tabBarWidth > tabsRealWidth) {
moveable.stop().animate({ left: currentPosition - offset + 'px' }, 'slow');
}
});
return this;
}; // end of functions
})(jQuery);
$(function() {
$("#tabs").tabs().scrollabletab();
});
聽起來很正確的。我明白你的意思,但它似乎是不可能的,我與你所描述的方式對現有的jQuery-ui.js這段代碼合併。目前我只是在最後粘貼了這段代碼,它給出了這種行爲..但不知道在哪裏以及如何將它們放置在中間..無論我嘗試,整個放置和CSS似乎都被拆除..你能請看看.. – 2015-02-24 09:56:23
@AbdulJabbar我編輯了我的答案,並添加了如何更改您的Javascript代碼以使其工作。但是,您應該先嚐試並理解您自己使用的代碼。如果您遇到問題,可以隨時在[SO聊天室](http://chat.stackoverflow.com/rooms/29074/html-css-webdesign)中尋求快速幫助。理解你的代碼總是比簡單的複製功能更好。 – 2015-02-24 10:03:30
太棒了!非常感謝您爲我節省了大量時間和精力。 – 2015-02-24 10:08:22