I have been unable to get the kendo page turn effect to work acceptably in chrome. The appearance is staggered and on android mobile, which I am targeting for my application, it does not appear to work at all.
Below is plunkr http://plnkr.co/edit/aWIthiWY1UEPret8BOkT?p=preview
<
html
>
<
head
>
<
meta
charset
=
"utf-8"
>
<
title
>Kendo UI Mobile Loves AngularJS</
title
>
<
meta
http-equiv
=
"Content-Security-Policy"
content
=
"default-src http://ajax.googleapis.com/ http://code.jquery.com/ http://demos.telerik.com/kendo-ui/ ; http://cdn.kendostatic.com/ ; https://static.pexels.com/ 'self' https://localhost:44309/ https://localhost:44300/ https://caredarestorage.blob.core.windows.net/ 'unsafe-eval' 'unsafe-inline' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src http://cdn.kendostatic.com/ 'self' 'unsafe-inline'; media-src *"
>
<
link
rel
=
"stylesheet"
href
=
"http://cdn.kendostatic.com/2014.3.1029/styles/kendo.mobile.all.min.css"
>
<!-- the application CSS file -->
<
script
src
=
"http://code.jquery.com/jquery-1.9.1.min.js"
></
script
>
<
script
src
=
"http://ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular.js"
></
script
>
<
script
src
=
"http://cdn.kendostatic.com/2014.3.1029/js/kendo.all.min.js"
></
script
>
<
script
src
=
"//ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular-sanitize.js"
></
script
>
<
style
>
#wrap {
background-image: url("../content/web/fx/pageturn/book.png");
width: 100%;
height: 90%;
margin: 2.5em auto 4em;
position: relative;
}
#book {
position: relative;
width: 85%;
height: 85%;
margin: 0 auto;
padding: 0;
list-style-type: none;
}
#book > li {
position: absolute;
width: 100%;
height: 100%;
background-color: #fff;
}
#actions {
overflow: hidden;
margin: 0 auto 3em;
width: 650px;
}
#previous, #next {
text-decoration: none;
text-indent: -999em;
overflow: hidden;
display: block;
height: 100%;
width: 50%;
position: absolute;
top: 0;
background-repeat: no-repeat;
background-position: 50% 50%;
opacity: .5;
}
#previous:hover, #next:hover {
opacity: 1;
}
#previous {
background-image: url('content/css/imagesrotator/arrow-left.png');
left: 0;
}
#next {
background-image: url('content/css/imagesrotator/arrow-right.png');
right: 0;
}
.first-page #previous,
.last-page #next {
display: none;
}
.preloadSlide * {
-webkit-transition: none !important;
-moz-transition: none !important;
-ms-transition: none !important;
-o-transition: none !important;
}
.divSection {
display: table;
width: 100%;
height: 100%;
z-index: 0;
}
.divRandomText {
height: 100%;
font-size: large;
line-height: 130%;
padding: 10% 15% 15% 15%;
display: table-cell;
vertical-align: middle;
white-space: normal;
}
.divBackgroundImage {
background-color: white;
height: 100%;
width: 100%;
position: absolute;
right: 0px;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
*z-index: -1;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#80000000', GradientType=1);
}
</
style
>
</
head
>
<
body
kendo-mobile-application
ng-app
=
"sushiMobileApp"
>
<
kendo-mobile-view
k-layout
=
"'default'"
ng-controller
=
"indexController"
k-stretch
=
"'true'"
k-on-show
=
"show(kendoEvent)"
>
<
kendo-mobile-header
>
<
kendo-mobile-nav-bar
>
Veterinary Wellness
</
kendo-mobile-nav-bar
>
</
kendo-mobile-header
>
<
div
id
=
"divHome"
>
Slides {{slides.length}}
Slide {{currentIndex}}
<
div
fill-height
id
=
"divWholePageWrapper"
style
=
"height: 100%; width: 100%; "
>
<
div
id
=
"wrap"
class
=
"first-page"
>
<
ul
id
=
"book"
>
<
li
ng-repeat
=
"slide in slides"
>
<
div
no-wrap
=
"noWrapSlides"
class
=
"divWholePageNew"
ng-style
=
"{'background-image': 'url(' + slide.image + ')'}"
style
=
"height: 100%; width: 100%; background-repeat:no-repeat; background-position:center; "
>
<
div
class
=
"divSection "
>
<
div
class
=
"divRandomText"
>
<
div
style
=
"position: relative;height:100%;background-color: white; opacity: .85; border:2px solid gainsboro;"
>
<
div
class
=
"row"
>
<
div
class
=
"col-md-2"
>
<
div
class
=
"circle color-1 color1-box-shadow"
style
=
"position:absolute;left:-20px;top:20px"
>
<
p
>
<
div
style
=
"margin-top:-10px; font: italic 29px/32px Cambria, serif;text-shadow: black 0 1px 0;"
>{{slide.careCardDate | date:'d'}}</
div
>
<
div
style
=
"margin-top:-8px;display: block;font: Georgia, serif;font-size: 12px;text-transform: uppercase;font-weight: bold;text-shadow: black 0 1px 0;"
>{{slide.careCardDate | date:'MMM'}}</
div
>
</
p
>
</
div
>
</
div
>
<
div
class
=
"col-md-8"
><
h3
style
=
"text-align:center"
>{{slide.careCardName}}</
h3
></
div
>
<
div
class
=
"col-md-2"
>
</
div
>
</
div
>
<
center
>
</
center
>
<
p
style
=
"text-align:center"
class
=
"cardTextNew"
ng-bind-html
=
"slide.task"
> </
p
>
</
div
>
</
div
>
</
div
>
</
div
>
</
li
>
<
li
class
=
"current"
>
<
div
no-wrap
=
"noWrapSlides"
class
=
"divWholePageNew"
style
=
"height: 100%; width: 100%;background-image:url(https://static.pexels.com/photos/1230/landscape-mountains-nature-sky.jpg)"
>
<
div
class
=
"divSection "
>
<
div
class
=
"divRandomText"
>
<
div
style
=
"position: relative;height:100%;background-color: white; opacity: .85; border:2px solid gainsboro;"
>
<
div
class
=
"row"
>
<
div
class
=
"col-md-2"
></
div
>
<
div
class
=
"col-md-8"
><
h3
style
=
"text-align:center"
>Welcome</
h3
></
div
>
<
div
class
=
"col-md-2"
>
</
div
>
</
div
>
<
center
>
</
center
>
<
p
style
=
"text-align:center"
class
=
"cardTextNew"
> Daily inspiration self care wellness message.</
p
>
</
div
>
</
div
>
</
div
>
</
div
>
</
li
>
</
ul
>
<
a
href
=
"#"
ng-click
=
"previous($event)"
id
=
"previous"
>Previous page</
a
>
<
a
href
=
"#"
ng-click
=
"next($event)"
id
=
"next"
>Next page</
a
>
</
div
>
</
div
>
</
div
>
</
kendo-mobile-view
>
<
script
>
angular.module('sushiMobileApp', ['kendo.directives', 'ngSanitize'])
.controller('indexController', ['$scope', function ($scope) {
$scope.slides = [];
var slidesData = [
{
"id": 1,
"cardName": "Facial",
"cardDescription": "Schedule a facial once a month",
},
{
"id": 2,
"cardName": "Stairs",
"cardDescription": "Take the stairs instead of the escalator",
},
{
"id": 3,
"cardName": "Lunch",
"cardDescription": "Find time to eat lunch",
},
{
"id": 4,
"cardName": "Vow",
"cardDescription": "Vow to eat healthy",
},
{
"id": 5,
"cardName": "Walk",
"cardDescription": "Walk your dog for 20 minutes today",
},
{
"id": 6,
"cardName": "Breathe",
"cardDescription": "Take 10 deep breaths",
},
{
"id": 7,
"cardName": "After 9pm",
"cardDescription": "Turn off your phone after 9pm",
},
{
"id": 8,
"cardName": "Don't Check",
"cardDescription": "Don't check your phone from your bed",
},
{
"id": 9,
"cardName": "Spark",
"cardDescription": "Ask yourself, does the spark joy? If it doesn't, take the time to figure out how to make it better",
} ,
{
"id": 10,
"cardName": "Caffeine",
"cardDescription": "Try to limit your caffeine intake to 1 to 2 cups a day.",
]
$scope.show = function (e) {
$scope.startDate = new Date();
for (var i = 0; i <
slidesData.length
; i++) {
$scope.addSlide(slidesData[i], i);
};
}
$
scope.addSlide
=
function
(slide, index) {
$scope.slides.push({
image: slide.image + '?
v
=
1
',
careCardName: slide.cardName,
task: slide.cardDescription,
careCardDate: $scope.startDate,
id: index,
userTaskId: slide.id,
index: index
});
};
$
scope.previous
=
function
(e) {
e.preventDefault();
$scope.current(Math.max(1, $scope.current() - 1));
}
$
scope.next
=
function
(e) {
e.preventDefault();
$scope.current(Math.min($scope.slides.length, $scope.current() + 1));;
}
$
scope.current
=
function
(page) {
var book = $("#book"),
pages
=
book
.children(),
pagesCount
= pages.length,
current
=
pages
.filter(".current"),
currentIndex
=
pagesCount
- current.index(),
newPage;
$
scope.currentIndex
= currentIndex;
if (!arguments.length) {
return currentIndex;
}
if (book.data("animating")) {
return;
}
$("#wrap").toggleClass("first-page", page == 1)
.toggleClass("last-page", page == pagesCount);
if (page != currentIndex) {
current.removeClass("current");
newPage
=
pages
.eq(pagesCount - page).addClass("current");
if (page > currentIndex) {
kendo.fx(book).pageturnHorizontal(current, newPage).play();
} else {
kendo.fx(book).pageturnHorizontal(newPage, current).reverse();
}
}
}
}]);
</
script
>
</
body
>
</
html
>