Карусель изображений пользовательского интерфейса jQuery с возможностью перетаскивания изображений

#jquery #jquery-ui #jcarousel #jquery-ui-draggable #jcarousellite

#jquery #jquery-пользовательский интерфейс #jcarousel #jquery-пользовательский интерфейс-перетаскиваемый #jcarousellite

Вопрос:

Мне нужно создать карусель изображений jQuery примерно с 30 изображениями (отображая по 5 одновременно), которая также позволит пользователю перемещать каждое изображение (предположительно, реализованное как перетаскиваемое) и помещать это изображение в droppable div. Я экспериментировал с jCarousel, и я не думаю, что это сработает в моей ситуации. Кто-нибудь что-нибудь знает?

Ответ №1:

Вам пришлось бы импортировать jquery, jqueryui, jcarousel и любой применимый css, связанный с jcarousel и jquery ui. В настоящее время у меня возникла проблема с удалением заполнителя в карусели после перетаскивания изображения. Остается белое поле. Надеюсь, это все же поможет. Если я найду полное решение, я дам вам знать.

 <script type="text/javascript">


    jQuery(document).ready(function() {
        $('#mycarousel').jcarousel();

        var $gallery = $( "#mycarousel" ),
            $trash = $( "#dropzone" );

        $(".draggable").draggable({
            snap: '#dropzone',
            snapMode: 'inner',
            //snapTolerance: 50,
            revert: 'invalid',
            helper: 'clone',
            appendTo: "body",
            cursor: 'move'
        });

        $("#dropzone").droppable({
            accept: '.draggable',
            activeClass: "custom-state-active",
            drop: function(ev, ui) {
                //$item.appendTo("#dropzone");
                deleteImage( ui.draggable );


            }
        });

        function deleteImage( $item ) {
            $item.css('display', 'none');
            $item.fadeOut(function() {
                var $list = $( "ul", $trash ).length ?
                $( "ul", $trash ) :
                $( "<ul class='gallery ui-helper-reset'/>" ).appendTo( $trash );


                $item.appendTo( $list ).fadeIn();

            });
        }
    });

    </script>



      <div id="dropzone" class="ui-widget-content ui-state-default" style="width: 960px; height: 300px; ">
     <h1 style="text-align: center; margin-top: 120px;">Drag Images Here</h1>
    </div>


    <div style="height: 50px; width: 100%; clear: both;"></div>

    <div class="carousel_container">
        <ul id="mycarousel" class="jcarousel-skin-tango">
            <li class="ui-widget-content draggable"> <!-- class="ui-widget-content dropme" -->
                <img src="images/IA_interactive_hugging.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_interactive_kilamanjaro.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_interactive_rhino.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_interactive_statuemonkey.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleA_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleB_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleC_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleD_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleE_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleF_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleG_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleH_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
            <li class="ui-widget-content draggable">
                <img src="images/IA_ThresholdImageSampleI_AJB_080311.jpg" width="200px" height="200px" alt="" />
            </li>
        </ul>
    </div>
  

Комментарии:

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

2. Я не тестировал это, но в $ («#dropzone»).droppable({ все, что вам нужно было бы сделать, это удалить строку deleteImage(ui.draggable);. Обычно вы можете получить идентификатор изображения с помощью jquery, что-то вроде (this).attr(«id»); Центрирование просто кажется проблемой CSS.