WinJS: событие слайдов Pivot и PivotItem

Я пытаюсь создать приложение на Windows Phone 8.1 с WinJS 2.1 и некоторыми элементами управления Pivot. Я хочу обнаружить слайд PivotItem влево или вправо, но в соответствии с этой страницей MSDN ( http://msdn.microsoft.com/en-us/library/windows/apps/dn624879.aspx) нет события слайда, такого как "onslideleft". ". Моя цель - избежать зацикливания Pivot: когда мы дойдем до последнего PivotItem и снова сместимся влево, он вернется к первому PivotItem. Я просто хочу заблокировать скольжение влево, когда пользователь достигнет последнего PivotItem (и заблокировать скольжение вправо для первого PivotItem).

Как мне это сделать?

Спасибо вам.

2 ответа

Решение

Вы не можете достичь этого в управлении поворотом сразу, но вы можете получить направление вращения скольжения в событии selectionchange, как это,

document.getElementById("PivotID").addEventListener("selectionchanged", swipehandler);

function swipehandler(evt) {
      var direction = evt.detail.direction;  // 'forward' or 'backwards'
}

Таким образом, в этом событии изменения выбора вы можете проверить длину и индекс точки поворота и ограничить цикл поворота, но если вам так нравится, этот показатель будет мерцать. В любом случае, просто попробуйте.

Не уверен, что это именно то, что вам нужно, но вы можете проверить selectedIndex, когда выделение изменилось, и следить за тем, попали ли вы в описанную ситуацию.

    ready: function (element, options) {

        var pivotEl = document.getElementById("idofpivotcontrol");

        pivotEl.addEventListener('selectionchanged', function (ev) {
            var pivotControl = document.getElementById("idofpivotcontrol").winControl;
            var pivotControlLength = pivotControl.items.length;
            var selectedIndex = pivotControl.selectedIndex;
        });
    }
Другие вопросы по тегам