1. 程式人生 > >React Native Animated實現的走馬燈/輪播動畫小示例

React Native Animated實現的走馬燈/輪播動畫小示例

```
import React, { Component } from 'react';
import {
StyleSheet,
Animated,
Easing,
View,
Text,
} from 'react-native';
import Dimensions from 'Dimensions';


export default class extends Component {
  constructor(props) {
    super(props);
    this.state = {
      translateY: new Animated.Value(0),
    };


  }


  componentDidMount() {console.log('componentDidMount')
    this.showHeadBar(0, 5);         //從第0條開始,輪播5條資料
  }


  showHeadBar(index, count) {console.log('start')
    index++;
    Animated.timing(this.state.translateY, {
      toValue: -40 * index,             //40為文字View的高度
      duration: 300,                        //動畫時間
      Easing: Easing.linear,
      delay: 1500                            //文字停留時間
    }).start(() => {                          //每一個動畫結束後的回撥 
      if(index >= count) {
        index = 0;
        this.state.translateY.setValue(0);
      }
      this.showHeadBar(index, count);  //迴圈動畫
    })
  }


 
  render() {
    return(
      <View style={styles.container}>
      <Animated.View
        style={[styles.wrapper, {
          transform: [{
            translateY: this.state.translateY
          }]
        }
        ]}
      >
        <View style={styles.bar}>
          <Text style={styles.barText}>1111</Text>
        </View>
        <View style={styles.bar}>
          <Text style={styles.barText}>2222</Text>
        </View>
        <View style={styles.bar}>
          <Text style={styles.barText}>3333</Text>
        </View>
        <View style={styles.bar}>
          <Text style={styles.barText}>4444</Text>
        </View>
        <View style={styles.bar}>
          <Text style={styles.barText}>5555</Text>
        </View>
        <View style={styles.bar}>
          <Text style={styles.barText}>1111</Text>
        </View>
      </Animated.View>
      </View>
    );
  }
}
const styles = StyleSheet.create({
  container: {
    marginTop: 5,
    height: 40,
    overflow: 'hidden',


    backgroundColor: '#fff6ca',
    borderRadius: 14,
  },
  wrapper: {
    marginHorizontal: 5,
  },


  bar: {
    height: 40,
    justifyContent: 'center',
  },


  barText: {
    width: Dimensions.get('window').width - 30 - 16,
    marginLeft: 5,
    color: '#ff7e00',
    fontSize: 14,
  },
});
```

注:需要注意的是最後一條額外加上的第一條,也即是說在view中放的是要顯示的文字在加上第一條文字,即111除了放在第一條還放在了最後

相關推薦

React Native Animated實現走馬燈/動畫示例

