2013-05-06 4 views
1

Я использую JQuery плагин Cycle2 http://jquery.malsup.com/cycle2/demo/basic.phpJQuery cycle2 получить ширину текущего слайда

мне нужно, чтобы захватить ширину текущего слайда/изображения, а затем использовать, чтобы задать ширину другого элемента.

Каждое изображение может быть разной ширины, и мне нужно, чтобы верхняя часть изображения была соответствующим образом изменена.

<div class="cycle-slideshow"> 
<img src="http://malsup.github.com/images/p1.jpg"> 
<img src="http://malsup.github.com/images/p2.jpg"> 
<img src="http://malsup.github.com/images/p3.jpg"> 
<img src="http://malsup.github.com/images/p4.jpg"> 
</div> 

Как я могу получить ширину текущего/активного слайда?

ответ

2

Вы можете принять намек на то, что этот плагин добавит класс active к текущему активному изображению. Таким образом, вы можете сделать так, чтобы получить нужную ширину:

var imgWidth = $(".cycle-slideshow").find("img.active").width(); 

, то вы можете использовать это значение ширины для установки ширины для другого элемента:

$("other element selector").width(imgWidth); 

Edit

Я предполагаю, что HTML для вашей кнопки next и prev выглядит так:

<div class="center"> 
    <a href="#" id="prev">Prev</a> 
    <a href="#" id="next">Next</a> 
</div> 

Тогда вам просто нужно сделать:

$("#prev, #next").on('click', function() { 
    var imgWidth = $('.cycle-slideshow').find(".cycle-slide-active").width(); 
    $(".topbar").width(imgWidth); 
}); 
+0

Спасибо. Я думал, что это сделает, но ширина «другого элемента» не обновляется, когда я нажимаю следующую стрелку для нового изображения. Думаю, он устанавливает ширину элемента только на основе первого активного слайда? – gteh

+0

@gteh, тогда я предлагаю вам поставить выше код внутри функции, где вы обрабатываете событие click следующей стрелки, чтобы обновить его. – Eli

+0

Считаете ли вы, что можете помочь с этим? Я все еще изучаю jquery. API для цикла2 находится здесь http://www.malsup.com/jquery/cycle2/api/ Предполагаю, что я бы сделал что-то вроде '$ ('. Cycle-slideshow'). On ('cycle-after', function (е, выбирает, по API) { \t \t \t вар imgWidth = $ ($ это) .find ("цикл слайд-активным. ") ширина();. \t \t \t JQuery() ширина (" topbar.". imgWidth); \t \t}) ;, но он не работает – gteh

Смежные вопросы