Coder Social home page Coder Social logo

alvarotrigo / vue-fullpage.js Goto Github PK

View Code? Open in Web Editor NEW
1.8K 32.0 254.0 2.69 MB

Official Vue.js wrapper for fullPage.js http://alvarotrigo.com/vue-fullpage/

License: GNU General Public License v3.0

Vue 58.14% JavaScript 20.60% HTML 21.26%
vue vuejs vue-wrapper fullpage fullpagejs javascript vue-components onepage snap fullscreen

vue-fullpage.js's Introduction

Vue-fullpage.js - Official Vue.js 3 wrapper

preview

Official Vue.js 3 wrapper for the fullpage.js library.

vue-fullpage.js version

Table of contents

Installation

Terminal:

// With npm
npm install --save vue-fullpage.js

License

Commercial license

If you want to use fullPage to develop nonopen sourced sites, themes, projects, and applications, the Commercial license is the appropriate license. With this option, your source code is kept proprietary. This means, you won't have to change your whole application source code to an open-source license. [Purchase a Fullpage Commercial License]

Open source license

If you are creating an open-source application under a license compatible with the GNU GPL license v3, you may use fullPage under the terms of the GPLv3.

You will have to provide a prominent notice that fullPage.js is in use. The credit comments in the JavaScript and CSS files should be kept intact (even after combination or minification).

Read more about fullPage's license.

Example

// With npm
cd example/
npm install
npm run start

Usage

Bundler (Vite)

import { createApp } from 'vue'
import App from './App.vue'

import 'vue-fullpage.js/dist/style.css'
import './fullpage.scrollHorizontally.min' // Optional. When using fullpage extensions
import VueFullPage from 'vue-fullpage.js'

const app = createApp(App)
app.use(VueFullPage)
app.mount('#app')

Notice that when using the option scrollOverflow:true or any fullPage.js extension you'll have to include the file for those features before the vue-fullpage component.

Browser

You can check a browser stand-alone demo here.

<!-- On the page head -->
<link
  rel="stylesheet"
  href="https://unpkg.com/vue-fullpage.js/dist/style.css"
/>

<!-- Include after Vue (before closing body) -->
<script type="module" src="https://unpkg.com/vue-fullpage.js/dist/vue-fullpage.es.js"></script>

Required HTML

This wrapper creates a <full-page> component , which you can use like other Vue.js components. For example:

<div>
  <full-page ref="fullpage" :options="options" id="fullpage">
    <div class="section">First section ...</div>
    <div class="section">Second section ...</div>
  </full-page>
</div>

Options

You can use any options supported by fullPage.js library. Just pass the options object into this wrapper like Vue.js property. Options object can contain simple options as well as fullPage.js callbacks.

Notice that if you want to make use of the option scrollOverflow:true, you'll have to include the scrollOverflow file before vue-fullpage.js, as detailed above.

Example:

export default {
  data() {
    return {
      options: {
        licenseKey: 'YOUR_KEY_HERE',
        menu: '#menu',
        anchors: ['page1', 'page2', 'page3'],
        sectionsColor: ['#41b883', '#ff5f45', '#0798ec'],
      },
    }
  }
}

Delayed init

Full-page will init itself automatically on mount. This may not work properly when using async components inside its sections, as it has no way of knowing when said components are ready and mounted.

Use the skipInit prop to stop full-page from initializing itself. You can do it when youself by using a ref like:

<full-page ref="fullpage" :options="options" :skip-init="true"></full-page>
methods: {
  // Called when your components are ready. That is up to you to decide when.
  componentsReady() {
    this.$refs.fullpage.init()
  }
}

Methods

You can make use of any of the methods provided by fullPage.js by accessing the instance object via the reference $refs.fullpage.api.

Example:

<template>
  <div>
    <full-page ref="fullpage" :options="options">
      <div class="section">
        <button class="next" @click="$refs.fullpage.api.moveSectionDown()">
          Next
        </button>
        Section 1
      </div>
      <div class="section">
        <button class="prev" @click="$refs.fullpage.api.moveSectionUp()">
          Prev
        </button>
        Section 2
      </div>
    </full-page>
  </div>
</template>

Similar you can call any method of fullPage.js library directly on Javascript:

fullpage_api.setAllowScrolling(false)

Callbacks

As mentioned above you can pass callbacks through options object:

<template>
  <div>
    <full-page ref="fullpage" :options="options">
      <div class="section">First section ...</div>
      <div class="section">Second section ...</div>
    </full-page>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        options: {
          afterLoad: this.afterLoad,
        },
      }
    },

    methods: {
      afterLoad() {
        console.log("Emitted 'after load' event.")
      },
    },
  }
</script>

Or you can use the standard approach for event handling of Vue.js:

<template>
  <div>
    <full-page @after-load="afterLoad"> .... </full-page>
  </div>
</template>
<script>
  export default {
      methods: {
        afterLoad() {
          ...
        }
      }
    }
</script>

Similarly, you can handle any event of the fullPage.js library. Just translate camelCase name of callback to kebab-case and use it ;)

Dynamic changes

vue-fullpage.js will watch all changes taking place within the fullpage.js options but will NOT automatically watch any DOM changes. If you want vue-fullpage.js to react to DOM changes call the build() method after making those changes. For example:

//creating the section div
var section = document.createElement('div')
section.className = 'section'
section.innerHTML = '<h3>New Section</h3>'

//adding section
document.querySelector('#fullpage').appendChild(section)

//where --> var vm = new Vue({...}) if calling it from outside.
vm.$refs.fullpage.build()

//or, when calling it from inside the Vue component methods:
this.$refs.fullpage.build()

In order for fullPage.js to get updated after a change in any of the fullPage.js options, you'll have to make sure to use such an option in the initialization.

For example, if we want fullPage.js to get updated whenever I change the scrollBar and controlArrows options, I'll have to use the following initialisation:

export default {
  data() {
    return {
      options: {
        licenseKey: 'YOUR_KEY_HERE',
        controlArrows: true,
        scrollBar: true,
      },
    }
  },
}

Usage with Nuxt.js

Use the nuxt-fullpage module in order to use Nuxt with vue-fullpage.js.

🚧 Usage with Gridsome

TBD

Contributing

Please see Contributing to fullpage.js

Resources

vue-fullpage.js's People

Contributors

alvarotrigo avatar chiaparini avatar dependabot[bot] avatar dobromir-hristov avatar ebisbe avatar imnak avatar jonathanschndr avatar na399 avatar sarahdayan avatar thedevluffy avatar vaso2 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

vue-fullpage.js's Issues

Getting "TypeError: Vue.component is not a function"

I'm running a fairly complex setup and trying to use fullpage on my homepage and getting the above error in the component I'm using fullpage in. It seems to trace back to vue-fullpage.js.

function plugin(Vue) {
  Vue.component('full-page', _FullPage2.default);
}

I can't seem to figure it out and tried all sorts of configurations... Here is the repo if you'd like to pull it down and test it out: https://github.com/atflick/jss-vue

My setup is below

import Vue from 'vue';
import Meta from 'vue-meta';
import VueApollo from 'vue-apollo';
import { SitecoreJssPlaceholderPlugin } from '@sitecore-jss/sitecore-jss-vue';
import AppRoot from './AppRoot';
import { createRouter } from './router';
import SitecoreJssStorePlugin from './lib/SitecoreJssStorePlugin';
import GraphQLClientFactory from './lib/GraphQLClientFactory';
import config from './temp/config';
import componentFactory from './temp/componentFactory';
import FullPage from 'vue-fullpage.js';

Vue.use(Meta);
Vue.use(SitecoreJssStorePlugin);
Vue.use(SitecoreJssPlaceholderPlugin, { componentFactory });
Vue.use(VueApollo);
Vue.use(FullPage);

// createApp is invoked by both the main and SSR entry points, so the two entry points can use the same app creation process.
export function createApp(initialState, i18n) {
  Vue.config.productionTip = false;

  const router = createRouter();
  const graphQLProvider = createGraphQLProvider(initialState);

  const vueOptions = {
    router,
    provide: graphQLProvider.provide(),
    render: (createElement) => createElement(AppRoot),
  };
  // conditionally add i18n to the Vue instance if it is defined
  if (i18n) {
    vueOptions.i18n = i18n;
  }

  const app = new Vue(vueOptions);

  // if there is an initial state defined, push it into the store, where it can be referenced by interested components.
  if (initialState) {
    app.$jss.store.setSitecoreData(initialState);
  }

  return { app, router, graphQLProvider };
}

export function createGraphQLProvider(initialState) {
  const client =
    initialState && initialState.APOLLO_STATE
      ? GraphQLClientFactory(config.graphQLEndpoint, false, initialState.APOLLO_STATE)
      : GraphQLClientFactory(config.graphQLEndpoint, true);

  const provider = new VueApollo({
    defaultClient: client,
  });

  return provider;
}

component I'm using it in...

<template>
  <div class="home-fixed-panel" id="fixed-panel" v-on:scroll="onScroll">
    <div class="home-fixed-panel-inner" :class="{ '-is-fixed': isFixed, '-is-bottom': isBottom }">
      <sc-text tag="h3" :field="fields.heading" />
    </div>
    <sc-placeholder name="home-panels" :rendering="rendering" />
    <full-page ref="fullpage" :options="options" id="fullpage">
      <div class="section">
        First section ...
      </div>
      <div class="section">
        Second section ...
      </div>
    </full-page>
  </div>
</template>

<script>
import { Placeholder, Text } from '@sitecore-jss/sitecore-jss-vue';
import FullPage from 'vue-fullpage.js';


export default {
  name: 'HomeFixedPanel',
  components: {
    ScText: Text,
    ScPlaceholder: Placeholder,
    FullPage
  },
  props: {
    rendering: {
      type: Object,
    },
    fields: {
      type: Object,
      default: () => ({}),
    },
  },
  data() {
    return {
      isFixed: false,
      isBottom: false,
      options: {}
    }
  },
  methods: {
    onScroll() {
      const fixedPanel = document.getElementById('fixed-panel'),
            fixedOffset = fixedPanel.offsetTop,
            fixedBottom = fixedOffset + fixedPanel.innerHeight - window.innerHeight;

      if(window.scrollY > fixedBottom) {
        this.isFixed = false;
        this.isBottom = true;
      } else if (window.scrollY < fixedOffset) {
        this.isFixed = false;
        this.isBottom = false;
      } else if (window.scrollY >= fixedOffset) {
        this.isFixed = true;
        this.isBottom = false;
      }
    }
  },
  created() {
    window.addEventListener('scroll', this.onScroll);
  }
};
</script>

Thanks!

Errors while Installing the Webpack demo

Hey,
the described installation steps for webpack demo are leading to errors in my case.

Only after removing package-lock.json file in the demos/wepback directory and running the command npm install --save vue-fullpage.js I could finally run npm install without any errors and then npm run dev lead to the functioning demo

Dynamically generated sections

Hi

Thanks for the cool component!

I'd like to add a varying number of sections dynamically during compile time, but I get an error saying, that fullpage can only be initialized once. How would it be possible to achieve what I'm trying to?


<template>
  <div>
      <full-page :options="options" v-for="s in sections" :key="s.Index">
        <full-page-section :section="s" />
      </full-page>
  </div>
</template>

Many thanks for any ideas
dsheyp

Compiling error using vue-cli

Error:

Add @babel/plugin-proposal-object-rest-spread (https://git.io/vb4Ss) to the 'plugins' section of your Babel config to enable transformation.

My .babelrc:

{
  "presets": [
    "@vue/app"
  ],
  "plugins": [
    "transform-object-rest-spread",
    "@babel/plugin-proposal-object-rest-spread"
  ]
}

Build trace:

Trace: The node type SpreadProperty has been renamed to SpreadElement
    at Object.isSpreadProperty (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/types/lib/validators/generated/index.js:4080:11)
    at hasSpread (/Users/mrleblanc/GitHub/portfolio/node_modules/babel-plugin-transform-object-rest-spread/lib/index.js:38:13)
    at PluginPass.ObjectExpression (/Users/mrleblanc/GitHub/portfolio/node_modules/babel-plugin-transform-object-rest-spread/lib/index.js:234:14)
    at newFn (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/visitors.js:243:21)
    at NodePath._call (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/path/context.js:65:18)
    at NodePath.call (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/path/context.js:40:17)
    at NodePath.visit (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/path/context.js:100:12)
    at TraversalContext.visitQueue (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/context.js:144:16)
    at TraversalContext.visitMultiple (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/context.js:99:17)
    at TraversalContext.visit (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/context.js:183:19)
    at Function.traverse.node (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/index.js:106:17)
    at NodePath.visit (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/path/context.js:107:18)
    at TraversalContext.visitQueue (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/context.js:144:16)
    at TraversalContext.visitSingle (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/context.js:104:19)
    at TraversalContext.visit (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/context.js:185:19)
    at Function.traverse.node (/Users/mrleblanc/GitHub/portfolio/node_modules/@babel/traverse/lib/index.js:106:17)

Lazyload images doesn't seem to work

I tried to lazyload images
<img src="" data-src="someimage.jpg" alt="some image">

and in the options lazyLoading: true is set.

But in the rendered page just a broken image icon is shown.

EDIT: Actually, I try to lazyload an animated svg, maybe this might be the problem.

2nd EDIT: I tried a jpg – same result.

Error in mounted hook: "ReferenceError: $ is not defined"

The plugin fullpage.js is not initialized because of this error.
I have followed the instructions from the readme and some past issues, following the examples but still can't work.

Here are my imports in index.html

<head>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/animate.min.css">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp"
    crossorigin="anonymous">
  <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.5/jquery.fullpage.min.css">
</head>

<body style="margin: auto;">
  <div id=app></div>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.5/jquery.fullpage.min.js"></script>
<script type="text/javascript" src="build.js"></script>

Here is my usage, in a single component file, following the tutorial.

<template>
  <div>
    <full-page :options="options">
      <div class="section">
        First section ...
      </div>
      <div class="section">
        Second section ...
      </div>
    </full-page>
  </div>
</template>

<script>
  import fullPage from 'vue-fullpage.js';

  export default {
    components: {
      fullPage,
    },

    data() {
      return {
        options: {
          paddingTop: '30px'
        },
      }
    },
  }
</script>

This are my dependencies in package.json

"dependencies": {
    "animate.css": "^3.6.1",
    "animated-vue": "^0.5.3",
    "fullpage.js": "^2.9.7",
    "vue": "^2.5.2",
    "vue-fullpage.js": "0.0.1",
    "vue-quick-menu": "^1.0.7",
    "vue-router": "^3.0.1",
    "vue-typer": "^1.2.0",
    "vue2-animate": "^2.0.0",
    "jquery": ">=1.6.0"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.2",
    "babel-core": "^6.22.1",
    "babel-helper-vue-jsx-merge-props": "^2.0.3",
    "babel-loader": "^7.1.1",
    "babel-plugin-syntax-jsx": "^6.18.0",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-plugin-transform-vue-jsx": "^3.5.0",
    "babel-preset-env": "^1.3.2",
    "babel-preset-stage-2": "^6.22.0",
    "chalk": "^2.0.1",
    "copy-webpack-plugin": "^4.0.1",
    "css-loader": "^0.28.0",
    "extract-text-webpack-plugin": "^3.0.0",
    "file-loader": "^1.1.4",
    "friendly-errors-webpack-plugin": "^1.6.1",
    "html-webpack-plugin": "^2.30.1",
    "node-notifier": "^5.1.2",
    "node-sass": "^4.9.0",
    "optimize-css-assets-webpack-plugin": "^3.2.0",
    "ora": "^1.2.0",
    "portfinder": "^1.0.13",
    "postcss-import": "^11.0.0",
    "postcss-loader": "^2.0.8",
    "postcss-url": "^7.2.1",
    "rimraf": "^2.6.0",
    "sass-loader": "^7.0.3",
    "semver": "^5.3.0",
    "shelljs": "^0.7.6",
    "style-loader": "^0.21.0",
    "uglifyjs-webpack-plugin": "^1.1.1",
    "url-loader": "^0.5.8",
    "vue-loader": "^13.3.0",
    "vue-particles": "^1.0.9",
    "vue-style-loader": "^3.0.1",
    "vue-template-compiler": "^2.5.2",
    "webpack": "^3.6.0",
    "webpack-bundle-analyzer": "^2.9.0",
    "webpack-dev-server": "^2.9.1",
    "webpack-merge": "^4.1.0"
  },
  "engines": {
    "node": ">= 6.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]

And lastly, this is vue.config.js

const webpack = require('webpack');

module.exports = {
  configureWebpack: {
    plugins: [
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'window.jQuery': 'jquery'
      })
    ]
  }
}