``` import React, { Component } from 'react'; import { StyleSheet, Animated, Easing, View, Text, } from 'react-native'; import Dimensions

React Native Animated動畫

在React Native中,我們可以通過兩種方式實現一個動畫效果: LayoutAnimation Animated 關於LayoutAnimation,我之前寫過一篇學習部落格(React Native LayoutAnimation動畫)。此主要用

iOS開發項目實戰——Swift實現圖片與瀏覽

0.10 上網 timer類 開發項目 cas hub string obj tle 近期開始開發一個新的iOS應用,自己決定使用Swift。進行了幾天之後,發現了一個非常嚴峻的問題。那就是無論是書籍,還是網絡資源,關於Swift的實在是太少了,隨便一

用jq實現簡單

cti 標簽 function radi har mil ott ava 懸停 一個簡單的實例: css代碼: <style type="text/css">@charset "utf-8";*{ padding:0px; border:

JavaScript實現

n) undefined add tom als one lin 例如 fun 當初學習JavaScript的時候,想學習輪播圖是怎麽寫的,結果在百度搜了半天也很難搜出一個完整的輪播圖案例。現在就分享一個用js寫的輪播圖供大家參考和學習,有什麽錯誤的地方或有更好

CSS/HTML/JS實現圖片

class fff 瀏覽器 tro back 全局 實現圖 func 原理 實現原理 將點擊的a標簽的href屬性值賦給img標簽的src屬性,這樣有個好處,就是如果瀏覽器不支持js的話,點擊a標簽也可跳轉到圖片地址看到圖片,不會影響內容的呈現 註:需要導入jquery

原生JavaScript實現無縫

原生 原生js ted 結束 阻止 time == 實現圖 put 無縫輪播圖是頁面常用的特效之一,然而在實際的開發過程中,大部分的開發者都會使用插件來對輪播圖進行開發,那麽它的底層到底是怎麽實現的呢,本文章將圍繞這一問題展開探討。 在討論如何利用原生JS實現圖片之間無縫切

使用JQuery實現圖片效果

left 簡述 flow href 集合 jpg -i round 輪播 【效果如圖】 【原理簡述】 這裏大概說一下整個流程: 1,將除了第一張以外的圖片全部隱藏, 2,獲取第一張圖片的alt信息顯示在信息欄,並添加點擊事件 3,為4個按鈕添加點擊偵聽,點擊相應的按鈕,用

react-native 完整實現登錄功能

lte framework eat urn 回調 pad 文件 bean ont react native實現登錄功能,包括ui的封裝、網絡請求的封裝、導航器的實現、點擊事件。 demo下載:react-native 完整實現登錄功能 後臺如果是springmvc實現的

原生js面向對象實現簡單

get 輪播效果 his 基本實現 詳細 bottom style 距離 簡單的 平時中我習慣用jquery寫輪播效果,實現過程不是很難,也很方便,為了加深對js面向對象的理解,我打算用面向對象實現一個簡單的輪播,這裏采用了字面量的方式實現。為了實現這個過程,我們要自己動手

原生JS實現圖片

讓其 gin 偏移量 adding char 效率 lin doc 動畫效果 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8">

Flexslider插件實現圖片、文字圖片相結合滑動切換效果

remove 12px body 類型 ons art cal 選項 csharp 插件下載:   點擊下載 密碼: fbeg Flexslider具有以下特性: 支持滑動和淡入淡出效果。 支持水平、垂直方向滑動。 支持鍵盤方向鍵控制。 支持觸控滑動。 支

JQuery實現旋轉

ann ima query 500px RR nbsp AS HR ++ css部分 <style> *{ margin: 0; padding: 0; } .co

使用Ajax+jQuery來實現前端收到的數據在console上顯示+簡單的主頁設計與bootstrap插件實現圖片

value size 靠譜 實現圖 active length oot function 想要 1.實現前端輸入的數據在console上顯示 上一篇是解決了在前端的輸入信息在cygwin上顯示,這次要給前臺們能看見的數據,因為數據庫裏插入的數據少,所以寫的語句翻來覆去就那幾

[JavaScript]使用jQuery實現無縫

方式 child margin blog turn use leave 分享 不同的 代碼鏈接:我的GitHub 項目預覽:預覽 目的:通過CSS + jQuery的方式實現自動無縫輪播。 上一篇博文總結了使用jQuery實現輪播,雖然是自動輪播,但是這個輪播有個不足之處:

SharePoint framework學習筆記——實現bootstrap效果

ots += [] http true ble work erb sequence 要實現的效果:根據不同列表名查詢不同的輪播數據 數據從SharePoint站點查詢出 項目目錄: 站點數據: 1. 創建spfx項目:詳見SharePoint framewor

JQuery實現

<div class="carousel-figure clearfix"> <div class="carsoul-box clearfix"> <a class="ig" href="#"><img src="image/

react native Animated簡單使用方法

import { Animated, } from 'react-native'; constructor(props){ super(props) this.state={ fadeInOpacity: new Animate

jq實現碎片

效果如下: 實現原理:將背景圖片分成100等分 實現寬高從0到他們本身的寬高的動 畫 html <div id="banner"> <div id="pic"> <ul> <li class="ac

JQ實現簡易

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ini