मैं एक मुद्दा के साथ संघर्ष कर रहा हूँ स्लाइडिंग: मैं मदों की एक्स राशि के साथ एक मेनू है। इस उदाहरण में, मैं तीन आइटम नहीं हैं।ngAnimate - दोनों तरीकों से
प्रत्येक आइटम एक सामग्री अनुभाग है, तो मेनू आइटम पर क्लिक करके, सामग्री में स्लाइड चाहिए।
मैं अब तक क्या हासिल किया है, जिसे आप "आइटम 1" से शुरू कर रहे हैं कि कब और बदल रहा है "आइटम 2" करने के लिए एनीमेशन (दाएं से बाएं, एक पावरपॉइंट स्लाइड की तरह स्लाइडिंग)
लेकिन मुझे रिवर्स इफेक्ट भी चाहिए, इसलिए यह "आइटम 2 से जाने पर दाएं से बाएं स्लाइड करेगा "टू" आइटम 1 "। मैं सिर्फ यह कैसे दोनों तरीकों के लिए यह करने के लिए पता नहीं कर सकते हैं।
तो मैं जो कुछ मांग रहा हूं वह एनजीएनिम के साथ कुछ प्रकार का कैरोसेल है, इसलिए मुझे इस तरह के एनिमेशन के लिए jQuery पर वापस नहीं जाना पड़ेगा। AngularJS का उपयोग करते समय मैं अपनी परियोजना से jQuery को काटना चाहता हूं।
console.clear();
var _app = angular.module("animate", ['ngAnimate']);
_app.directive("animate", [function() {
return {
scope: {},
template: '<div class="header">' +
' \t \t <ul>' +
' \t \t \t <li data-ng-repeat="item in items" data-ng-click="move($index)">' +
' \t \t \t \t <div>{{item}}</div>' +
' \t \t \t </li>' +
' \t \t </ul>' +
'</div>' +
'<div class="wrapper" style="position: relative; margin-top: 20px;">' +
' \t \t <div data-ng-if="index == 0" class="slide slide-left">Content 1</div>' +
' \t \t <div data-ng-if="index == 1" class="slide slide-left">Content 2</div>' +
' \t \t <div data-ng-if="index == 2" class="slide slide-left">Content 3</div>' +
'</div>',
link: function(scope, elem, attr) {
scope.items = ["Item 1", "Item 2", "Item 3"]
scope.index = 0;
scope.move = function(index) {
scope.index = index;
}
}
}
}]);
body {
font-family: Arial, Sans-Serif;
}
.header {
width: 100%;
height: 50px;
background-color: lightblue;
position: relative;
}
.header ul {
padding: 0;
height: inherit;
}
.header ul li {
display: inline;
width: 33%;
height: inherit;
}
.header ul li div {
float: left;
width: 33%;
text-align: center;
height: inherit;
border: 1px solid black;
}
.slide {
-webkit-transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 2s;
-moz-transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 2s;
-o-transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 2s;
transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 2s;
position: absolute;
}
.slide-left.ng-enter {
left: 100%;
}
.slide-left.ng-enter.ng-enter-active {
left: 0;
}
.slide-left.ng-leave {
left: 0;
}
.slide-left.ng-leave.ng-leave-active {
left: -100%;
}
.slide-right.ng-enter {
left: -100%;
}
.slide-right.ng-enter.ng-enter-active {
left: 0
}
.slide-right.ng-leave {
left: 0;
}
.slide-right.ng-leave.ng-leave-active {
left: 100%;
}
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"></script>
<script src="https://code.angularjs.org/1.4.8/angular-animate.js"></script>
<div ng-app="animate">
<animate></animate>
</div>
जो मैंने अपेक्षित नहीं किया है:/सामग्री 1 से सामग्री 2 तक स्लाइडिंग बाएं से दाएं हो जाती है, वास्तव में एक कैरोसेल क्या नहीं करेगा। लेकिन मैं जवाब की सराहना करता हूं, जब मुझे ऐसा करने का समय मिलता है तो मुझे यूआई बूटस्ट्रैप में एक नज़र आएगी :) – Jorrex
@ जोरेक्स कृपया संपादित उत्तर पर एक नज़र डालें, मुझे लगता है कि अब यह आपके इच्छित तरीके से काम करता है। –
हां! यही वही था जो मैं चाहता था। धन्यवाद बहुत बहुत, मैं यह समझ नहीं सकता है और इतने लंबे समय के लिए इस पर अटक गई। अब अपना कोड पढ़ना, यह बहुत आसान लगता है .. – Jorrex