I am using vue-cli webpack for this project. Did I miss any steps in the setup? Why is the cause of the error? Thanks.

Compiling Error using parcel

I cannot compile my project due to strange errors because there are "..." in some lines in FullPage.vue

....\node_modules\vue-fullpage.js\src\FullPage.vue:34:10: Unexpected token (34:10)
  32 |       events: constants.EVENTS.reduce((eventsHandlers, event) => {
  33 |         return {
> 34 |           ...eventsHandlers,
     |           ^
  35 |
  36 |           [event]: (...args) => {
  37 |             this.emitEvent(event, args);

Nested full-page components

Hi Alvaro,

first of all great work on the package, thank you!

We're considering to purchase a license for your product, but we're not sure if it completely covers our use case 🤔

Is it possible to have a component inside of a component? Basically we need a full page scroll on first scroll, then content sliding (or fading) in on second scroll, then another full page scroll on third scroll, and so on.. If this is possible, would you kindly give me some pointers on how to go about such structure/functionality in vue-fullpage?

Thanks in advance!

Module parse failed: Unexpected token @ fullpage.vue

I tried integrating my vue-fullpage.js component since Iam rebuilding an original website with Vue.js.

So I followed the Tutorial and there is 1 Error I can't seem to fix when importing
"import FullPage from 'vue-fullpage.js'":

ERROR in ./node_modules/vue-fullpage.js/src/FullPage.vue
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
| <!--
| * vue-fullpage.js - fullPage.vue
| * https://github.com/alvarotrigo/vue-fullpage.js
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/Modules/FullpageSections/Section1.vue 246:0-39
@ ./src/components/Modules/FullpageSections/Section1.vue
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/App.vue
@ ./src/components/App.vue
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://localhost:3000 ./src/main.js ./src/assets/scss/main.scss

My Package.json looks like this:

{
"name": "pialconsult",
"version": "1.0.0",
"description": "homepage",
"scripts": {
"start": "webpack-dev-server",
"build": "webpack"
},
"author": "PiAl",
"devDependencies": {
"autoprefixer": "^8.6.5",
"axios": "^0.16.2",
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.0",
"babel-preset-stage-3": "^6.24.1",
"babel-runtime": "^6.25.0",
"css-loader": "^0.28.11",
"extract-text-webpack-plugin": "^3.0.2",
"file-loader": "^0.11.2",
"node-sass": "^4.9.2",
"postcss-loader": "^2.1.5",
"sass-loader": "^7.0.3",
"style-loader": "^0.21.0",
"vue": "^2.4.2",
"vue-axios": "^2.0.2",
"vue-loader": "^13.0.5",
"vue-router": "^2.7.0",
"vue-template-compiler": "^2.4.4",
"webpack": "^3.12.0",
"webpack-dev-server": "^2.9.1"
},
"dependencies": {
"bootstrap": "^4.1.1",
"jquery": "^3.3.1",
"popper.js": "^1.14.3",
"vue-fullpage.js": "0.0.1"
}
}

Snippet from the Webpack.config.json:

{
                // Ask webpack to check: If this file ends with .vue, then apply some transforms
                test: /\.vue$/,
                // don't transform node_modules folder (which don't need to be compiled)
                exclude: /(node_modules|bower_components)/,
                // Transform it with vue
                use: {
                    loader: 'vue-loader',
                    options: {
                        loaders: {
                            'scss': 'vue-style-loader!css-loader!sass-loader',
                            'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax',
                            'js': 'babel-loader'
                        }
                    }
                }
            }

Cannot set property 'wheelOn' of undefined

updated the plugin to the latest release 0.0.5

and im getting the following error
Cannot set property 'wheelOn' of undefined

i am using nuxt js

import 'fullpage.js/vendors/scrolloverflow.min' // Optional. When using scrollOverflow:true
import VueFullPage from 'vue-fullpage.js'


Vue.use(VueFullPage);

nuxt.config.js file

build: {
        plugins: [
            new webpack.ProvidePlugin({
                $: 'jquery',
                jQuery: 'jquery',
                'window.jQuery': 'jquery',
                IScroll: '~/plugins/scrolloverflow.min',

            })
        ]
    }

Scrolloverflow breaks Vue - components inside section/slide broken due to DOM changes.

So I noticed when using vue-fullpage with scrollOverflow: true that sometimes after resizing the screen or explicitly calling the reBuild() event from the API my components would no longer respond to user interaction and could not be found when inspecting them using the Chrome Vue Devtools.

I ended up realizing that the scrollOverflow script basically creates or destroys the scroll wrapper object depending on whether or not it's needed for the current screen/content size. I narrowed down the breaking code to line 2499/2500 (see https://github.com/alvarotrigo/fullPage.js/blob/master/vendors/scrolloverflow.js):

    //unwrapping...
   $('.fp-scroller', element)[0].outerHTML = $('.fp-scroller', element)[0].innerHTML;
   $(SCROLLABLE_SEL, element)[0].outerHTML = $(SCROLLABLE_SEL, element)[0].innerHTML;

This results in the .fp-scroller and .fp-scrollable divs from being removed from the DOM and your main content section will appear back in it's "original" location in the DOM (hence the term "unwrapping"). I think the problem though, is that Vue does not jive well with this unwrapping business, where the component is essentially lost since you are removing it's parent from the DOM.

My (kind of bad) solution I cooked up quickly was to not "unwrap" the sections, but instead swap the scroll related classes for "temp marker classes".

    //unwrapping...
    $('.fp-scroller', element)[0].parentNode.className = 'fp-scrollable-temp';
    $('.fp-scroller', element)[0].parentNode.children[0].className = 'fp-scroller-temp';

Then I simply swap back to the original classes upon the next creation event (if needed) - by modifying the "remove" function (starting line 2486)::

//needs scroll?
                    if ( contentHeight > scrollHeight) {
                        //did we already have an scrollbar ? Updating it
                        
                        if(scrollable != null){
                            if($('.fp-scroller-temp', element)[0] != null) {
                                $('.fp-scroller-temp', element)[0].parentNode.children[0].className = 'fp-scroller';
                                $('.fp-scrollable-temp', element)[0].parentNode.children[0].className = 'fp-scrollable';
                            }
                            scrollOverflowHandler.update(element, scrollHeight);
                        }
                         //creating the scrolling
                        else{
                            if($('.fp-scroller-temp', element)[0] != null) {
                                $('.fp-scroller-temp', element)[0].parentNode.children[0].className = 'fp-scroller';
                                $('.fp-scrollable-temp', element)[0].parentNode.children[0].className = 'fp-scrollable';
                                scrollOverflowHandler.update(element, scrollHeight);
                            }
                            else {
                                if(self.options.verticalCentered){
                                    fp_utils.wrapInner($(TABLE_CELL_SEL, element)[0], wrap.scroller);
                                    fp_utils.wrapInner($(TABLE_CELL_SEL, element)[0], wrap.scrollable);
                                }else{
                                    fp_utils.wrapInner(element, wrap.scroller);
                                    fp_utils.wrapInner(element, wrap.scrollable);
                                }
                            }
                            scrollOverflowHandler.create(element, scrollHeight, self.iscrollOptions);
                        }
                    }

After making these changes I am able to resize my window and call reBuild() all I want and nothing Vue related breaks. The scrolling also works perfectly with overflow items dynamically becoming scrollable where needed. Hopefully you can confirm my issue here and provide a nicer solution then presented here (as I am not a Javascript or Vue expert).

Issues with v-if/v-show

Hi there,

I've built a Vue app that has dynamic sections and uses Vuex. Some sections are shown and hidden according to user interaction (think wizard). However, when I call the following, all state seems to be broken... is it possible to moveSectionDown to the next visible section?

this.$refs.fullpage.build();
this.$refs.fullpage.api.moveSectionDown();

I've tried both v-show and v-if on the sub-components:

<template>
  <full-page ref="fullpage" :options="options" id="wizard">
    <component
      v-for="(c, index) in this.$store.state.components"
      :is="c.name"
      :parentRefs="$refs"
      v-if="c.visible"></component>
  </full-page>
</template>

Cheers in advance!
Rikki

How to set licenseKey?

I use this libray , and following document to run my project
fullPage: Fullpage.js version 3 has changed its license to GPLv3 and it requires a licenseKey option.
message
How to set licenseKey???
thanks!!!

Failed to Compile Error?

I am getting the following error on my dev webpack vue project.
I'm installed fullpage.js in addition to vue-fullpage.js via npm, is there any other dependency I am missing here?

./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue
Module not found: Error: Can't resolve 'FullPage' in 'C:\Users\Andrew\PROJECTS\portfolio\src'
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue 15:0-32
@ ./src/App.vue
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

Module build failed: SyntaxError: Unexpected token

when i import fullpage in my project and run 'npm run dev',there is an error in the below,is there something i missed? thanks a lot
here is my code and error:

<template>
  <div id="app">
     <full-page :options="options">
     </full-page>
  </div>
</template>
<script>
import FullPage from '../assets/js/FullPage.vue';
components: {
    FullPage
  }
</script>

ERROR in ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/assets/js/FullPage.vue
Module build failed: SyntaxError: Unexpected token (34:12)

32 | events: constants.EVENTS.reduce((eventsHandlers, event) => {
33 | return {

34 | ...eventsHandlers,
| ^
35 |
36 | [event]: (...args) => {
37 | this.emitEvent(event, args);

@ ./src/assets/js/FullPage.vue 3:0-111 4:0-124
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/app.vue
@ ./src/components/app.vue
@ ./src/index.js
@ multi (webpack)-dev-server/client?http://0.0.0.0:8000 webpack/hot/dev-server ./src/index.js
Child html-webpack-plugin for "index.html":

Failed to mount component

When I tried out the basic usage I get this error. All dependencies installed. Any hints?

vue.esm.js?efeb:578 [Vue warn]: Failed to mount component: template or render function not defined.

found in

---> <FullPage>
       <App> at src/App.vue
         <Root>
warn @ vue.esm.js?efeb:578
23:05:49.499 

Thanks in advance.

Vue events are no longer called when fullpage is rebuild with build.

When the build method is called on vue-fullpage.js, any Vue event listers on an element within a Fullpage section or slide no longer work.

See demo on Codepen, note that the 'Hello' button on the first section will display an alert, however once a section is added and Fullpage is rebuilt, pressing the button no longer displays that alert.

This issue also affects Vue components, where the component is displayed inside of a Fullpage section/slide.

$ is not defined: best way to import jQuery

Hello! I'm having problems importing jQuery, this is my imports:

var $ = require('jquery')
  window.jQuery = $
  require('../vendor/fullpage/scrolloverflow.min.js')
  import * as fullpage from 'imports-loader?define=>false!../vendor/fullpage/fullPage'
  import FullPage from '../../node_modules/vue-fullpage.js/src/FullPage.vue'

I tryed also importing jQuery with ìmport $ from 'jquery'but console still says$ is not defined`. What am I doing wrong? Thanks a lot!
screen shot 2018-05-22 at 16 26 17

how can i use this in vue-cli

image

image

I have install vue-fullpage through npm install --save vue-fullpage.js.

and got error, please see details from above image

Question about demo

I was hoping someone could help clear up my confusion. The demo that comes with this package when downloading through npm (demo1) does not react to my changes. I keep changing things in the DemoApp.vue expecting it to be reflected in the vue component when viewing the dist/index.html but testing the demo page continues to reveal the same content. How do I change the demo's slide content?

<v-footer> does not appear when using fullpage comp

Hi there!

Trying to setup a footer into the last fullpage's section, although the footer isn't rendered at all. Even if we check at the DOM we can't find the code in place.

Is there some kind of restriction to combine both? Any tweaks to make it work?

Cheers.
Dan

Section doesn't move on clicking the Navigation button

Issue:
I've created a vue project (v-cli webpack project) which has two page(A an B,both vue-router components) .In each page I use fullpage component .

Now the scenario is, first I change route from A page to B page via clicking one button, then I realized no matter how I click the circle spot button in the right hand-side, the page won't scroll at all.

Any help would be greatly appreciated, thanks!

a.vue

<template>
  <full-page  ref="fullpagea" :options="options" id="fullpagea" >
    <div class="section">
    </div>
    <div class="section" >
    </div>
  </full-page>
</template>
<script>
export default {
  name: "testa",
  data() {
    return {
      options: {
        anchors: ["a1", "a2"],
        sectionsColor: ["blue", "#f6f6f9"],
        scrollingSpeed: 600,
        navigation: true,
      }
    };
  }
};
</script>

b.vue

<template>
  <full-page  ref="fullpageb" :options="options" id="fullpageb" >
    <div class="section">
    </div>
    <div class="section" >
    </div>
  </full-page>
</template>
<script>
export default {
  name: "testb",
  data() {
    return {
      options: {
        anchors: ["b1", "b2"],
        sectionsColor: ["red", "blue"],
        scrollingSpeed: 600,
        navigation: true,
      }
    };
  }
};
</script>

router/index.js

import Vue from 'vue'
import Router from 'vue-router'
import pA from '@/components/a'
import pB from '@/components/b'
Vue.use(Router)
export default new Router({
  routes: [
    {
      path: '/',
      name: 'pa',
      component: pA
    },
    {
      path: '/b',
      name: 'pb',
      component: pB
    }
  ]
})

App.vue

<template>
  <div id="app">
    <div style="position:absolute;height:100px;background:white;width:100%;z-index:100">
      <router-link  :to="{path:'/'}"  >one </router-link> 
      <router-link  :to="{path:'/b'}"  >two </router-link> 
    </div>
    <router-view/>
  </div>
</template>
<script>
export default {
  name: 'App'
}
</script>
<style>
html,body{
  width:100%;
  height:100%;
}
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  height:100%
}
</style>

Version

macOS: 10.12.6

Chrome: 67.0.3396.99

Vue CLI: 2.9.6

Vue: 2.5.2

Vue-rouer: 3.0.1

Vue-Fullpage.js: 0.0.5

fullpage 3.x.x

Hi

Is there any plan to upgrade this project to use the new release of fullpage without jQuery?

If so any ideas on timescales?

Thanks

Doing something wrong...

I am trying to call the silentMoveTo function after the OnLeave event trigger but it is creating an endless loop. Any advice would be welcome.

<full-page :options="options" @after-load="afterLoad" @on-leave="checkPage" id="fullpage">

The method is meant to check the pages 'current' variable (passed elsewhere) and if it equals 1, silently move from page1 to page2.

Methods:{
checkPage(){
          if(this.current == 1){
      			$.fn.fullpage.silentMoveTo('page1', 'page2');
      	   }
        },
}

I am able to alert() as intended when replacing the silentMoveTo() function with alert(). The endless loop occurs when I reference silentMoveTo()

Dependency was not found

Tried to install using npm, imported it in my main.js file and run npm run dev.

import Vue from 'vue'
import VueFullPage from 'vue-fullpage'
import App from './App'
import router from './router'

Vue.config.productionTip = false

Vue.use(VueFullPage)

/* eslint-disable no-new */
new Vue({
  el: '#portfolio',
  router,
  render: h => h(App)
})

After running it gives me error like below.

This dependency was not found:

* vue-fullpage in ./src/main.js
To install it, you can run: npm install --save vue-fullpage

How can I import FullPage component properly?

Hello, alvarotrigo. I use vue-fullpage.js in my project and follow your Basic usage guide. But I always get errors.

Following is my code:

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>demo</title>
    <link rel="stylesheet" href="./static/fullpage.js/jquery.fullpage.min.css">
  </head>
  <body>
    <div id="app"></div>
    <script src="./static/jquery/jquery.min.js"></script>
    <script src="./static/fullpage.js/jquery.fullpage.min.js"></script>
    <script src="/dist/build.js"></script>
  </body>
</html>

App.vue

<template>
  <full-page :options="options">
      <div class="section">
        section 1
      </div>
      <div class="section">
        section 2
      </div>
    </full-page>
</template>

<script>
import FullPage from 'vue-fullpage.js/src/FullPage';
import fullPageMixin from 'vue-fullpage.js/src/fullPageMixin';

export default {
  name: 'app',

  mixins: [fullPageMixin],

  components: {
    FullPage,
  },

  data() {
    return {
      options: {},
    };
  },
}
</script>

<style scoped>

</style>

then it will cause:

Module build failed: Error: Couldn't find preset "es2015" relative to directory "/path/to/node_modules/vue-fullpage.js"

I just don't want to use Vue.component. Can you tell me what I am doing wrong? Thanks a lot.

Couldn't get add slide to work

Regarding to the dynamic changes section in the manual dynamic changes

I tried to add slides dynamically on click and navigate to it.
(before I tried to show/hide dynamically on click, but this didn't work. With v-if I have to click three times to actually navigate and show the new slide, with v-show the newly added slide was just added below the current section – which is understandable as it can't be dynamically rendered by fullpage this way)

example:

…
<full-page :options="options" id="fullpage" ref="fullpage">
…
  <div class="section">
    <div class="slide">
      <button @click="addSlide()">
    </div>
  </div>
…
</full-page>
…

methods: {
  addSlide () {
    var slide = document.createElement('div');
    slide.className = 'slide';
    slide.innerHTML = '<p>An awesome new slide </p>';
    document.querySelector('#fullpage').appendChild(slide)
    this.$refs.fullpage.build();
    this.$refs.fullpage.api.moveSlideRight();
  }
},
…

So, I'm not rather sure if I'm just doing something completely wrong – OR – if the manual is faulty.
Everything is handled within the same component so far.

The reason is that I get the slide content via a v-for loop on a @click.
When I don't hide the slide before – an empty slide would be shown as long as the click method isn't executed.

–––
current vue.js: 2.5.17
current vue-fullpage.js: 0.0.5
current OS: macOS 10.12.6
current browser: Chrome 68.0

onLeave return false does not work

Hi there!

Seems like return false from onLeave callback does not work on vue-fullpage.js
It works on non vue version like described, but here it just does not cancel the scroll

data() {
  return {
    options: {
      onLeave: this.onLeave,
      ...
    }
  }
},
methods: {
  onLeave(i,n,d) {
    console.log('Leave event: ', i, n, d)
    return false
  }
}

onLeave is fired, and console log works, but it does not cancel the scroll after.

Am I missing something? Thnx

Slide is overlapping next section

Issue:

When I initialize a new project with sections and slides, the slides are always overlapping the upcoming section.

Two days ago, I opened an issue (#45) regarding scrollOverflow () as I thought the current issue might depend on this. After the issue was closed and scrollOverflow was added the right way, the overlapping issue still remains. Therefore, I thought it might depend on the used bulma/buefy frameworks, so I started from scratch. But nothing helped. The second slide is overlapping Section 4.

App.vue

<template>
  <div id="app">
    <full-page :options="options" id="fullpage" ref="fullpage">
      <div class="section">
        <h2>Section 1</h2>
      </div>
      <div class="section">
        <h2>Section 2</h2>
      </div>
      <div class="section">
        <!-- section 3 -->
        <div class="slide"><h2>Slide 1</h2></div>
        <div class="slide"><h2>Slide 2</h2></div>
      </div>
      <div class="section">
        <h2>Section 4</h2>
      </div>
      <div class="section">
        <h2>Section 5</h2>
      </div>
      <div class="section">
        <h2>Section 6</h2>
      </div>
      <div class="section">
        <h2>Section 7</h2>
      </div>
    </full-page>
  </div>
</template>

<script>
import Vue from "vue";
import "fullpage.js/vendors/scrolloverflow";
import VueFullPage from "vue-fullpage.js";

Vue.use(VueFullPage);

export default {
  name: 'app'
};
</script>

main.js

import Vue from "vue";
import App from "./App.vue";

Vue.config.productionTip = false;

new Vue({
  render: h => h(App)
}).$mount("#app");

Used tools and versions:

macOS: 10.12.6
Chrome: 68.0
Vue CLI: 3.0
Vue: 2.5.17
Vue-Fullpage.js: 0.0.5

Webpack Demo cannot run npm run build

I downloaded the webpack demo and customize it. It is running fine in dev but when I run
npm run build it throws this error
ERROR in build.js from UglifyJs Unexpected token: punc (()

Any idea where this is from? And what caused it?

Also, can we know the version of webpack used? It's probably relevant to that. Thank you!

fullpage is not defined

Hi there!
Iam still new to Vue and Fullpage, after the fix Iam using
"vue-fullpage.js": "0.0.3",

I want the FullpageJS only on one site (Index.vue) and not on all the other sites. So the localhost starts, but inside the browser i get that error message :"

bundle.js:73787 Uncaught ReferenceError: fullpage is not defined
at Object.disposed (bundle.js:73787)
at webpack_require (bundle.js:69868)
at Object.module.exports (bundle.js:73972)
at webpack_require (bundle.js:69868)
at bundle.js:69914
at bundle.js:69917
at webpackUniversalModuleDefinition (bundle.js:69841)
at Object.render (bundle.js:69848)
at webpack_require (bundle.js:20)
at Object. (bundle.js:22093)

I tried the Demo which was uploaded here and a different way like this Tutorial ( https://github.com/cheulong/vue-fullpage-scroll) but both seem to throw the same error.

Can you support me with integrating it?

My code looks as followed:

Main.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import VueVideoPlayer from 'vue-video-player'
import $ from 'jquery';
import 'bootstrap/dist/js/bootstrap.min.js'
import VueFullPage from 'vue-fullpage.js'
import './assets/js/global.js'
import 'video.js/dist/video-js.css'

import App from './components/App.vue'
import About from './components/Sites/About.vue'
import Consult from './components/Sites/Consult.vue'
import Contact from './components/Sites/Contact.vue'
import Customers from './components/Sites/Customers.vue'
import Msgpia from './components/Sites/Msgpia.vue'
import Index from './components/Sites/Index.vue'

Vue.use(VueVideoPlayer)
Vue.use(VueRouter)
Vue.use(VueFullPage)

const routes = [
 {
     name: 'About',
     path: '/about',
     component: About
 },
 {
     name: 'Index',
     path: '/index',
     component: Index
 },
 {
     name: 'App',
     path: '/',
     component: App,
     redirect: '/index'
 },
 {
    name: 'Consult',
    path: '/consult',
    component: Consult
},
{
   name: 'Contact',
   path: '/contact',
   component: Contact
},
{
   name: 'Customers',
   path: '/customers',
   component: Customers
},
{
   name: 'Msgpia',
   path: '/msgpia',
   component: Msgpia
}
];

var router = new VueRouter({
  mode: 'history',
  linkActiveClass: 'active',
  routes: routes
});

new Vue(Vue.util.extend({ router }, App)).$mount('#app')

index.html

<!DOCTYPE html>
<html lang="de" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge; IE=11">
    <link rel="icon" type="image/vnd.microsoft.icon" href="logo-small.ico">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/3.0.1/fullpage.min.css">

    <!--[if IE 9]>
    <script>window.alert("Your IE Version is not supported. Please update to Version 10 or higher")</script>
    <![endif]-->
    <!--[if lte IE 8]>
    <script>window.alert("Your IE Version is not supported. Please update to Version 10 or higher")</script>
    <![endif]-->
    <!--[if IE 7]>
    <script>window.alert("Your IE Version is not supported. Please update to Version 10 or higher")</script>
    <![endif]-->
    <title>My Homepage</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="bundle.js"></script>
  </body>
</html>

Index.vue

<template lang="html">
    <div id="fullpage" class="bgWhite">
        <full-page :options="options">
      <!-- erste Seite -->
      <div data-anchor="home" class="section container-fluid backgroundSurf">
          <div id="slide1" class="h-100 position-relative">
              <logo-small></logo-small>

              <div class="row">
                  <div id="slide1h1" class="col-sm-8">
                      <h1>Passion <br> für Versiche-rungssysteme</h1>
                  </div>
              </div>
              <div class="row pt-5">
                  <div class="offset-sm-1 col-sm-11 col-md-11 col-xl-8 textbox">
                      <p><span class="upperC">VERSICHERUNGS KNOW HOW | BERATUNG |</span></p>
                      <p><span class="upperC">USER EXPERIENCE& INTERFACE DESIGN |</span></p>
                      <p><span class="upperC">SOFTWARE DEVELOPING | msg.PIA |</span></p>
                      <p><span class="upperC">MALS | TIME2MARKET |  msg.CIA |</span></p>
                  </div>
              </div>
          </div>
      </div>
      <!-- erste Seite Ende -->
      <!-- zweite seite -->
      <div data-anchor="msgpia" class="section container-fluid bgGrey">
          <div id="slide2" class="h-100 position-relative">
              <logo-small></logo-small>

              <div class="row">
                  <div id="slide2h1" class="offset-xs-1 col-xs-8">
                      <h1 class="init">msg.PIA</h1>
                  </div>
              </div>
              <div class="row d-flex">
                  <div class="offset-xs-1 col-sm-10  col-md-10 col-lg-8 col-xl-6 textbox" style="align-self: center;">
                      <p><span class="upperC">Die prozessgestützte SAP Allsparten-</span></p>
                      <p><span class="upperC">Lösung für flexible, effiziente </span></p>
                      <p><span class="upperC">Bestandsführung.</span></p>
                  </div>
                  <div class="col-sm-4" style="align-self: center;">
                      <img data-src="/src/assets/img/kreuz.png" style="max-width:100%;" alt="" />
                  </div>
              </div>
              <div class="row">
                  <div class="offset-xs-1 col-sm-3 pt-5">
                      <a class="init" href="msgpia.html">Zur msg.PIA Webseite
                          <div class="orangeRect"></div>
                      </a>
                  </div>
              </div>
          </div>
      </div>
      <!-- zweite Seite Ende -->
    </full-page>
  </div>
</div>

</template>

<script>
import Footer from '../Modules/Footer/Footer.vue';
import LogoSmall from '../Modules/Logos/LogoSmall.vue';
import LogoWhite from '../Modules/Logos/LogoWhite.vue';
import VideoView from '../Modules/Media/VideoView.vue';


export default {
  data: function () {
    return {
        options: {
            navigation: true,
            anchors: ['home', 'msgpia', 'mals', 'malsVideo', 'kunden', 'kontakt'],
            navigationPosition: 'right',
            navigationTooltips: ['Home', 'msg.Pia', 'MALS', 'MALS Media', 'Unsere Kunden', 'Kontakt'],
            css3: true,
            verticalCentered: false,
            paddingTop: '50px',
            paddingBottom: '50px',
            sectionSelector: '.section'
        }
    }
  },
  components: {
      'logo-small' : LogoSmall,
      'logo-white' : LogoWhite,
      'video-view' : VideoView,
      Footer
  },
  methods:{

  }
}
</script>

scrollOverflow using webpack

Somehow I couldn't get scrollOverflow to work.
Tried to require the script before the VueFullPage import

import Vue from 'vue'
require('./vendors/scrolloverflow.js')
import VueFullPage from 'vue-fullpage.js'

Vue.use(VueFullPage);

...

export default {
  data () {
    return {
     options: {
        licenseKey: 'XYZ',
        menu: '#menu',
        anchors: ['section 1', 'section 2', 'section 3'],
        scrollBar: true,
        scrollOverflow: true
     } 
   },
  ...
}

just saved the scrolloverflow.js in a vendors folder.

(BTW: as mentioned in another issue, the readme.md should to be more detailed (like the original instructions) this would help a lot.)

vue.js version: 2.5.17
vue-fullpage.js version: 0.0.5

thanks a lot.

PS: I appreciate your work and even more that you made fullpage available for vue!

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.