jQuery 슬라이드 왼쪽 및 표시


111

나는 연장 jQuery이라는 효과 slideRightShow()slideLeftHide()유사하게 그 일을 몇 기능을 slideUp()하고 slideDown()아래와 같이. 그러나 slideLeftShow()slideRightHide().

나는 이런 유형의 것을 제공하는 상당한 라이브러리가 있다는 것을 알고 있지만 (다른 큰 javascript파일 세트를 추가하는 것을 피하고 싶습니다 ), 누구든지 slideLeftShow()또는 구현하는 방법에 대한 간단한 예제를 제공 할 수 slideRightHide()있습니까?

jQuery.fn.extend({
  slideRightShow: function() {
    return this.each(function() {
      jQuery(this).animate({width: 'show'});
    });
  },
  slideLeftHide: function() {
    return this.each(function() {
      jQuery(this).animate({width: 'hide'});
    });
  },
  slideRightHide: function() {
    return this.each(function() {
      ???
    });
  },
  slideLeftShow: function() {
    return this.each(function() {
      ???
    });
  }
});

위의 slideRightShow기능은 왼쪽에서 이미지를 표시하기 시작하고 오른쪽으로 진행합니다. 나는 같은 일을 할 방법을 찾고 있지만 오른쪽에서 시작하여 왼쪽으로 진행합니다 . 감사!

편집하다

jQuery 인터페이스에는 내가 필요로하는 것과 같은 것이 있지만 (기본적으로 "오른쪽으로 슬라이드"및 "왼쪽으로 슬라이드"기능이 필요합니다) jQuery 1.3에서 작동하도록 할 수 없습니다 : http://interface.eyecon.ro/demos /ifx.html . 또한 데모가 깨진 것처럼 보이며 백만 개의 오류를 던지기 전에 한 번만 슬라이드를 수행합니다.


나는 이것이 도움이되기를 바랍니다 내 게시물을 업데이트했습니다
bendewey

답변:


185

이 기능은 jquery ui http://docs.jquery.com/UI/Effects/Slide의 일부로 포함되어 있으며 자신의 이름으로 확장하려면 이것을 사용할 수 있습니다.

jQuery.fn.extend({
  slideRightShow: function() {
    return this.each(function() {
        $(this).show('slide', {direction: 'right'}, 1000);
    });
  },
  slideLeftHide: function() {
    return this.each(function() {
      $(this).hide('slide', {direction: 'left'}, 1000);
    });
  },
  slideRightHide: function() {
    return this.each(function() {
      $(this).hide('slide', {direction: 'right'}, 1000);
    });
  },
  slideLeftShow: function() {
    return this.each(function() {
      $(this).show('slide', {direction: 'left'}, 1000);
    });
  }
});

다음 참조가 필요합니다.

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/jquery.effects.core.js"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/jquery.effects.slide.js"></script>

안녕하세요! 나는 당신이 거기에서 구현 한 것과 반대되는 것을 찾고 있습니다. 기본적으로 요소를 표시하기 위해 위에있는 것을 사용하면 왼쪽 부분이 먼저 나타나고 오른쪽으로 진행됩니다. 나는 오른쪽에서 시작하여 왼쪽으로 진행하도록 노력하고 있습니다.
Wickethewok

1
요소를 오른쪽으로 띄우면 작동합니다. 그렇지 않으면. left 속성에 애니메이션을 적용하고 축소 할 때 요소를 이동할 수 있습니다.
bendewey

1
요소를 "오른쪽"부동으로 변경해도 슬라이드가 반전되지 않았습니다. 도움이되는지 위에 설명했습니다.
Wickethewok

2
정말 고맙습니다! 이것이 jQuery의 효과의 일부라는 것을 몰랐습니다. 내가 할 수 있다면 +2를 주겠다!
Wickethewok


34

패딩과 여백을 잊지 마세요 ...

jQuery.fn.slideLeftHide = function(speed, callback) { 
  this.animate({ 
    width: "hide", 
    paddingLeft: "hide", 
    paddingRight: "hide", 
    marginLeft: "hide", 
    marginRight: "hide" 
  }, speed, callback);
}

jQuery.fn.slideLeftShow = function(speed, callback) { 
  this.animate({ 
    width: "show", 
    paddingLeft: "show", 
    paddingRight: "show", 
    marginLeft: "show", 
    marginRight: "show" 
  }, speed, callback);
}

속도 / 콜백 인수가 추가되면 slideUp()및 에 대한 완전한 드롭 인 대체품입니다 slideDown().


오른쪽 슬라이딩으로 동일한 효과를 내려면 어떻게해야합니까?
Jayant Varshney 2014 년

@JayantVarshney : 블록이 내부 블록과 함께 오른쪽 정렬되어 있는지 확인하십시오. 이 코드는 너비 만 줄입니다. 당신의 CSS는 그것을 처리 할 수 있다면, 당신은 바로 슬라이드해야합니다
vdboor

덕분에 ... 그러나 나는 오른쪽에서 개방적 왼쪽에 .. 모두에게 같은 사업부에 미치는 영향을 원하는 다음 ... 반대의 오른쪽 또는 그 왼쪽 마감
얀트 Varshney

그렇다면 완료 콜백에서 클래스를 전환하는 것은 어떻습니까? :-)
vdboor 2014 년

덕분에,이 기능을 달성하기 위해 CSS3 애니메이션을 사용
얀트 Varshney

9

사용자 고유의 스크립트 파일에이 행을 추가하여 jQuery 라이브러리에 새 기능을 추가 할 수 있으며 fadeSlideRight()fadeSlideLeft().

참고 : 750px 인스턴스를 원하는대로 애니메이션 너비를 변경할 수 있습니다.

$.fn.fadeSlideRight = function(speed,fn) {
    return $(this).animate({
        'opacity' : 1,
        'width' : '750px'
    },speed || 400, function() {
        $.isFunction(fn) && fn.call(this);
    });
}

$.fn.fadeSlideLeft = function(speed,fn) {
    return $(this).animate({
        'opacity' : 0,
        'width' : '0px'
    },speed || 400,function() {
        $.isFunction(fn) && fn.call(this);
    });
}

1
이것은 jQuery UI를 포함하지 않고 정확히 필요한 것입니다. 불투명도와 너비를 매개 변수로 추가했습니다. ... = function(opacity, speed, width, fn) {...}
Dylan Valade 2014

1
이것은 지금까지 최고의 솔루션입니다. 더 많은 라이브러리를 추가 할 필요가 없습니다. 감사합니다.
hosseio

5

속도를 변경하고 콜백을 포함하려면 다음과 같이 추가하면됩니다.

        jQuery.fn.extend({
            slideRightShow: function(speed,callback) {
                return this.each(function() {
                    $(this).show('slide', {direction: 'right'}, speed, callback);
                });
            },
            slideLeftHide: function(speed,callback) {
                return this.each(function() {
                    $(this).hide('slide', {direction: 'left'}, speed, callback);
                });
            },
            slideRightHide: function(speed,callback) {
                return this.each(function() {  
                    $(this).hide('slide', {direction: 'right'}, speed, callback);
                });
            },
            slideLeftShow: function(speed,callback) {
                return this.each(function() {
                    $(this).show('slide', {direction: 'left'}, speed, callback);
                });
            }
        });
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.