2014-11-26 4 views
1

자동 생성 구분선이있는 ListView가있는 표준 JQM 페이지가 있습니다.JQuery 모바일 목록보기 스 와이프 메뉴

사용자가 목록보기에서 항목을 왼쪽 또는 오른쪽으로 스 와이프 할 수있는 기능을 추가하고 다음 중 하나를 수행 할 수있게하려고합니다.

1) 별표 아이콘을 공개하고 localstorage에 정보를 만듭니다. 두 번째로 스 와이프 할 때 아이콘을 'hollow'스타로 변경하고 localstorage의 값을 제거하십시오.

2) 'hollow'스타 아이콘을 클릭하면 locastorage에 값이 생성되고 아이콘이 ' 채워진 '별. 마찬가지로 별이 두 번째로 눌려지면 localstorage 값이 제거되고 아이콘이 '할로우 (hollow)'별표로 바뀝니다

다른 주제와 비슷한 정보를 본 적이 있지만 지금은 찾을 수 없습니다. 그래서 모든 포인터, 팁, 링크 크게 감사하겠습니다.

감사합니다.

+0

뭔가? http://codepen.io/Palestinian/details/xBDHi/ – Omar

+0

네,하지만 코드 from에서 css와 js를 추가했는데 저에게 맞지 않습니다. 슬라이딩 동작이 작동하지 않으며 FireBug 콘솔에 오류가 표시되지 않습니다. 나는 왜 그런지 알 수는 없지만, im은 잘만되면 정말 간단하게 뭔가를 놓친다. –

+0

은 목록보기의 '삽입'입니까? – Omar

답변

4

스타이 포함됩니다 span 요소를 만듭니다. 각 li 요소 앞에 span을 추가하십시오.

<ul data-role="listview" id="list"> 
    <span class="yellowStar"></span> 
    <li>Item 1</li> 
    <span class="hollowStar"></span> 
    <li>Item 2</li> 
    <span class="hollowStar"></span> 
    <li>Item 3</li> 
    <span class="hollowStar"></span> 
    <li>Item 4</li> 
    <span class="hollowStar"></span> 
    <li>Item 5</li> 
</ul> 

모두 작성중공 별에 대해 다음 CSS를 적용합니다.

.ui-listview>.ui-li-static { 
    overflow: initial; /* to hide spans underneath */ 
    -webkit-transition: -webkit-transform 300ms ease; /* transition effect */ 
    -moz-transition: -moz-transform 300ms ease; 
     -o-transition: -o-transform 300ms ease; 
      transition: transform 300ms ease; 
} 

ul span { 
    float: right; 
    padding: 1.3em 20px; 
    z-index: -1; 
} 

ul .yellowStar { 
    background-image: url(filled.png); 
    background-repeat: no-repeat; 
    background-position: center; 
} 

ul .hollowStar { 
    background-image: url(hollow.jpg); 
    background-repeat: no-repeat; 
    background-position: center; 
} 

그런 다음 swipeleft을 첨부하여 별표를 표시하십시오. swipe 해고 될 때마다

$(document).on("click", "ul span", function() { 
    $(this).toggleClass("yellowStar hollowStar"); 
}).on("swipeleft", "ul li", function (e) { 
    $(this).off("click"); 
    $(this).css({ 
     transform: "translateX(-40px)" 
    }).one("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", function() { 
     $(this).one("click swiperight", function() { 
      $(this).css({ 
       transform: "translateX(0)" 
      }); 
     }); 
    }); 
}); 

, 또한 click는, 따라서, .off("click")swipe 트리거 필수적입니다 발생합니다. 그러나 전환이 끝나면 별 폐쇄/숨기기에 clickswiperight 청취자가 첨부됩니다. 이와 유사한

Demo

+0

Ive는 현재 이것에 대해 몇 가지 문제가 있습니다. 1) 내 별은 표시되지만, Ive가 두 번 스 와이프하여 공식적으로 표시하면 클릭 만 가능합니다. 처음에는 분명히 숨겨져 있어야합니다.2) 'li'에서 포커스를 제거해야 필요하기 때문에 스 와이프를 통해 다른 listitem을 열 수 있습니다. 그래서 예를 들어 공개 된 스타 중 하나를 클릭하거나 페이지를 스크롤하거나 마우스 오른쪽 버튼으로 아무 곳이나 클릭 한 다음 Esc 키를 눌러 마우스 메뉴를 취소해야합니다. 3) 내 목록보기 항목은 onclick 이벤트를 사용하여 다른 페이지로 연결됩니다. 이것은 중요하지 않더라도 별을 밝혀 내지 못하게하는 것 같습니다. –

+0

@PhillHealey 어떤 브라우저에서 테스트 했습니까? 내 데모 에서처럼 목록 항목을 클릭 가능 또는 읽기 전용으로 사용할 수 있습니까? 나는 # 2를 얻지 않았다. – Omar

+0

li의 모든 내용은 빈 href 값이있는 'a'태그와 $ .mobile.changePage가 다음 페이지를로드하는 함수를 호출하는 'onclick ='속성으로 래핑됩니다. –

관련 문제