Как сделать предметный слайд слайда с помощью jQuery? [Дубликат]

Сначала я пытаюсь заставить его работать только с изображениями.

Я очень новичок в Unity и не очень хорош с C #. Я могу получить все источники медиа-файлов (изображений) в массив, но затем мне нужно преобразовать их в текстуру и разместить на RawImage -компонент. Я застрял в этой части.

blockquote>

Вы ищете функцию Texture2D.LoadImage . Он преобразует байты изображения в Texture2D, тогда вы можете назначить Texture2D для RawImage.

Вы должны задать новый вопрос о том, как сделать это с помощью видео. Это намного сложнее.

public RawImage rawImage;
Texture2D[] textures = null;

//Search for files
DirectoryInfo dir = new DirectoryInfo(@"C:\medias");
string[] extensions = new[] { ".jpg", ".JPG", ".jpeg", ".JPEG", ".png", ".PNG", ".ogg", ".OGG" };
FileInfo[] info = dir.GetFiles().Where(f => extensions.Contains(f.Extension.ToLower())).ToArray();

//Init Array
textures = new Texture2D[info.Length];


for (int i = 0; i < info.Length; i++)
{
    MemoryStream dest = new MemoryStream();

    //Read from each Image File
    using (Stream source = info[i].OpenRead())
    {
        byte[] buffer = new byte[2048];
        int bytesRead;
        while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)
        {
            dest.Write(buffer, 0, bytesRead);
        }
    }

    byte[] imageBytes = dest.ToArray();

    //Create new Texture2D
    Texture2D tempTexture = new Texture2D(2, 2);

    //Load the Image Byte to Texture2D
    tempTexture.LoadImage(imageBytes);

    //Put the Texture2D to the Array
    textures[i] = tempTexture;
}

//Load to Rawmage?
rawImage.texture = textures[0];
45
задан ThomasCS 23 January 2013 в 01:42
поделиться

7 ответов

Вы можете использовать метод animate:

$('#element').animate({width: 'toggle'});

http://jsfiddle.net/7ZBQa/

94
ответ дан undefined 21 August 2018 в 07:57
поделиться
  • 1
    Jeah это то, что я хотел, спасибо за ответ. Я по-прежнему не понимаю выражение {width: 'toggle'}. Вы задали ширину в css, но не отображались. Итак, jquery затем отображает элемент и оживляет заданную ширину? – ThomasCS 23 January 2013 в 02:05
  • 2
    @ThomasCS Эти свойства не требуются, я просто добавил их для демонстрации и да, jQuery оживляет ширину, если элемент скрыт, jQuery оживляет ширину и показывает ее и наоборот. – undefined 23 January 2013 в 02:09
  • 3
    Но я все равно должен давать каждой кнопке другой класс или идентификатор, потому что иначе одна кнопка будет переключать другую? – ThomasCS 23 January 2013 в 02:12
  • 4
    @ThomasCS Ну, это связано с селектором и логикой вашего кода, если вы хотите анимировать несколько элементов, вы можете добавить к ним атрибуты класса. – undefined 23 January 2013 в 02:15
  • 5
    ai, только что узнал, что его не работает на 100%. Все ссылки загружаются в один и тот же iframe, поэтому я анимация iframe. И они оживляют друг друга iframe ... – ThomasCS 23 January 2013 в 02:23

Если вам нужно, чтобы он был непрерывным, вы можете настроить setTimeinterval следующим образом

<?php
setInterval(function (){
$('div').animate({width: 'toggle'});
},200);
?>
0
ответ дан kimoduor 21 August 2018 в 07:57
поделиться

Создал скрипку http://jsfiddle.net/powtac/RqWk2/

$("div").animate({width: 'toggle'});
4
ответ дан powtac 21 August 2018 в 07:57
поделиться
  • 1
    ах, но я хочу, чтобы это было наоборот, что он появится, когда я нажму что-нибудь. – ThomasCS 23 January 2013 в 02:02
  • 2
    Вместо width: 'toggle' вы используете холод width: '200px' – powtac 23 January 2013 в 02:04
  • 3
    но тогда он больше не будет переключаться? – ThomasCS 23 January 2013 в 02:05
  • 4
    нет. то он будет прокручиваться до ширины 200 px. – powtac 23 January 2013 в 02:08
  • 5
    Я попытался использовать «200px», но он не отображает div, даже если я установил ширину стиля в «0px», теперь он всегда будет отображать div и просто мигать каждый раз, когда я нажимаю кнопки с событиями onclick. – Myzifer 13 June 2013 в 09:48

