Задать размер списка Jquery
Всем доброго времени суток.
Суть вопроса такова. Есть список:
<section>
<nav>
<ul>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
</ul>
</nav>
</section>
Нужно li сделать равной ширине окна браузера, а ul получается равным все li * кол-во li. Скрипт:
slider_size();
function slider_size() {
var container = $("nav");
container.each(function() {
var $this = $(this),
win = $this.closest("section"),
winWidth = win.width(),
list = $this.find("ul"),
item = list.find("li"),
itemLength = item.length;
item.width(winWidth);
list.width(winWidth * item.length);
});
}
Собственно все работает, только li присваивается значение ширины окна - размер скроллбара!!! Как это исправить, подскажите???? Заранее благодарю |
Цитата:
|
Все верно, каждый li должен быть равным ширине окна, через css им присвоен float:left соответственно осталось задать ширину ul, он равна li.width()*li.length.
к ширине li почему то добавляется ширина скролл бара |
slider установка ширины ul
Роман Андреевич,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
html *{padding:0;margin:0}
li{border:3px solid #0000FF;float:left;box-sizing:border-box; height: 120px;}
ul{list-style:none}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
function slider_size() {
var ul = $("ul"),
widthAll = 0;
$("li", ul).each(function(indx, element) {
this.style.width = document.documentElement.clientWidth + "px";
widthAll += this.offsetWidth
});
ul.width(widthAll)
}
$(window).resize(slider_size).trigger("resize")
});
</script>
</head>
<body>
<section>
<nav>
<ul>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
</ul>
</nav>
</section>
</body>
</html>
|
рони,
Вопрос в том, что когда я задаю ширину li равной ширине окна, например ширина окна 1366px, по сути ширина li должна быть равна 1366px, но она равна 1366 - размер ползунка 17px. Во и вопрос, почему так. И код, который вы привели в пример показывает у меня то же самое. Заранее спасибо |
Цитата:
В стандарте элемент списка и так бы ее всю занял.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
* {
margin: 0;
padding: 0;
}
ul {
list-style:none;
}
li {
border:3px solid #0000FF;
box-sizing: border-box;
height: 120px;
}
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<section>
<nav>
<ul>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
<li>
//.....какой то контент
</li>
</ul>
</nav>
</section>
</body>
</html>
|
Это слайдер, li равны ширине окна а ul ширина всех li
|
Вложений: 1
Вот скрин
|
Цитата:
|
))))))))))))))))))))))))))))))
|
| Часовой пояс GMT +3, время: 05:54. |