Giter VIP home page Giter VIP logo

gallery-by-react's Introduction

Gallery By React

Build Status Dependency Status

使用ReactJS构架的图片画廊应用-为慕课网《React实战》课程对应的实战项目

Demo & Examples

Live demo: http://materliu.github.io/gallery-by-react/

To build the examples locally, run:

npm install
grunt serve

Then open http://localhost:8000/webpack-dev-server/ in a browser.

Guideline

不建议大家直接照搬源代码,可利用其中的一些资源文件,比如说图片,Icon Font文件等,最好的实践过程是跟着课程一步步构建你自己的图片画廊应用。

求赞

来吧,小伙伴们,不要吝啬你们的赞了,这样才能让更多的同学看到并学习本项目。

Gratitude

Browser Support

IE Chrome Firefox Opera Safari
IE 10+ ✔ Chrome 4.0+ ✔ Firefox 10.0+ ✔ Opera 15.0+ ✔ Safari 4.0+ ✔

gallery-by-react's People

Contributors

materliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gallery-by-react's Issues

VM2441:69Uncaught TypeError: _react2.default.findDOMNode is not a function

require('normalize.css/normalize.css');
require('styles/App.css');
import React from 'react';

// let yeomanImage = require('../images/yeoman.png');
var imageDatas = require('../data/imageDatas.json')
// 图片信息转成图片路径信息
imageDatas = (function(imageDatasArr) {
for (var i = 0; i < imageDatasArr.length; i++) {
var singeImageData = imageDatasArr[i];
singeImageData.imageURL = require('../images/'+singeImageData.filename);
singeImageData.key = require('../images/'+singeImageData.filename);
imageDatasArr[i] = singeImageData;
}
return imageDatasArr
})(imageDatas);
var ImgFigure = React.createClass({
render() {
return (


{this.props.data.title}/




{this.props.data.title}




);
}
});
var AppComponent = React.createClass({
Canstant: {
centerPos:{
left:0,
top:0
},
hPosRange:{
leftSecX:[0,0],
rightSecX:[0,0],
y:[0,0]
},
vPosRange:{
x:[0,0],
topY:[0,0]
}
},
componentDidMount:function() {
var stageDom = React.findDOMNode(this.refs.stage),
stageW = stageDom.scrollWidth,
stageH = stageDom.scrollHeight,
halfStageW = Math.ceil(stageW/2),
halfStageH = Math.ceil(stageH/2);
var imgFigureDom = React.findDOMNode(this.refs.imgFigure0),
imgW = imgFigureDom.scrollWidth,
imgH = imgFigureDom.scrollHeight,
halfImgW = Math.ceil(imgW/2),
halfImgH = Math.ceil(imgH/2);
this.Canstant.centerPos = {
left:halfStageW-halfImgW,
top:halfStageH-halfImgH
}
this.Canstant.hPosRange.leftSecX[0] = -halfImgW;
this.Canstant.hPosRange.leftSecX[1] = halfStageW - halfImgW_3;
this.Canstant.hPosRange.rightSecX[0] = halfStageW - halfImgW;
this.Canstant.hPosRange.rightSecX[1] = stageW - halfImgW;
this.Canstant.hPosRange.y[0] = - halfImgH;
this.Canstant.hPosRange.y[1] = stageH - halfImgH;
this.Canstant.vPosRange.topY[0] = -halfImgH;
this.Canstant.vPosRange.topY[1] = halfStageH - halfImgH_3;
this.Canstant.vPosRange.x[0] = halfImgW - imgW;
this.Canstant.vPosRange.x[1] = halfImgW;
},
render:function() {
var controllerUnits = [],
imgFigures = [];
imageDatas.forEach(function(value,index) {
imgFigures.push(<ImgFigure data={value} key={'imgFigure'+index} ref={'imgFigure'+index}/>)
});
return (


{imgFigures}


{controllerUnits}


);
}
});

AppComponent.defaultProps = {
};

export default AppComponent;

热更新失效

这份代码热更新好像失效了。我测试一下 ,只有取消autoprefixer-loader这个插件的时候热更新才会有用。这是为什么呀。老师能解答一下吗?

hi

hi @materliu ,请问下什么时候在慕课网更新,这个工程构建看不懂,能不能着重讲下;index.html之前没有引用css,运行之后怎么就出来了?

感谢老师!!

不错的教程,希望有关于react-router的教程,react-router路由刷新时页面丢失是不是应该配置服务器呢?

作用域的问题

require('normalize.css/normalize.css');
require('styles/App.styl');

import React from 'react';

// 获取相关数据 json 文件

var imageDatas = require('../data/imageDatas.json');
window.console.log(imageDatas);

/**
 * 通过filename,拼接文件名,拿到图片URL,为对象添加imageURL属性
 * @param  {Array}
 * @return {Array}
 */

imageDatas = ((imageDatasArr) => {
  for (let i = 0; i < imageDatasArr.length; i++) {
    let singleImageDara = imageDatasArr[i];
    singleImageDara.imageURL = require('../images/'+singleImageDara.fileName);
    imageDatasArr[i] = singleImageDara;
  }
})(imageDatas);

let controllerUnits,imgFigures = [];

window.console.log(imageDatas);

imageDatas.forEach((value,index) =>{
  imgFigures.push(<ImgFigure data = {value} key={'imgFigures'+index}/>);
});

class ImgFigure extends React.Component {
  render() {
    return (
      <figure>
        <img src={this.props.data.imageURL}
            alt={this.props.data.title}/>
        <figurecaption>
          <h2>{this.props.data.title}</h2>
        </figurecaption>
      </figure>
    );
  }
}

class AppComponent extends React.Component {
 render() {
    return (
      <section className="stage">
        <section className="img-sec">
          {imgFigures}
        </section>
        <nav className="controller-nav">
          {controllerUnits}
        </nav>
      </section>
    );
  }

}


AppComponent.defaultprops = {

};

export default AppComponent;
[Object, Object, Object, Object, Object, Object, Object, Object] // 第一个log,且里面有imageURL属性
undefined // 第二个log
Main.js?7cd4:30 Uncaught TypeError: Cannot read property 'forEach' of undefined

为什么会是这个样子?为什么这么魔性哦?看了3、4个小时没看懂。写到render里面也是undefined

Firefox 图片翻转问题

老师好,按照教程完成之后发现firefox(电脑是mac)翻转之后显示的是图片和title的背面,尝试修改了figure当中img的backface-visibility(设置为hidden)和figcaption的transform-style(设置为preserve-3d),但是修改之后会导致.img-back的绝对定位出错,附件为firefox上dian'ji点击图片翻转后的效果以及firefox的版本信息。
firefox issue
firefox version

IE10 图片翻转Bug

老师,您的demo在IE10打开,图片翻转时,看不到背面的图片描述,而是正面做了镜面翻转,像Safari修复前一样,应该怎么处理?

以下两句何解啊,老师!

 if (imgsArrangeTopArr && imgsArrangeTopArr[0]) {
   imgsArrangeArr.splice(topImgSpliceIndex, 0, imgsArrangeTopArr[0]);
 }

 imgsArrangeArr.splice(centerIndex, 0, imgsArrangeCenterArr[0]);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.