Я хотел, чтобы высота переключалась, поэтому я использовал (я использовал в своем проекте)

function show_hide(target){
 var x = document.querySelectorAll("." +target);
 var y = $( x ).next()
 $(y).animate({height: 'toggle'});
}
-2
ответ дан safeer008 21 August 2018 в 07:57
поделиться
  • 1
    Почему бы не использовать .slideToggle (), функцию, заданную исходным вопросом, для вертикальной замены? – BJury 9 June 2014 в 13:15

Если вы хотите переключиться между двумя ширинами, вы можете сделать что-то вроде ниже:

$('#A').click(function(){
if($(this).width() > 20){
$(this).animate({width: '20px'})
}
else{
$(this).animate({width: '50%'})
}
});
#A{
  float:left;
  width:50%;
  height:300px;
  background:red;
}
#B{
  min-height:300px;
  background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="A">
</div>
<div id="B">
<span>Some stuff</span>
</div>

0
ответ дан sjsam 21 August 2018 в 07:57
поделиться

Я пробовал это и отлично работал!

html-код:

<div class="flip-container" ontouchstart="this.classList.toggle('hover');">
    <div class="flipper">
        <div class="front">
            <!-- front content -->
        </div>
        <div class="back">
            <!-- back content -->
        </div>
    </div>
</div>

CSS / * перевернуть панель при зависании * / .flip-container: hover .flipper , .flip-container.hover .flipper {transform: rotateY (180deg); }

.flip-container, .front, .back {
    width: 320px;
    height: 480px;
}

/* flip speed goes here */
.flipper {
    transition: 0.6s;
    transform-style: preserve-3d;

    position: relative;
}

/* hide back of pane during swap */
.front, .back {
    backface-visibility: hidden;

    position: absolute;
    top: 0;
    left: 0;
}

/* front pane, placed above back */
.front {
    z-index: 2;
    /* for firefox 31 */
    transform: rotateY(0deg);
}

/* back, initially hidden pane */
.back {
    transform: rotateY(180deg);
}

Я использую это внутри бутстрапа col-sm- * и отлично работает

 <div class="col-sm-4 flip-container" ontouchstart="this.classList.toggle('hover');">
                    <div class="content-box flipper">
                        <div class="content-box-front">
                            <span class="glyphicon glyphicon-envelope content-box-icon"></span>
                            <h4>Share your emotions</h4>
                        </div>
                        <div class="content-box-back">
                            <p>Share emotions with friends, family and teammates.</p>
                            <button>Read more</button>
                        </div>
                    </div>
                </div>

css

.content-box
{
    position: relative;
    text-align: center;
    height: 105px;
    width: 100%;
}
.content-box-icon
{
    font-size: 30px;
    width: 60px;
    height: 60px;
    line-height: 60px;
    border-radius: 50%;
    text-align: center;
    display: block;
    margin: 5px auto 15px auto;
    color: #fff;
    float: none; 
    background:#25acfd                     
}
.content-box-front
{
    z-index: 2;
    /* for firefox 31 */
    transform: rotateY(0deg);
    backface-visibility: hidden;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 105px;
}
.content-box-back
{
    transform: rotateY(180deg);
    backface-visibility: hidden;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 105px;
}
/* entire container, keeps perspective */
    /* flip the pane when hovered */
    .flip-container:hover .flipper, .flip-container.hover .flipper {
        transform: rotateY(180deg);
    }

/* flip speed goes here */
.flipper {
    transition: 0.6s;
    transform-style: preserve-3d;
    position: relative;
}
0
ответ дан user3683003 21 August 2018 в 07:57
поделиться

Существует другой способ использования jquery ui. См. api jquery ui , но он может быть не всегда полезным, поскольку он имеет свои сбои

Здесь jsfiddle , чтобы увидеть сбой, он не перемещает все элементы отдыха плавно. Я поставил здесь код, но его следует использовать с jQuery UI 1.10.3.

js

$( document ).click(function() {
  $( "#toggle" ).toggle('slide');
});

css

.t {
    width: 100px;
    height: 100px;
    background: #ccc;
    display: inline-block;
    float: left;
  }

html

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<p>Click anywhere to toggle the box.</p>
<div id="toggle" class='t'>1</div>
<div id="" class='t'>2</div>
<div class='t'>3</div>
1
ответ дан Yevgeniy Afanasyev 21 August 2018 в 07:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: