회전 목마 모듈 : YUI 3 갤러리에서

년 | 11시 53분에서 2010년 12월 13일는 Gopal Venkatesan와 파비안 프랭크 의해 오전 개발 , YUI 3 갤러리 | 16 코멘트

소개 저자 : Gopal Venkatesan는 ( @ g13n 그 프론트 엔드 엔지니어링 커뮤니티의 deans 중 하나입니다) 방갈로에서 야후 일하고, Gopal가에서 리드 엔지니어되었습니다 YUI 2 회전 목마의 2.6.0 릴리스 이후 프로젝트. 그는 또한 새로운의 저자이다 YUI 3 갤러리 회전 목마 프로그램 모듈. 파비안 프랭크 독일과 베이징의 야후에 대한 작품에서 교신, 그는 글래스고 대학에서 연구원으로 그의 석사를 마친 이후 파비안은 야후와 함께 왔습니다.

회전 목마는 무엇입니까?

회전식 컨트롤은 오버로드된 페이지 영역에 수직 또는 수평으로 arrayed 같은 객체의 집합 중에서 검색을위한 도구를 제공합니다. "회전 목마"은유는 영화 촬영 중 일 carousels을 가지고 달려오는 비유에서 유래; 회전식 컨트롤 콘텐츠 블록의 전체를 통해 지속적인 원형 탐색을 허용하여이 비유에 충실도를 유지할 수 있습니다.

회전 목마가에 "오버로드"페이지에서 공간을, 추가적인 내용을 발견하고 탐색하는 사용자의 쉽고 직관적인 메커니즘을 제공함과 동시에 자사의 치수 이내 면에서보다 그 공간에 대한 더 많은 콘텐츠를 제공할 수있는 위젯의 가족의 일부입니다 . Accordions, 탭, 나무와 ScrollViews이 장르의 다른 예입니다.

왜 또 다른 회전식 제어?

YUI 3 강력하고 기능이 풍부한 회전 목마를 (우리가 필요로 필요로 YUI 2 ). 이 회전 목마를위한 디자인 목표는 그것을 활용, 앞으로 숙이고 청소하고 플러그인을 통해 추가적인 구성을 추가할 수 있도록하는 것이었다 YUI 3 ' 가벼움과 속도를 유지하기 위해 모듈화를위한의 본질 지원.

YUI 세 위젯 프레임 워크

YUI 3을 사용하여 사용자 정의 위젯을 쓰고있는 가장 큰 장점 중 하나는 위젯 프레임 워크 (위젯 프레임 워크에 더 사용자 가이드 , 심층 동영상 소개 ). 비교 YUI 2.8.2에서 회전 목마를 제에 YUI 3 갤러리 회전 목마 , YUI 3 버전은 야위고 우아한이다. 위젯의 특성, 훈련 수명주기, 진보적인 향상 지원 등 일반적인 집합을 제공하는 기초를 제공에 관하여 무거운 대부분의 위젯 클래스와 함께 있기 때문입니다.

YUI 세 위젯 프레임 워크는 UI 업데이트 방법 비교 상태 방법의 분리를 입양 모든 위젯을 추진 일관성 MVC 패턴을 제공합니다. 이 코드는 매우 깨끗하고 maintainable 있습니다. 사실 이것은 YUI 3 회전 목마는 이전 YUI 2 기반 사촌보다 낫다 왜 중요한 요인 중 하나입니다.

YUI 3 플러그인 모델은 개발자들이 객체에 새로운 기능을 추가하거나 기존의 동작을 수정할 수 있습니다. 이것은 동적 그래서, YUI 3 회전 목마가 그것에 구운 애니메이션 코드가없는 에이 젝스 등을 통해 요소를 당길 수있는 회전 목마 위에 추가 기능을 추가할 수 있지만, 대신에 나는 그것이 필요한 경우는 애니메이션 지원을 추가 플러그인을 만들었습니다 . 이것은 구성 요소가 매우 가볍고 유지하는 데 도움이됩니다.

자신의 웹사이트 갤러리 회전 목마

어떤 회전 목마는 무엇이며 어떻게 그것이 당신의 웹사이트를 개선하는 데 도움이 될 수 있습니다 대해 읽은 다음, 당신은 운이 좋다면 당신의 손을 더럽히는 걸 열망 느낍니다. 귀하의 웹사이트에 회전 목마를 구현하는 우리의 YUI 3 갤러리 회전식 확장과 함께 걱정 마 HTML에서 글머리 기호 목록을 제공하는만큼 쉽습니다. 그건 단지 장사가 아니야 - 그건 우리가 최근 야후 스포츠 검색 결과 페이지에 갤러리 회전 목마를 통합 방법입니다.

간단한 예제

선생님이 알아야 할 거의 모든 것을 다룰 것입 간단한 예제부터 시작하자. 당신이 새로운 갤러리 회전 목마를 사용하기위한 가장 쉬운 방법은 YUI 3 자동적으로 야후의 콘텐츠 전송 네트워크에서로드하게하는 것입니다. 회전 목마가 무엇 불러오기, 항목의 스크롤리스트, 우리는 HTML의 목록을 만듭니다. 우리는 자바 스크립트를 쉽게 찾아서 사용할 수 있도록 사업부의 목록을 포함합니다. 당신이 이미 당신의 마크업의 목록과 같은 방식으로 표현되는 몇 가지 데이터가있다면, 당신은 또한 단지 주변에 회전 목마 사업부를 넣고 행운을 테스트할 수 있습니다! 우리가 여기에 이​​미지 예제를 사용하고 있지만, 당신이 원하는 무엇이든을 위해 갤러리 회전 목마를 사용할 수 있습니다, 그런 말을하는 것은 매우 중요하다!

  <div class="carousel" id="container">
   <ol>
     <li> <img src="img/c1.jpg"> </ 리>
     <li> <img src="img/c2.jpg"> </ 리>
     <li> <img src="img/c3.jpg"> </ 리>
     <li> <img src="img/c4.jpg"> </ 리>
     <li> <img src="img/c5.jpg"> </ 리>
     </ 마셨다>
 </ 사업부> 

이제 작동하기위한 데이터를 가지고있어서, 우리는 회전 목마 위젯을 사용하여 모두 다섯 항목을 보여줌으로써 눈길을 향상 싶습니다. 당신이 이미이 간단한 작업입니다 YUI 3을 사용하고 있다고 가정. 당신은, 당신은 YUI 3 과거 갤러리로 파기되어 있을지에 따라 한번도 보지 않았을 수도있는 유일한 방법은 우리가 명시적으로 갤러리 버전을 지정하는 것입니다. 우리가 YUI의 로더는 기본적으로로드하려고하는 빌드 갤러리에 포함되지 않은 새로운 위젯을 사용하기 때문에 이것이 필요하다. 기본 번호가 증가되고 빌드할 때 그러나, YUI, 그리고 유이 갤러리 성숙시피, 이것은 미래에 더 이상 필요하지 않습니다.

  YUI ({갤러리 '갤러리-2010년 10월 20일 - 19-33'})
  . 사용 ( "갤러리 - 회전 목마", "갤러리 - 회전 목마-anim", "대용품"함수 (Y) {
   VAR 회전 목마 = 새로운 Y.Carousel ({boundingBox : "# 컨테이너"
    contentBox : "# 컨테이너> 마셨다"});
   carousel.plug (Y.CarouselAnimPlugin, {애니메이션 : {속도 : 0.7}});
   carousel.render ();
 }); 

(당신이 새로운 물건을 받고에 관심이있다면 그건 그렇고, 당신은 방문할 수 YUI 3 갤러리 저장소를 github 또는 Gopal의 포크 그가 회전 목마 개발. 당신이 버그를 발견하면 우리가 늘 듣고 드리겠습니다.)

예제로 돌아가기 ... YUI 여기서부터이 소요됩니다. 로더는 자동으로 갤러리 회전 목마와 야후의 콘텐츠 전송 네트워크에서 자사의 종속성을 가져옵니다. 그 후, 회전 목마가 초기화되고 표시되고 있습니다. 사용자는 스크롤할 왼쪽 또는 오른쪽 화살표를 클릭할 수 있습니다. 불필요한 복잡 한 줄에만으로도 용서하세요,하지만 난 저항할 수 없었다. 제가 사용 Y.CarouselAnimPlugin 한 페이지에서 대신 순식간에 다음 페이지를 표시하는 다른 원활하게 우리의 회전 목마 슬라이드를하도록. 원하는 경우 속도 매개 변수와 놀아 주시기 바랍니다.

당신은 위의 스크린샷에서 볼 수 있듯이, 회전 목마가 실행됩니다. 그러나 CSS는 페이지의 나머지 부분에 잘 맞지 않을 수도 있습니다. 이것은 우리 갤러리 회전 목마를 사용자 정의하는 방법에 대해 다루겠습니다 우리의 다음 섹션에서 우리를 이끌고 있습니다.

갤러리 회전식 사용자 정의

당신의 회전 목마까지하고 실행을 귀하의 웹사이트에 대한 유스 케이스를 식별 지금 것을, 당신은 희망적으로 원활하게 그것을 통합 싶습니다. 이전에 언급했듯이, 우리는 스포츠 검색 결과 페이지에 대한 거죠. 당신이 거미의 넷을 예를 들어, 표시 항목의 개수를 늘리려면, 당신은 회전 목마를 인스턴스 라인을 수정하면됩니다.

  VAR 회전 목마 = 새로운 Y.Carousel ({boundingBox : "# 컨테이너"
  contentBox : numVisible, "# 컨테이너가> 마셨다": 4}); 

충분히 아직도 좋지 않아? 그래, 맞아. 다행히 CSS는 우리 자신의 스타일 정의를 추가하고 심지어 기존 CSS를 건드리지 않고 초기 것들을 덮어쓸 수 있습니다. 그들이 매우 돌출 때문에 그래서 첫 번째 단계는 아마도 국경을 제거하는 것입니다. 오직 당신의 페이지 헤더에 다음과 같은 CSS를 추가합니다.

  . YUI 3 - 회전 목마 {
   국경 : 없음 중요합니다;
 }
 . YUI 3 - 회전 목마 - 비행 {
   배경 : 없음 중요합니다;
 }
 . 회전 목마 마셨다 리 {
   국경 : 없음 중요합니다;
 } 

자, 잘 보입니다. 나는 또한 나의 회전 목마와 항로 사이의 격차를 줄이기 위해 음수 마진을 사용했습니다. 그러나, 우리는 완전히 아직도 거기에 없습니다. 난 당신이 또한 페이지 레이아웃에 멋지게 통합 사용자 정의 버튼을 사용하고자하는 가정합니다. 이 예를 들어 우리는 또한 야후의 검색 결과 페이지에 사용되는 동일한 버튼을 사용할 것입니다. 이것은 조금 더,하지만 여전히 간단한 CSS를 필요로합니다.

  . YUI 3 - 회전 목마 - 버튼 {
   배경 : URL ( "sprite_button.png") 노 반복 스크롤 투명 0 0 중요합니다;
   높이 : 20px 중요한; 폭 :! 28px 중요한;
 }
 . YUI 3 - 회전 목마 - 항법 항목 {
   배경 : URL ( "sprite_button.png") 노 반복 스크롤 투명 0 0 중요합니다;
   ! 배경 - 위치 :-133px 0 중요합니다;
 }
 . YUI 3 - 회전 목마 - 첫 단추 {
   ! 배경 - 위치 :-90px 0 중요합니다;
   마진 오른쪽 : 35px 중요한;
 }
 . YUI {3 - 회전 목마 - 첫 단추 장애인
   ! 배경 - 위치 :-60px 0 중요합니다;
   마진 오른쪽 : 35px 중요한;
 }
 . YUI 3 - 회전 목마 - 다음 - 버튼을 {
   ! 배경 - 위치 :-30px 0 중요합니다;
 }
 . YUI {3 - 회전 목마 - 버튼 장애인
   배경 위치 : 0 0 중요;!
 }
 . YUI 3 - 회전 목마 - 항법 항목 선택된 {
   ! 배경 - 위치 :-121px 0 중요합니다;
 } 

우리는 오늘 그 그것을두고 당신은 시작할 준비가 기분이 좋겠 것이다. 적어도 우리가 필요한 모든했습니다. 그러나 귀하의 사이트가 얼마나 큰 일에 얼마나 관심이 여러분의 성능에 따라, 또한 여기에서 적용 타사의 콘텐츠 전송 네트워크에서 뭔가를 로딩에 대한 일반적인 생각은 없습니다. 예를 들어, Sidnei 다 실바 이달 초 블로그 게시물에서 몇 가지 흥미로운 생각을 하였다. 우리는 YUI 위젯과 그 의존성은 자신의 웹사이트, 또는 컨텐츠 전송 네트워크로 이동할 수있는 방법을 설명합니다 그렇게하는 방법을 제공 드리겠습니다, 그래서 당신은 가능한 한 낮은 HTTP 요청의 개수를 유지할 수 있습니다. 당신이 관심이있다면 알려주시기, 우리는 여러분의 의견을 기다리고 있습니다!

갤러리 탐방 더

에두아르도 Lundgren 및 Liferay의 불량 카나 우수 팀은뿐만 아니라 갤러리에서 회전 목마 구성 요소 분명히이 종류의 컨트롤을 위해 시장에서라면 체크 아웃 가치를 -.

공유하고 확장할 수 : del.icio.us에 북마크 | 디그 그것! | reddit!

