Эффектные вкладки табы - Tabulous.js (div и а хватает все)
Есть такой плагин вкладок http://jquerycards.com/ui/filter-sort/tabulous-js/
пример в работе http://codepen.io/anon/pen/MKXmxz но есть проблема если в контенте вкладок есть <div> <a> ломается работа, скрипт их тоже включает в работу |
runyugin,
а пример с проблемой? |
runyugin,
ау:-? |
|
runyugin,
http://codepen.io/anon/pen/BjVZgM если всё ок замените плагин на новую версию - по ссылке старая версия с исправлениями |
tabs модернизация tabulous
runyugin,
<!DOCTYPE html><html class=''>
<head><meta charset='UTF-8'><meta name="robots" content="noindex">
<style class="cp-pen-styles">html{
background: rgb(101, 92, 137);
font-family: "Lato", sans-serif;
}
a:active,a:focus {
outline: expression(hideFocus='true');
}
p {
margin-bottom: 20px;
}
#wrapper {
width: 960px;
margin: 0 auto;
margin-top: 100px;
}
#tabs,#tabs2,#tabs3,#tabs4,#tabs5 {
width: 500px;
margin: 0 auto;
margin-bottom: 40px;
}
#tabs li,#tabs2 li,#tabs3 li,#tabs4 li,#tabs5 li {
float: left;
margin-right: 2px;
list-style: none;
}
#tabs li a,#tabs2 li a,#tabs3 li a,#tabs4 li a,#tabs5 li a {
display: block;
padding: 17px 30px;
background: #544f6b;
text-decoration: none;
color: #8478B3;
}
#tabs li a:hover,#tabs2 li a:hover,#tabs3 li a:hover,#tabs4 li a:hover,#tabs5 li a:hover {
background: rgb(78, 74, 99);
}
#tabs_container {
padding: 40px;
overflow: hidden;
position: relative;
background: white;
}
#tabs_container div {
margin-right: 40px;
}
.transition {
-webkit-transition: all .3s ease-in-out;
-moz-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
-webkit-transition-delay: .3s;
-moz-transition-delay: .3s;
-o-transition-delay: .3s;
-ms-transition-delay: .3s;
transition-delay: .3s;
}
.make_transist {
-webkit-transition: all .3s ease-in-out;
-moz-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
}
.hidescale {
-webkit-transform: scale(0.9);
-moz-transform: scale(0.9);
-o-transform: scale(0.9);
-ms-transform: scale(0.9);
transform: scale(0.9);
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
filter: alpha(opacity=0);
opacity: 0;
}
.showscale {
-webkit-transform: scale(1);
-moz-transform: scale(1);
-o-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
opacity: 1;
-webkit-transition-delay: .3s;
-moz-transition-delay: .3s;
-o-transition-delay: .3s;
-ms-transition-delay: .3s;
transition-delay: .3s;
}
.hideleft {
-webkit-transform: translateX(-100%);
-moz-transform: translateX(-100%);
-o-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
opacity: 0;
}
.showleft {
-webkit-transform: translateX(0px);
-moz-transform: translateX(0px);
-o-transform: translateX(0px);
-ms-transform: translateX(0px);
transform: translateX(0px);
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
opacity: 1;
-webkit-transition-delay: .3s;
-moz-transition-delay: .3s;
-o-transition-delay: .3s;
-ms-transition-delay: .3s;
transition-delay: .3s;
}
.hideup {
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
-o-transform: scale(1.1);
-ms-transform: scale(1.1);
transform: scale(1.1);
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
opacity: 0;
}
.showup {
-webkit-transform: scale(1);
-moz-transform: scale(1);
-o-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
opacity: 1;
-webkit-transition-delay: .3s;
-moz-transition-delay: .3s;
-o-transition-delay: .3s;
-ms-transition-delay: .3s;
transition-delay: .3s;
}
.hideflip {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
opacity: 0;
-webkit-transform: rotatey(-90deg) scale(1.1);
-moz-transform: rotatey(-90deg) scale(1.1);
-o-transform: rotatey(-90deg) scale(1.1);
-ms-transform: rotatey(-90deg) scale(1.1);
transform: rotatey(-90deg) scale(1.1);
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
transform-origin: 50% 50%;
}
.showflip {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
opacity: 1;
-webkit-transition-delay: .3s;
-moz-transition-delay: .3s;
-o-transition-delay: .3s;
-ms-transition-delay: .3s;
transition-delay: .3s;
-webkit-transform: rotatey(0deg) scale(1);
-moz-transform: rotatey(0deg) scale(1);
-o-transform: rotatey(0deg) scale(1);
-ms-transform: rotatey(0deg) scale(1);
transform: rotatey(0deg) scale(1);
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
transform-origin: 50% 50%;
}
.tabulous_active {
background: white !important;
color: #655c89 !important;
}
.tabulousclear {
display: block;
clear: both;
}</style></head><body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
(function($) {
$.fn.tabulous = function(options) {
var settings = $.extend({
effect: "scale"
}, options);
return this.each(function() {
var parent = $(this),
ul = $(">ul", parent),
links = $(">li a", ul),
block = $("> div", parent),
divs = $("> div", block),
hide = "hide" + settings.effect,
show = "show" + settings.effect;
ul.append('<span class="tabulousclear"></span>');
divs.css({
"position": "absolute",
"top": "40px"
}).addClass("make_transist");
block.addClass("transition");
links.each(function(indx, a) {
var a = $(a);
a.on("click", function(event) {
event.preventDefault();
links.not(a.addClass("tabulous_active")).removeClass("tabulous_active");
var div = divs.eq(indx);
divs.removeClass(show).not(div.addClass(show)).addClass(hide);
block.height(div.height())
})
}).eq(0).click()
})
}
})(jQuery);
</script>
<div id="wrapper">
<div id="tabs">
<ul>
<li><a href="#tabs-1" title="">Tab 1</a></li>
<li><a href="#tabs-2" title="">Tab 2</a></li>
<li><a href="#tabs-3" title="">Tab 3</a></li>
</ul>
<div id="tabs_container">
<div id="tabs-1">
<p>Proin elit arcu, rutrum commodo</p>
<div>Пролмй блок 1</div>
<div>Пролмй блок 2
<a href="#" title="">Промная ссылка 1</a>
</div>
<div>
<div>Пролмй блок 3 <a href="#" title="">Промная ссылка 2</a></div>
</div>
<p>Aenean tempor ullamcorper leo.</p>
</div>
<div id="tabs-2">
<p>Morbi tincidunt, dui sit amet facilisis feugiat</p>
</div>
<div id="tabs-3">
<p>Mauris eleifend est et turpis</p>
<p> Vestibulum non ante</p>
</div>
</div>
</div>
<div id="tabs2">
<ul>
<li><a href="#tabs-1" title="">Tab 1</a></li>
<li><a href="#tabs-2" title="">Tab 2</a></li>
<li><a href="#tabs-3" title="">Tab 3</a></li>
</ul>
<div id="tabs_container">
<div id="tabs-1">
<p>Proin elit arcu</p>
</div>
<div id="tabs-2">
<p>Morbi tincidunt, dui sit amet</p>
</div>
<div id="tabs-3">
<p>Mauris eleifend</p>
</div>
</div>
</div>
<div id="tabs3">
<ul>
<li><a href="#tabs-1" title="">Tab 1</a></li>
<li><a href="#tabs-2" title="">Tab 2</a></li>
<li><a href="#tabs-3" title="">Tab 3</a></li>
</ul>
<div id="tabs_container">
<div id="tabs-1">
<p>Proin elit arcu</p>
</div>
<div id="tabs-2">
<p>Morbi tincidunt</p>
</div>
<div id="tabs-3">
<p>Mauris eleifend est et turpis</p>
</div>
</div>
</div>
<div id="tabs4">
<ul>
<li><a href="#tabs-1" title="">Tab 1</a></li>
<li><a href="#tabs-2" title="">Tab 2</a></li>
<li><a href="#tabs-3" title="">Tab 3</a></li>
</ul>
<div id="tabs_container">
<div id="tabs-1">
<p>Proin elit</p>
</div>
<div id="tabs-2">
<p>Morbi tincidunt</p>
</div>
<div id="tabs-3">
<p>Mauris eleifend est et turpis.
</p>
</div>
</div>
</div>
</div>
<script>
$(function(){
$('#tabs').tabulous({ effect: 'scale' });
$('#tabs2').tabulous({ effect: 'left' });
$('#tabs3').tabulous({ effect: 'up' });
$('#tabs4').tabulous({ effect: 'flip' });
});
</script>
</body></html>
|
пост 6 tabs модернизация tabulous -- изменены названия некоторых классов и параметров и переписан с сохранением прежней функциональности сам плагин ... лучше ничего не брать из старого чтобы не запутатся.
|
Супер! спасибо
|
А можно как-нибудь сделать $(window).resize в данном скрипте? На маленьких разрешениях экрана существует проблема с тем, что часть текста в блоках скрывается при первой загрузке страницы... при нажатии на вкладки все становится нормально.
|
Ilya_Ru,
может проблема в вашем css? делайте макет, что можно было увидеть. |
Отличия Вашего скрипта в 6 посте от моего только вот в этих строках:
#wrapper {
width: 100%;
margin: 0 auto;
margin-top: 100px;
}
#tabs,#tabs2,#tabs3,#tabs4,#tabs5 {
width: 100%;
margin: 0 auto;
margin-bottom: 40px;
}
и в наличии большого количества текста во вкладках. Откроем html страницу в браузере на весь экран, затем сделаем окно браузера в полэкрана, и наблюдаем, что часть текста уходит за пределы блока :(помогите, пожалуйста :( |
tabulous resize
Ilya_Ru,
(function($) {
$.fn.tabulous = function(options) {
var settings = $.extend({
effect: "scale"
}, options);
return this.each(function() {
var parent = $(this),
ul = $(">ul", parent),
links = $(">li a", ul),
block = $("> div", parent),
divs = $("> div", block),
hide = "hide" + settings.effect,
show = "show" + settings.effect;
ul.append('<span class="tabulousclear"></span>');
divs.css({
"position": "absolute",
"top": "40px"
}).addClass("make_transist");
block.addClass("transition");
links.each(function(indx, a) {
var a = $(a);
a.on("click", function(event) {
event.preventDefault();
links.not(a.addClass("tabulous_active")).removeClass("tabulous_active");
var div = divs.eq(indx);
divs.removeClass(show).not(div.addClass(show)).addClass(hide);
block.height(div.height())
})
}).eq(0).click();
$(window).resize(function() {
block.height(divs.filter("." + show).height())
})
})
}
})(jQuery);
|
Отлично, работает! :)
И еще вопрос, когда в коде ниже прописываешь "width": "100%" то некоторые браузеры вытягивают нижнюю границу.
divs.css({
"position": "absolute",
"top": "10px",
"width": "100%"
})
Можно как-нибудь это побороть? :) Хочу разместить по центру блока текст |
Ilya_Ru,
не понимаю зачем "width": "100%" и весь текст ниже |
Наверно я просто не правильно выразился :)
Если во вкладку вписать 1-2 слова и попытаться сделать их выравнивание по середине строки - текст будет все равно выравнен по левому краю. Приведу пример: ... <div id="tabs-1"> <p style="text-align:center">привет,<br> мир!</p> </div> ... - в этом случае как раз идёт странное выравнивание. Оно наверно связано с position:absolute Если же в скрипт прописать "wight":"100%", то в коде страницы, само собой, увидем это: ... <div class="класс_скрипта" style="position:absolute; top:40px; wight:100%" id="tabs-1"> <p style="text-align:center">привет,<br> мир!</p> </div> ... - данный вариант выравнивает текст по правильному, по центру, но, некоторые браузеры отображают большой отступ до нижней границы блока вкладки (скринсшот) http://hostingkartinok.com/show-imag...3fae0af279d193 Может быть Вы знаете как это победить? PS: за ошибки прошу прощения. Пишу с телефона. |
Ilya_Ru,
divs.css({
"position": "absolute",
"top": "10px", "right": 0, "left": 0, "text-align": "center", "margin": "0 auto"
}).addClass("make_transist");
|
Ilya_Ru,
правильнее в css добавить
.make_transist { right: 0; left: 0; text-align: center; margin: 0 auto; position: absolute;top:10px; }
а в скрипте оставить только
divs.addClass("make_transist");
|
рони,
Огромное спасибо :) Вы просто волшебник! :) |
рони,
Еще раз побеспокою. Если прописать .make_transist { right: 0; left: 0; text-align: center; margin: 0 auto; position: absolute;top:10px; }, то возвращается старая проблема со ссылками. А точнее ссылка становится не кликабельной во многих браузерах (Яндекс браузер, Мозилла, другие не проверял). Будто бы не ссылка вовсе, а обычный текст. И у меня почему-то возникает проблема с выравниванием вкладок, когда в одной из них текста много... Пытаюсь сделать, чтобы они все были одной высоты с выравниванием по центру, но, увы, что-то идет не так. Оговорюсь сразу, верстку пытаюсь сделать адаптивной. Отправляю все, что причастно ко вкладкам, в том числе кусочки своего css, где есть какое-либо отношение ко вкладкам. Может в чем-то там дело.
<!DOCTYPE html>
<html lang="en-US"><head>
<link rel="stylesheet" href="http://php-ilyaru.rhcloud.com/moysite/style-cleaned.css" media="screen">
<link rel="stylesheet" href="http://php-ilyaru.rhcloud.com/moysite/style.responsive-cleaned.css" media="all">
<link href='http://php-ilyaru.rhcloud.com/moysite/tabulous.css' rel='stylesheet' type='text/css'>
<script src="http://php-ilyaru.rhcloud.com/moysite/jquery.js"></script>
<script src="http://php-ilyaru.rhcloud.com/moysite/script.responsive.js"></script>
<script type="text/javascript">
(function($) {
$.fn.tabulous = function(options) {
var settings = $.extend({
effect: "scale"
}, options);
return this.each(function() {
var parent = $(this),
ul = $(">ul", parent),
links = $(">li a", ul),
block = $("> div", parent),
divs = $("> div", block),
hide = "hide" + settings.effect,
show = "show" + settings.effect;
ul.append('<span class="tabulousclear"></span>');
divs.css({
"position": "absolute",
"top": "10px",
"left":0,
"right":0
}).addClass("make_transist");
block.addClass("transition");
links.each(function(indx, a) {
var a = $(a);
a.on("click", function(event) {
event.preventDefault();
links.not(a.addClass("tabulous_active")).removeClass("tabulous_active");
var div = divs.eq(indx);
divs.removeClass(show).not(div.addClass(show)).addClass(hide);
block.height(div.height())
})
}).eq(0).click();
$(window).resize(function() {
block.height(divs.filter("." + show).height())
})
})
}
})(jQuery);</script>
<style>
@media (max-width: 520px) and (min-width: 200px) {
.art-content .art-postcontent-0 .layout-item-old-0 {
padding-right: 3px;
padding-left: 3px;
}
.art-post {
padding: 3px;
}
.art-footer {
padding: 10px 0px 0px 0px;
}
}
</style></head>
<body>
<div id="art-main">
<div>
<div class="art-layout-wrapper">
<div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell art-content">
<div id="wrapper">
<div id="tabs3">
<ul id="tabs_tabs">
<li><a href="#tabs-1" title="">текст, которому не хватает одной строки</a></li>
<li><a href="#tabs-2" title="">простой текст</a></li>
<li><a href="#tabs-3" title="">еще один простой текст</a></li>
<li><a href="#tabs-4" title="">заключительный текст</a></li>
</ul>
<div id="tabs_container">
<div id="tabs-1">
<p style="text-align:center">
здесь просто какой-то текст <a href="#" >ссылочка</a>.<br>
</p>
</div>
<div id="tabs-2">
<p>
текст по правому краю<br>
простой.
</p>
</div>
<div id="tabs-3">
<p>
тоже простой текст<br>
</p>
</div>
<div id="tabs-4">
<p>
заключительный текст<br>
для третьей вкладки</p>
</div></div></div></div></div></div></div></div></div>
<script>
$(function(){
$('#tabs').tabulous({ effect: 'scale' });
$('#tabs2').tabulous({ effect: 'left' });
$('#tabs3').tabulous({ effect: 'up' });
$('#tabs4').tabulous({ effect: 'flip' });
});
</script>
</body>
</html>
PS: надеюсь, ничего страшного, что ссылки на css и js дал со своего хостинга... |
Цитата:
Цитата:
|
Цитата:
Цитата:
Расстояние появляется от вкладок до блока... |
Ilya_Ru,
.showup,.showscale,.showleft,.showflip {
z-index: 10;
}
|
Цитата:
и добавьте run в пост №19 [HTML run][/HTML] |
Огромное человеческое спасибо! :) Вы как всегда очень сильно помогли :)
Вопрос с кликабельностью ссылки полностью решен :) Высоту li блоков смог выравнить при помощи скрипта, найденного в интернете:
function setEqualHeight(columns)
{
var tallestcolumn = 0;
columns.each(
function()
{
currentHeight = $(this).height();
if(currentHeight > tallestcolumn)
{
tallestcolumn = currentHeight;
}
}
);
columns.height(tallestcolumn);
}
$(document).ready(function() {
setEqualHeight($(".height > li > a"));
});
Применил к: <ul class="height"> ... </ul> Решение достаточно топорное. Но если более лучшее не будет найдено - придется оставить так :) Цитата:
|
Ilya_Ru,
встроил в плагин, использовать Цитата:
(function($) {
function setEqualHeight(columns) {
var tallestcolumn = 0;
columns.each(function() {
currentHeight = $(this).css({
height: ""
}).height();
if (currentHeight > tallestcolumn) tallestcolumn = currentHeight
});
columns.height(tallestcolumn)
}
$.fn.tabulous = function(options) {
var settings = $.extend({
effect: "scale"
}, options);
return this.each(function() {
var parent = $(this),
ul = $(">ul", parent),
links = $(">li a", ul),
block = $("> div", parent),
divs = $("> div", block),
hide = "hide" + settings.effect,
show = "show" + settings.effect;
ul.append('<span class="tabulousclear"></span>');
divs.css({
"position": "absolute",
"top": "10px",
"left": 0,
"right": 0
}).addClass("make_transist");
block.addClass("transition");
links.each(function(indx, a) {
var a = $(a);
a.on("click", function(event) {
event.preventDefault();
links.not(a.addClass("tabulous_active")).removeClass("tabulous_active");
var div = divs.eq(indx);
divs.removeClass(show).not(div.addClass(show)).addClass(hide);
block.height(div.height())
})
}).eq(0).click();
setEqualHeight(links);
$(window).resize(function() {
block.height(divs.filter("." + show).height());
setEqualHeight(links)
})
})
}
})(jQuery);
|
рони,
Появился новый (старый) глюк: Если открыть html страницу в полноэкранном режиме, а затем перейти в полэкрана - текст съедается как во вкладках, так и в div к ним причастным :( Если в ручную изменить размер окна - вкладки подстраиваются под текст UPD: вроде решил проблему банальной задержкой выполнения скрипта setTimeout(function() { ...скрипт... }, 1000); |
все равно иногда проскальзывает данный глюк... особенно заметно на мобильном при поворотах устройства
|
Ilya_Ru,
танцы с бубнами, поменять строки 45 и 44, или исключить строку 45. |
так и есть проблема :(
|
Проблема так и остается актуальной. Пока не дернишь окошко - вкладки не подстроются. Может в моем случае происходит какой-то конфликт со style.responsive.js? Если да, то быть может подскажите, как его исправить? http://php-ilyaru.rhcloud.com/moysite/moy.html
|
Ilya_Ru,
пробуйте
(function($) {
function setEqualHeight(columns) {
var tallestcolumn = 0;
columns.each(function() {
currentHeight = $(this).css({
height: ""
}).height();
if (currentHeight > tallestcolumn) tallestcolumn = currentHeight
});
columns.height(tallestcolumn)
}
$.fn.tabulous = function(options) {
var settings = $.extend({
effect: "scale"
}, options);
return this.each(function() {
var parent = $(this),
ul = $(">ul", parent),
links = $(">li a", ul),
block = $("> div", parent),
divs = $("> div", block),
hide = "hide" + settings.effect,
show = "show" + settings.effect;
ul.append('<span class="tabulousclear"></span>');
divs.css({
"position": "absolute",
"top": "10px",
"left": 0,
"right": 0
}).addClass("make_transist");
block.addClass("transition");
links.each(function(indx, a) {
var a = $(a);
a.on("click", function(event) {
event.preventDefault();
links.not(a.addClass("tabulous_active")).removeClass("tabulous_active");
var div = divs.eq(indx);
divs.removeClass(show).not(div.addClass(show)).addClass(hide);
//block.height(div.height())
timerHeight();
})
}).eq(0).click();
function timerHeight()
{
window.setTimeout(function() {
block.height(divs.filter("." + show).height())
},300)
}
setEqualHeight(links);
$(window).resize(function() {
timerHeight()
// block.height(divs.filter("." + show)[0].scrollHeight);
setEqualHeight(links)
})
})
}
})(jQuery);
|
рони,
Почти хорошо))). Высота самих вкладок только не адаптируется, пока окно не дернешь. Может в скрипте где ещё задержку надо сделать? ))) |
Скринсшот глюка: http://hostingkartinok.com/show-imag...3e2463bc40c4f7
|
Ilya_Ru,
ссылка с новым вариантом где? |
Прошу прощение, что не ссылкой, я не с компьютера(((. Заменил только текст во вкладке. Глюк ловлю только тогда, когда текст во вкладке в полноэкранном режиме умещается в одну строку, а при просмотре в пол экрана - нет.
<!DOCTYPE html>
<html lang="en-US" class="responsive responsive-tablet"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width">
<link rel="stylesheet" href="http://php-ilyaru.rhcloud.com/moysite/style-cleaned.css" media="screen">
<link rel="stylesheet" href="http://php-ilyaru.rhcloud.com/moysite/style.responsive-cleaned.css" media="all">
<link href="http://php-ilyaru.rhcloud.com/moysite/tabulous.css" rel="stylesheet" type="text/css">
<script src="http://php-ilyaru.rhcloud.com/moysite/jquery.js"></script>
<script src="http://php-ilyaru.rhcloud.com/moysite/script.responsive.js"></script>
<script type="text/javascript">
(function($) {
function setEqualHeight(columns) {
var tallestcolumn = 0;
columns.each(function() {
currentHeight = $(this).css({
height: ""
}).height();
if (currentHeight > tallestcolumn) tallestcolumn = currentHeight
});
columns.height(tallestcolumn)
}
$.fn.tabulous = function(options) {
var settings = $.extend({
effect: "scale"
}, options);
return this.each(function() {
var parent = $(this),
ul = $(">ul", parent),
links = $(">li a", ul),
block = $("> div", parent),
divs = $("> div", block),
hide = "hide" + settings.effect,
show = "show" + settings.effect;
ul.append('<span class="tabulousclear"></span>');
divs.css({
"position": "absolute",
"top": "10px",
"left": 0,
"right": 0
}).addClass("make_transist");
block.addClass("transition");
links.each(function(indx, a) {
var a = $(a);
a.on("click", function(event) {
event.preventDefault();
links.not(a.addClass("tabulous_active")).removeClass("tabulous_active");
var div = divs.eq(indx);
divs.removeClass(show).not(div.addClass(show)).addClass(hide);
// block.height(div.height())
timerHeight();
})
}).eq(0).click();
function timerHeight()
{
window.setTimeout(function() {
block.height(divs.filter("." + show).height())
},300)
}
setEqualHeight(links);
$(window).resize(function() {
timerHeight()
// block.height(divs.filter("." + show)[0].scrollHeight);
setEqualHeight(links)
})
})
}
})(jQuery);</script>
<style>
ul {
width:100%;
}
li {
//margin:0 10px 20px 5px;
//padding:10px;
width:160px;
display:inline-block;
vertical-align:top;
*display:inline;
*zoom:1;
}
.licent {
width:100%;
//height:121px;
text-align:center;
display:table;
position:relative;
}
.licent span {
display:table;
vertical-align:middle;
text-align: center;
width: 100%;
}
.licent a {
display:table-cell;
vertical-align:middle;
text-align: center;
// width: 100%;
}
</style>
</head>
<body>
<div id="art-main">
<div>
<div class="art-layout-wrapper">
<div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell art-content">
<div id="wrapper">
<div id="tabs3">
<ul id="tabs_tabs">
<li><div class="licent"><span><a href="http://php-ilyaru.rhcloud.com/moysite/moy.html#tabs-1" title="" class="tabulous_active" style="height: 36px;"><span style="display: table;">текст в несколько строчек</span></a></span></div></li>
<li><div class="licent"><span><a href="http://php-ilyaru.rhcloud.com/moysite/moy.html#tabs-1" title="" style="height: 36px;"><span style="display: table;">простой текст</span></a></span></div></li>
<li><div class="licent"><span><a href="http://php-ilyaru.rhcloud.com/moysite/moy.html#tabs-1" title="" style="height: 36px;"><span style="display: table;">еще один простой текст</span></a></span></div></li>
<li><div class="licent"><span><a href="http://php-ilyaru.rhcloud.com/moysite/moy.html#tabs-1" title="" style="height: 36px;"><span style="display: table;">заключительный текст</span></a></span></div></li>
<span class="tabulousclear"></span></ul>
<div id="tabs_container" class="transition" style="height: 396px;">
<div id="tabs-1" class="make_transist showup" style="position: absolute; top: 10px; left: 0px; right: 0px;">
<p style="text-align:center">
здесь просто какой-то адски длинный текст, например вот этот: Много десятилетий люди не знали, что именно курят так называемые профессиональные историки в своих кабинетах, что обсуждают и на чем основываются. И потому - принимали Историю за настоящую науку, а историков - за ученых.
Катастрофа для Истории случилась всего полтора десятка лет назад, с развитием информационной революции, когда миллионы образованных людей смогли не только почитать все то, что историки выдавали за "научные данные", но и сравнить подобные "трактаты" с первоисточниками или своими знаниями в различных дисциплинах. И вот тут то и обнаружилось, что король-то голый!!!Что нет такой науки, как История, а есть дурацкая ахинея, которую некому и нечем защищать. И чем дальше — тем чаще тут и там случаются беседы, подобные вот таким:
Профессиональный историк: Рассказ о человеческой цивилизации я начну с самого начала, с появления людей в Европе. Когда-то, давным-давно сюда, в Европу переселились негры из Африки и основали здесь первые поселения, что подтверждается находками черепов негритянского типа...
Образованный человек: Постойте-постойте!!! Какие еще черепа?! На тысячу двести раскопанных у нас палеостоянок нашелся только 1 (один) череп, в котором удалось рассмотреть признаки негроидности! Да и тот оказался носителем славянской гаплогруппы «I» — той самой, которую по сей день носит каждый четвертый русский человек! Мы же не негры?
Профессиональный историк: Генетика — это лженаука! Генетики ничего не понимают в истории. Вы не должны верить генетикам, вы должны верить только нам, носителям высшей неоспоримой истины! К тому же с тех пор население русской равнины неоднократно менялось полностью. Народы приходили, уходили, снова приходили, исчезали, опять заселялись...
Образованный человек: Подождите, это с какой стати? Генетические исследования доказали, что праславянская гаплогруппа «I» зародилась именно здесь, в Европе, 50 тысяч лет назад и никогда никуда не исчезала! Мы и сегодня здесь живем. Каждый четвертый русский — это потомок сунгирцев, костенковцев, коренной житель в тысячах поколений. Плюс есть еще часть народов, подселившихся сюда в последние 3-4 тысячи лет, но никак праславян не вытеснивших и не заменивших.
Профессиональный историк: Да говорят же вам, что генетика — это лженаука! Славяне вообще родились всего тысячу лет назад. А до этого на Русской равнине жили монголоиды. Берем культуру ямочно-гребенчатой керамики эпохи неолита (кон. 4 - сер. 2-го тыс. до н. э.). Это почти вся Русская равнина. Поселения этой культуры всегда сопровождаются захоронениями представителей уральской расы, в фенотипе которой обнаруживают монголоидные элементы, понятно?
Образованный человек: Постойте-постойте!!! Какие еще захоронения?! В 56 найденных погребениях только 2 (два) черепа из погребений 19 и 20 (Сахтыш II) обозваны носящими «следы смягченной монголоидности». Да и по тем антропологи дали заключения, что черепа однозначно принадлежат европеоидам, с отклонениями в пределах нормы.
Профессиональный историк: Антропология — это лженаука! Антропологи ничего не смыслят <a href="http://php-ilyaru.rhcloud.com/moysite/moy.html#">ссылочка</a>.<br>
</p>
</div>
<div id="tabs-2" class="make_transist hideup" style="position: absolute; top: 10px; left: 0px; right: 0px;">
<p>
текст по правому краю<br>
простой.
</p>
</div>
<div id="tabs-3" class="make_transist hideup" style="position: absolute; top: 10px; left: 0px; right: 0px;">
<p>
тоже простой текст<br>
</p>
</div>
<div id="tabs-4" class="make_transist hideup" style="position: absolute; top: 10px; left: 0px; right: 0px;">
<p>
заключительный текст<br>
для третьей вкладки
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$(function(){
$('#tabs').tabulous({ effect: 'scale' });
$('#tabs2').tabulous({ effect: 'left' });
$('#tabs3').tabulous({ effect: 'up' });
$('#tabs4').tabulous({ effect: 'flip' });
});
</script>
</div><div id="art-resp"><div id="art-resp-m"></div><div id="art-resp-t"></div></div></body></html>
|
Ilya_Ru,
(function($) {
function setEqualHeight(columns) {
var tallestcolumn = 0;
columns.each(function() {
currentHeight = $(this).css({
height: ""
}).height();
if (currentHeight > tallestcolumn) tallestcolumn = currentHeight
});
columns.height(tallestcolumn)
}
$.fn.tabulous = function(options) {
var settings = $.extend({
effect: "scale"
}, options);
return this.each(function() {
var parent = $(this),
ul = $(">ul", parent),
links = $(">li a", ul),
block = $("> div", parent),
divs = $("> div", block),
hide = "hide" + settings.effect,
show = "show" + settings.effect;
ul.append('<span class="tabulousclear"></span>');
divs.css({
"position": "absolute",
"top": "10px",
"left": 0,
"right": 0
}).addClass("make_transist");
block.addClass("transition");
links.each(function(indx, a) {
var a = $(a);
a.on("click", function(event) {
event.preventDefault();
links.not(a.addClass("tabulous_active")).removeClass("tabulous_active");
var div = divs.eq(indx);
divs.removeClass(show).not(div.addClass(show)).addClass(hide);
// block.height(div.height())
timerHeight();
})
}).eq(0).click();
function timerHeight()
{
window.setTimeout(function() { setEqualHeight(links)
block.height(divs.filter("." + show).height());
},300)
}
//setEqualHeight(links);
$(window).resize(function() {
timerHeight();
// block.height(divs.filter("." + show)[0].scrollHeight);
})
})
}
})(jQuery);
|
рони,Огромнейшее спасибо!))) Больших успехов тебе и удачи во всем! Спасибо за потраченное время на написание всего этого чуда.))) Скрипт идеален!))). Надеюсь, он пригодится ещё кому-нибудь.)))
|
Ilya_Ru,
:victory: |
| Часовой пояс GMT +3, время: 14:26. |