2014-10-10 7 views
5

Web Animations is a new w3c spec का उपयोग करके डीओएम गुणों (स्क्रॉलटॉप) को एनिमेट करें, बस यह स्पष्ट करने के लिए कि हम किस बारे में बात कर रहे हैं। किसी भी तरह से, मैं आसानी से एक निश्चित तत्व को स्क्रॉल करना चाहता था। JQuery के Animate फ़ंक्शन का उपयोग करना यह हमेशा एक ब्रेनर था, लेकिन यह वेब एनिमेशन के साथ उतना आसान नहीं लगता है। क्या वेब एनीमेशन टाइमिंग फ़ंक्शंस का उपयोग करने और उन्हें DOM प्रॉपर्टी (scrollTop) पर लागू करने का कोई तरीका है। कारण मैं पूछ रहा हूं कि मैं अपने पूरे आवेदन में एक अलग तकनीक/लाइब्रेरी के साथ ऐसा करने के दौरान अपने इंटरपोलेशन फ़ंक्शन का उपयोग करने के लिए एक संपूर्ण (अतिरिक्त) लाइब्रेरी लोड नहीं करना चाहता हूं।वेब एनिमेशन

+0

ही समस्या का पीछा। लगता है डब्ल्यूए केवल सीएसएस गुणों को एनिमेट करता है, स्क्रॉल टॉप एक नहीं है। – clyfe

+0

@clyfe अच्छा, पता चला कि मैं पूरी तरह से पागल नहीं था: पी किसी भी तरह से, मैंने इसे कभी लागू नहीं किया, लेकिन मैं एक बिंदु पर विचार कर रहा था कि एक अदृश्य तत्व पर एक यादृच्छिक सस्ती सीएसएस संपत्ति को एनिमेट करें और ' scrollTop'। सुंदर नहीं है, लेकिन एक संपूर्ण अतिरिक्त पुस्तकालय लोड करने से बेहतर है। –

उत्तर

2

scrollTop को एनिमेट करने के लिए आप Custom Effects का उपयोग कर सकते हैं, उदा।

var a = new Animation(el, function(time) { 
    el.scrollTop = el.scrollTop + time * 500; 
}, 1000); 
+0

फिर भी इस पर बाद में आज रात बाहर की कोशिश करने के लिए है, लेकिन यह लग रहा है सही: हे और धन्यवाद पॉलिमर पर अपने अद्भुत काम के लिए: (? StackExchange के लिए और स्वागत) डी –

+0

यहाँ हर कोई जो कुछ बिंदु पर यह जाता है के लिए btw एक काम JSFiddle है: http : //jsfiddle.net/4hd3hjrx/1/ और http://jsfiddle.net/4hd3hjrx/ –

+1

'Animation' अब W3C कल्पना –

2

प्रलेखन की खातिर, युवान के जवाब से शुरू, कोर-एनीमेशन का उपयोग कर के लिए:

<link rel="import" href="../../bower_components/polymer/polymer.html"> 
<link rel="import" href="../../bower_components/core-animation/core-animation.html"> 

<polymer-element name="animated-scroll"> 
    <template> 

    <style> 
     #scroller { 
     height: 300px; 
     overflow-y: scroll; 
     } 
    </style> 
    <button on-tap="{{animate}}">Scroll it</button> 
    <div id="scroller"> 
     <content></content> 
    </div> 
    <core-animation id="animation" duration="400" easing="ease-in-out"></core-animation> 

    </template> 
    <script> 
    (function() { 

     Polymer({ 
     animate: function (e) { 
      var start = this.$.scroller.scrollTop; 
      var end = 500; // px 
      var delta = end - start; 
      this.$.animation.target = this.$.scroller; 
      this.$.animation.customEffect = function (timeFraction, target, animation) { 
      target.scrollTop = start + delta * timeFraction; 
      }; 
      this.$.animation.play(); 
     } 
     }); 

    })(); 
    </script> 
</polymer-element> 
+0

में' KeyframeEffect' कहा जाता है आप पॉलिमर 1.0 का उपयोग कर एक संस्करण है? कोर-एनीमेशन को हटा दिया गया है और नया नियॉन-एनीमेशन समर्थन काफी अचूक है। –

संबंधित मुद्दे