16 코멘트

  1. 헤이 Gopal, 파비안,

    잘했어, 훌륭한 포스트!

    난 그냥 최근에 오히려 YUI2에서 하나를 사용하는 것보다 내 자신의 회전 목마를 구축 YUI3 팬이된다는.

    나는 한가지 질문 있습니다. 그것은 회전 목마가 자주 슬라이드쇼처럼 큰 위젯에서 지원하는 역할을 할 수있는 걸로 보입니다. 그것은 새로운 모듈이 이러한 목적으로 확장할 수있는 방법을 볼 수 좋을 것 같습니다. 혹시 예제가 있나요? 그것은이 게시물을 후속 뵙게 될 것입니다.

    그때까지 나는 연극이 되시길 바랍니다.

    건배
    표시

    댓글 작성자 표시 - 2010년 12월 13일 #을

  2. 안녕 Gopal & 파비앙,
    당신이 추천 자로 "... 당신은 또한 단지 주변에 회전 목마 사업부를 넣고 행운을 테스트할 수 있습니다!"내가 그랬어. 다른 방식으로 코드를 테스트하는 동안에도를 위해 싸워. 결과가 작동하지, 둘 다 말이되지 않습니다.
    그래서, 대신 회전 목마가 얼마나 굉장 대해 긴 광고를 쓰기 때문에, 당신은 그냥 단순한 동작하는 예제 부탁을 제공할 수있다 주시기 바랍니다.
    우리가 절대적으로 수 없기 때문에 "위 스크린샷에서 볼, 회전 목마가 실행됩니다."(심지어는 gif 또는 우리가 없었 비디오).
    나는 어쩔 수 없어. 나는 yui3를 사용하여 정말 좋아하고 당신이 제대로없이 데모와 함께 설명하지 않은 확장 기능을 제공하여이 아주 좋은 라이브러리를 아프게하는 거 같아요. 그것은 사용자 절망적이다.
    코딩 마술 아니다 모든 위해서 우릴 속일 중지합니다.

    감사합니다
    Matthieu

    Matth에 의해 코멘트 - 2011년 1월 7일 #

  3. 그레이트 때문에 익명 사용자 (sdeva) 덕분에, 여기서는 회전 목마 플러그인들과 놀기를 붙여넣 / 복사 예제 코드는 다음과 같다 :

    YUI ({갤러리 '갤러리-2010년 10월 20일 - 19-33'})를 사용 ( "갤러리 - 회전 목마", "갤러리 - 회전 목마-anim", "대용품"기능 (Y) {.
    Y.on ( "사용 가능한"기능 (전자) {
    VAR 회전 목마 = 새로운 Y.Carousel ({boundingBox : "# 컨테이너", contentBox : "# 컨테이너> 마셨다"});
    carousel.plug (Y.CarouselAnimPlugin, {애니메이션 : {속도 : 0.7}});
    carousel.render ();
    } "# 컨테이너");
    });

    Matth에 의해 코멘트 - 2011년 1월 7일 #

  4. 죄송합니다, 어서 단체로 해 봅시다 :
    <HTML>
    <HEAD>
    <script type="text/javascript" src="http://yui.yahooapis.com/3.2.0/build/yui/yui-min.js"> </ SCRIPT>
    <링크 REL = "스타일 시트"유형 = "텍스트 / CSS"
    . CSS "/>
    </ 머리>
    <body class="yui3-skin-sam">
    <div class="carousel" id="container">
    <ol>
    <li> <img src="http://static.flickr.com/5006/5265039009_f92b60ffc6_m.jpg"> </ 리>
    <li> <img src="http://static.flickr.com/5163/5265038529_b35a4f497e_m.jpg"> </ 리>
    <li> <img src="http://static.flickr.com/5008/5265644686_712fde3f34_m.jpg"> </ 리>
    <li> <img src="http://static.flickr.com/5241/5265037365_8679d00d49_m.jpg"> </ 리>
    </ 마셨다>
    </ 사업부>
    </ BODY>
    <script type="text/javascript">
    YUI ({갤러리 '갤러리-2010년 10월 20일 - 19-33'})를 사용 ( "갤러리 - 회전 목마", "갤러리 - 회전 목마-anim", "대용품"기능 (Y) {.
    Y.on ( "사용 가능한"기능 (전자) {
    VAR 회전 목마 = 새로운 Y.Carousel ({boundingBox : "# 컨테이너", contentBox : "# 컨테이너> 마셨다"});
    carousel.plug (Y.CarouselAnimPlugin, {애니메이션 : {속도 : 0.7}});
    carousel.render ();
    } "# 컨테이너");
    });
    </ SCRIPT>
    </ HTML>

    Matth에 의해 코멘트 - 2011년 1월 7일 #

  5. Matth 안녕하세요,

    여러분의 의견에 대해 매우 감사하고 갤러리 예제를 제공해 주셔서 감사드립니다. 나는 우리가 우리가 그것을 제공해야한다는 그 잊었 것에 동의합니다. 우리는 이상적으로 다운로드. HTML 파일, 다음으로 작은 실행 가능한 예제를 제공할 수 있는지 확인합니다. 아, 이제 당신이 동작하는 예제를 가지고 있고 당신이 우리와 함께 그것을 공유하는 것이 기뻐요. 우리가 사물을 향상시키기 위해 도움을 주셔서 감사합니다! :-)

    그렇지만, 나 또한 우리가 역시 사용으로 사람을 속여 또는 모듈을 광고하는 것을 원하지 않았다 말을해야합니다. 우리는이 게시물의 하단에 대안 구현에 대한 링크를 제공하고 우리는 자신이 좋아하는을 선택하는 모든 사용자와 정상입니다. 우리의 회전 목마는 YUI 3의 공식적인 부분은 아니지만 확장 YUI 갤러리를 사용하여 제공합니다하시기 바랍니다.

    행복을 빌며,
    페이비언 협회 회원

    파비안 프랭크 의해 코멘트 - 2011년 1월 9일을 #

  6. 위의 예제는 작동하지 않을 수도 있습니다.
    스크립트를 실행하기 전에는 이미지가로드되지 않을 때 생성되는 스타일 후크 완전히 있습니다.
    그래서 domready에서보다는 사용할 이벤트를 해고.

    + - Y.on ( "사용 가능한"기능 (전자) {

    자, 자.

    Matth에 의해 코멘트 - 2011년 1월 11일 #

  7. 제가 예제를 시도하면 처음 항목 목록 1 위로 보여줍니다. 2. 3. 4. 그리고 회전 목마의 초기화를로드 완료 후, 이건해야 어때요?

    Sela에 의해 코멘트 - 2011년 1월 25일 #

  8. 안녕 Sela,

    예, 이것은 진보적인 강화이다.
    http://en.wikipedia.org/wiki/Progressive_enhancement

    감사합니다
    페이비언 협회 회원

    파비안 프랭크 의해 코멘트 - 2011년 2월 10일을 #

  9. 그것이 간단한 코드를 보여 좋네요지만, 이미지의 각 고도 속성을 추가하는 것을 잊지 마세요. 스크린 리더가 계속 회전 목마의 이미지를 인식할 수 있으니, 그들에게 좋은 경험을 주자.

    댓글 작성자 테드 드레 이크 - 2011년 2월 13일 #을

  10. 안녕하세요 여러분. 이 주셔서 감사합니다. 제가 몇 가지 질문이 있어서요. 애초에로드, 그건 주문한 목록으로 표시하면 다음이 형식의 상자에갑니다. 이것을 방지하기위한 방법이 있습니까?

    이번에 새로운 오전, 난이 피부를 변경하거나 사용자 정의할 수 있는지 알고 싶어요, 그리고면 이걸 어떻게해야합니까?

    감사합니다!

    seeker7805에 의해 코멘트 - 2011년 3월 14일을 #

  11. 안녕 seeker7805,

    이것에 대해 좀 더 정보를 위해 이전 답변보고하시기 바랍니다. 당신은 즉시 회전 목마처럼 보이게하고 자바 스크립트에만 스크롤 버튼을 추가하기 위해 여러분의 HTML 문서의 머리에 적어도 CSS를 전달해야합니다.

    감사합니다
    페이비언 협회 회원

    파비안 프랭크 의해 코멘트 - 2011년 3월 14일을 #

  12. 안녕 seeker7805,

    당신이 완전히 렌더링된 때까지 회전 목마를 숨길 것이다 "yui3 - 회전 목마-로드"에 회전식 컨테이너를 설정할 수 있습니다.

    이것은 모든 YUI 3 위젯의 일반적입니다.

    http://developer.yahoo.com/yui/3/widget/ # hidingmarkup

    여기는 회전 목마 위젯을 위해 할 수있는 방법은 다음과 같습니다


    YUI ({
    / / 마지막 갤러리는이 모듈 빌드
    갤러리 : "갤러리 - 2011년 2월 23일 - 19-01"
    })를 사용한다. ( "갤러리 - 회전 목마", "대용품"함수 (Y) {
    Y.on ( "domready"함수 () {
    VAR 회전 목마 = 새로운 Y.Carousel ({boundingBox : "# 컨테이너"
    contentBox : numVisible, "# 컨테이너가> 마셨다": 2});
    carousel.render ();
    });
    });

    도움이되기를 바랍니다.

    감사합니다
    Gopal Venkatesan

    댓글 작성자 Gopal Venkatesan - 2011년 3월 15일 #

  13. 파비안 고마워!
    감사 Gopal!

    seeker7805에 의해 코멘트 - 2011년 3월 16일을 #

  14. 안녕 파비안과 Gopal :

    나는 변화를 구현하지만 분명히 내가 잘못하고 있어야하고 :

    http://inetwebdesign.com/YUI3_carousel4.html

    새로 고침에서, 아직 주문 목록을 보여주고 있습니다.

    내가 코드를 게시 하시겠습니까? 내가 여기 공간을 방해할 싶지 않아요.

    감사합니다
    seeker7805

    seeker7805에 의해 코멘트 - 2011년 3월 16일을 #

  15. 안녕하세요,

    나는 회전 목마 안에 링크를 세우면 그들은 작동하지 않습니다. 이 동작을위한 것입니다?

    루카에 의해 코멘트 - 2011 년 7 월 20 일 #을

  16. 안녕 루카,

    지금 회전 목마 삼키는로서 클릭 이벤트, 나는 그것이 좋은 경험이없는 데요. 당신이 고칠께요 티켓을 제기할 수 있습니다.

    댓글 작성자 Gopal Venkatesan - 2011 년 7 월 21 일 #을

죄송합니다, 코멘트 양식은이 시간에 문을 닫습니다.

야후 주최

저작권 © 2006년부터 2012년까지 야후 주식 회사 판권 소유. 개인 정보 보호 정책 - 서비스 약관

에서 제공하는 워드 프레스 에서 야후! 웹 호스팅 .