Giter Club home page Giter Club logo

lory's Introduction

Please visit: http://loryjs.github.io/lory/

Touch enabled minimalistic slider written in vanilla JavaScript.

license npm CDNJS jsDelivr Hits

build devDependencies js-standard-style

Join the chat at https://gitter.im/loryjs/lory semantic-release Commitizen friendly

Download

lory is released under the MIT license & supports modern environments. There is also a prebundled CDN version which you can use.

Install with yarn:

yarn add lory.js

Consume it as an ES2015 module:

import { lory } from 'lory.js';

document.addEventListener('DOMContentLoaded', () => {
    const slider = document.querySelector('.js_slider');

    lory(slider, {
        // options going here
    });
});

Consume it as an commonJS module:

var lory = require('lory.js').lory;

document.addEventListener('DOMContentLoaded', function() {
    var slider = document.querySelector('.js_slider');

    lory(slider, {
        // options going here
    });
});

Install with bower

bower install lory --save

Local development

// To install dev dependencies run:

yarn

// To start the development server run:

yarn run dev

// To lint your code run:

yarn run lint

// To make a full new build run:

yarn run build

Run tests

// To install dev dependencies run:

yarn install

// To start the karma tests locally run:

yarn run karma-local

Prerequisited markup

<div class="slider js_slider">
    <div class="frame js_frame">
        <ul class="slides js_slides">
            <li class="js_slide">1</li>
            <li class="js_slide">2</li>
            <li class="js_slide">3</li>
            <li class="js_slide">4</li>
            <li class="js_slide">5</li>
            <li class="js_slide">6</li>
        </ul>
    </div>
</div>

Prerequisited css

/**
 * (optional) define here the style definitions which should be applied on the slider container
 * e.g. width including further controls like arrows etc.
 */
.slider {
}

.frame {
    /**
     * (optional) wrapper width, specifies width of the slider frame.
     */
    width: 880px;

    position: relative;
    font-size: 0;
    line-height: 0;
    overflow: hidden;
    white-space: nowrap;
}

.slides {
    display: inline-block;
}

li {
    position: relative;
    display: inline-block;

    /**
     * (optional) if the content inside the slide element has a defined size.
     */
    width: 880px;
}

Integration

<script src="js/lory.min.js"></script>
<script>
    'use strict';

    document.addEventListener('DOMContentLoaded', function() {
        var slider = document.querySelector('.js_slider');

        lory(slider, {
            // options going here
        });
    });
</script>

Integration as a jQuery Plugin

<script src="dist/jquery.lory.js"></script>
<script>
    'use strict';

    $(function() {
        $('.js_slider').lory({
            infinite: 1
        });
    });
</script>

Integration of multiple sliders on one page

<script src="dist/lory.js"></script>
<script>
    'use strict';

    document.addEventListener('DOMContentLoaded', function() {
        Array.prototype.slice.call(document.querySelectorAll('.js_slider')).forEach(function (element, index) {
            lory(element, {});
        });
    });
</script>

Public API

prev slides to the previous slide
next slides to the next slide
slideTo slides to the index given as an argument: (arguments: index {number})
returnIndex returns the index of the current slide element
setup Binds eventlisteners, merging default and user options, setup the slides based on DOM (called once during initialisation). Call setup if DOM or user options have changed or eventlisteners needs to be rebinded.
reset sets the slider back to the starting position and resets the current index (called on Resize event)
destroy destroys the lory instance by removing all lory specific event listeners

Options

slidesToScroll slides scrolled at once default: 1
infinite like carousel, works with multiple slides. (do not combine with rewind) default: false (number of visible slides)
enableMouseEvents enabled mouse events default: false
rewind if slider reached the last slide, with next click the slider goes back to the startindex. (do not combine with infinite) default: false
rewindPrev if slider is on the first slide, with prev click the slider goes to the last slide. (do not combine with infinite) default: false
slideSpeed time in milliseconds for the animation of a valid slide attempt default: 300
rewindSpeed time in milliseconds for the animation of the rewind after the last slide default: 600
snapBackSpeed time for the snapBack of the slider if the slide attempt was not valid default: 200
ease cubic bezier easing functions: http://easings.net/de default: 'ease'
initialIndex the slide index to show when the slider is initialized default: 0
classNameFrame class name for slider frame default: 'js_frame'
classNameSlideContainer class name for slides container default: 'js_slides'
classNamePrevCtrl class name for slider previous control default: 'js_prev'
classNameNextCtrl class name for slider next control default: 'js_next'
classNameDisabledPrevCtrl class name for slider previous control then disabled default: 'disabled'
classNameDisabledNextCtrl class name for slider next control then disabled default: 'disabled'

Events

before.lory.init fires before initialisation (first in setup function)
after.lory.init fires after initialisation (end of setup function)
before.lory.slide fires before slide change | arguments: currentSlide, nextSlide
after.lory.slide fires after slide change | arguments: currentSlide
before.lory.destroy fires before the slider instance gets destroyed
after.lory.destroy fires after the slider instance gets destroyed
on.lory.resize fires on every resize event
on.lory.touchstart fires on every slider touchstart event
on.lory.touchmove fires on every slider touchmove event
on.lory.touchend fires on every slider touchend event

Getting Help

Please, do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests. You've got much better chances of getting your question answered on StackOverflow where maintainers are looking at questions tagged with loryJS.

StackOverflow is a much better place to ask questions since:

  • There are hundreds of people willing to help on StackOverflow
  • Questions and answers stay available for public viewing so your question / answer might help someone else
  • The StackOverflow voting system assures that the best answers are prominently visible.

To enforce this rule will be systematically closing all the issues that are requests for general support and redirecting people to StackOverflow.

Browser Support

  • Chrome

  • Safari

  • FireFox

  • Opera

  • Internet Explorer 10+

  • Internet Explorer 9 (graceful, without transitions + classlistp)

Copyright

Copyright © 2015 Maximilian Heinz, contributors. Released under the MIT License

lory's People

Contributors

augustskare avatar benjamin-dobell avatar benmerckx avatar cordazar avatar drewfranklin avatar fde31 avatar gglnx avatar ght avatar greenkeeperio-bot avatar iandoe avatar imrefazekas avatar jacobjuul avatar kaylabranch avatar kkopachev avatar levito avatar lukasdrgon avatar maxlrainer avatar meandmax avatar mrslide avatar nolsherry avatar nstanard avatar slawexxx44 avatar tech4him1 avatar trysound avatar unstubbable avatar zaubernerd 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  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

lory's Issues

IE9 Functionality Broken

I tried running the demo HTML files in IE9 and I'm getting an error:

SCRIPT5007: Unable to get value of the property 'contains': object is null or undefined
lory.js, line 127 character 14

This obviously relates to IE9 not supporting classList
if (element.classList.contains(classNameActiveSlide)) {
but including the suggested shim doesn't help either. As far as I can tell, the shim should be able to be included in the page to enable classList functionality, but it doesn't seem to be helping.

Script execution halts when this error is encountered. It looks like the lory HTML is setup correctly, but Forward/Back functionality is broken. I understand that animation is not supported for IE9.

Collaboration

Hi Meandmax, you are a genius! lory is awesome.
I'm Andrea a Developer from Italy :-)

Can i use lory in my new front-end framework? take a look: https://github.com/afmarchetti/alux
It would be great to add a slider as lory, obviously with the credits and the license you want.

Thank you for your great job,
have a nice day.
Andrea.

Start index

Hi,

Thanks for this excellent carousel, it has just the features I need.

However, I ran into an issue, I reproduced it in a codepen:
http://codepen.io/hellonico/pen/XdZxmp

  • no event is binded on prev/next buttons
  • carousel starts at index 2 and skip index 1 when playing

I'll try to figure out what's going on but you'll probably spot the issue faster.

Supported browsers

IE9 also supported but with graceful degradation. Everything works fine.

feature request: centerMode option (ref: slick)

Hello.

I currently working replace carousel library from slick to lory.

This work want to centerMode option of slick, but lory is not implement centerMode option.

Are you planning to do it in the future?

Thanks.

iOS touch to scroll on the slider

I've only tried this on my iPhone 5 and this old iPad. But... Touching the slider to scroll down causes the image to jump to the first slide. It corrects itself after the next transition.

On my iPhone this happens every time. On this iPad I have to be rather aggressive with the touch/scroll interaction to get it to happen. I loaded the lory.js demo site and confirmed it happens to me on there too using my iPhone. If I get a chance I will look into this myself. But at least wanted to mention it.

infinite with slidesToScroll > 1 is broken

http://codepen.io/haggen/pen/kXGjmv

Paginate by slowly dragging the slides to the left and you'll see that the fourth page will only move by 1 block - and if you drag it further enough that it has fewer blocks. I'd say it's an issue with the duplication for infinite scrolling and/or the callback to reset the duplications (after the transition ends).

Also if you paginate backwards you can't get past the second page.

jscs line breaks

"validateLineBreaks": "LF" doesn't allow to validate code on windows. So, I suggest you to remove it, because git will automatically replace linebreaks.

Could you update babel build?

Hi, lory.

I have some issue with lory.js.
In lory babel builder version, default is reserved keyword in IE8.
So it takes break with load lory, even it does not use it.
Babel 6.7.4 version fixed this issue with es3 plugin.
Could you review this issue?

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

default should be ['default']

Follow this release version.
https://github.com/babel/babel/releases/tag/v6.7.4

Swipe on iphone bit janky

So if you visit the lory website on the iphone.. i used chrome and try to swipe say single element fixed with [infinite] it seems a bit janky going from slide to slide...

On the contrary if you use the arrow keys the slides seem to move smoothly as expected.

Anyone else have a similar issue?

Also tested on safari a bit better but also not as smooth as using the arrow keys...

cheers

API misses destroy functionality

I might be missing something but it appears to me that lory is missing some sort of destroy functionality in it's public API. Having a way of cleaning up eventListeners etc seems somehow crucial to me to in order to make lory usable in single-page applications. Any thoughts/considerations about that?

Remove inline-styles on .destroy()

Problem:
lory.destroy() does (currently broken see #84) unregister the slider but the styles on the js_slide element remain which can cause odd optical behaviour.

Solution:
Maintain added styles as object and on delete match against the current inline styles of the element (to prevent foreign styles to get deleted) and remove the ones added by lory before.

Update:
The items cloned by lory don't get removed on .destroy() too.

Cannot change curent slide because of percentage width

Live at: http://beta.mangoweb.cz/respekt/page-homepage.html#slider1

Part fotogalerie/video

include ../mixins/photo

.slider#slider1

    .slider-frame.js_frame

        ul.slider-slides.js_slides

            li.slider-slide.js_slide
                +photo('images/tmp/sample10')
            li.slider-slide.js_slide
                +photo('images/tmp/sample5')
            li.slider-slide.js_slide
                +photo('images/tmp/sample2')
            li.slider-slide.js_slide
                +photo('images/tmp/sample8')
            li.slider-slide.js_slide
                +photo('images/tmp/sample6')

    button.js_prev.slider-prev prev
    button.js_next.slider-next next

script.
    initComponents.push({
        name: 'slider',
        place: '#slider1',
        data: {}
    })
.slider
    user-select none

    &-frame
        position relative
        font-size 0
        line-height 0
        overflow hidden
        white-space nowrap

    &-slides
        clearfix()
        display inline-block

    &-slide
        position relative
        display inline-block
        width 100%
        height 0
        padding-bottom 56.3743%

        .photo
            display block

slides do not automatically start sliding

A user must click the next or previous control to see the another slide. In some cases, it is nice to have the slides automatically scroll to the next slide after a predetermined amount of time.

Feature Request: differentiate "active" and "inactive" controls

To improve the meaningfulness of the 'js_prev' and 'js_next' controls, one should be able to style them differently if they are "active" or not, that is, if clicking them will actually move the slider or not.

For example, the 'js_prev' control does nothing when the slider is at the start position, but the 'js_next' will move the slider, and you may want to show a dull grey left chevron and a bold black right chevron. There should be something such as an 'active' or 'inactive' class (or both) that get added and removed from 'js_{prev,next}' as needed, so that this kind of styling is possible.

.destroy() has no effect

Is:
The .destroy() method of a lory instance has no effect => the event listeners are still active after calling.

Should:
The .destroy() should remove all eventListener responsible for that instance.

Update:
Problem are the nested addEventListener calls in onTouchStart which gets invoked by addEvenListener and on delete removed by removeEventListener. But the eventListeners added inside onTouchStart remain...

Initialising multiple sliders only initialises prev/next buttons for first slider.

I am using custom classes for classNameFrame and classNameSlideContainer, the first slider is fine.

All the other sliders work, but the prev/next buttons only work on the first slider.

`(function () {
var School = {
init: function () {
this.sliders = document.querySelectorAll('.js-school-tabs-slider-wrapper');
this.bindEvents();
},
bindEvents: function () {
document.addEventListener('DOMContentLoaded', this.initSlider);
},
initSlider: function () {
if (School.sliders != null) {
Array.prototype.slice.call(School.sliders).forEach(function (element, index) {
lory(element, {
classNameFrame: 'js-school-tabs-slider-frame',
classNameSlideContainer: 'js-school-tabs-slide-container',
infinite: 1,
enableMouseEvents: true
});
});

        }
    },
}
School.init();

})();`

HTML - more than one of these divs on the page

`

                                    <div class="school-tabs-slider-frame js-school-tabs-slider-frame">
                                        <div class="js-school-tabs-slide-container school-tabs-slide-container">

                                            <div class="school-tabs-slider-item js-school-tabs-slider-item">
                                                <div class="row">
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1"> tab 2CLASS 2</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>

                                                </div>
                                                <div class="row">
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS2</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                </div>

                                            </div>
                                            <div class="school-tabs-slider-item js-school-tabs-slider-item">
                                                <div class="row">
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1"> tab 2CLASS 2</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>

                                                </div>
                                                <div class="row">
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS 2</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                    <div class="col-xs-5ths">
                                                        <div class="js-school-class-list-item school-class-list-item" data-class="1">CLASS</div>
                                                    </div>
                                                </div>

                                            </div>
                                        </div>
                                    </div>
                                    <button type="button" class="js-school-tabs-slider-prev js_prev"><</button>
                                    <button type="button" class="js-school-tabs-slider-next js_next">></button>
                                </div>`

Looks like it's not working if width isn't specified

When I copied the markup + Prerequisted CSS styles from the demo page, slider didn't work. It seems to be because in the demo you actually specify a fixed width for the li element.

.simple li {
    width: 270px;
    margin-right: 10px;
}
@media screen and (min-width: 640px ) {
    .simple li {
        width: 580px;
    }
}
@media screen and (min-width: 980px ) {
    .simple li {
        width: 880px;
    }
}

So my question is... is there a way to make it work out of the box, without specifying a width? I feel like it's a bit annoying to specify a fixed width in a responsive context.

Option to change default CSS class name

What about extend options to change the default CSS class name?

var frame = slider.querySelector('.js_frame');
var slideContainer = frame.querySelector('.js_slides');
var prevCtrl = slider.querySelector('.js_prev');
var nextCtrl = slider.querySelector('.js_next');

Vertical slider

First of all, thanks for the great non-jQuery slider, there aren't many of them.

Is there any trick how to make lory work as a vertical slider? Or would this require updates to the lory itself?

Thanks

Prev / Next buttons not working

Here is my markup:

<div class="slider js_slider" data-behavior="carousel">
    <div class="frame js_frame">
        <ul class="slides js_slides">
            <li class="js_slide">1</li>
            <li class="js_slide">2</li>
            <li class="js_slide">3</li>
            <li class="js_slide">4</li>
            <li class="js_slide">5</li>
            <li class="js_slide">6</li>
        </ul>
    </div>
    <button type="button" class="js_next">Next Slide</button>
</div>

My JS:

import {lory} from 'lory.js';

module.exports = class Carousel {
  constructor(element, app) {
    this.carousel = new lory(element, {
      infinite: 1,
      enableMouseEvents: true
    });
  }
}

When I click on js_next nothing happens. If I drag the js_slide elements with my mouse, the slider works as intended.

returnIndex value not correct on multiple slides

Heya! Like I already mentioned on Twitter: Love the slider and lack of compromises to make it nice and modern. Also loving the events, but I do have a question on those though.

I make a lot of use of returnIndex, but it seems that it doesn't return the right number in the following case:

When you have a slider with multiple items to slide, i.e. 'slidesToScroll:4' but an amount of slides that doesn't fill out the entire slider, i.e. 10. In this case you'd have 3 'pages', two with 4 items and one with 2 items. Unfortunately, on the last page, the 'active' class stays stuck on the 5th item (returnIndex = 4) which makes little sense to me as this is out of the viewport. Also, it makes that clicking the back button slides back from slide #5 instead of #9, resulting in a weird slide back (one click vs the expected 2) If I up the amount of slides to 12 the behaviour is as expected.

Is this intended or might this be a bug?

Thanks for your time!

Browserify require

Hello @meandmax, I have noticed an issue when importing the library on browserify.

As the "main" property in package.json refers to "dist/lory.js", there is a wrapper on the library apparently and the module imported looks like this,

{
    __esModule: true,
    lory: function() { ... }
}

I moved back to v1.2.6 which works fine actually.

Thank you very much !

[Help] Slide width 100%

Hi,

I'm encountering a strange issue, I put all the div to width: 100%; but when I look in the Dev tools, it's not work and by the way the translate doesn't work well.

Here is a screen of :
capture d ecran 2016-04-11 a 20 08 05

The .frame div fill correctly the container

Do you have an idea about this ?

Thanks for your great works !

Calculs size calcul slide break if loading the lib too quickly

If we append the slider in the dom and load a lory.js slider, the calcul can be wrong, because the dom haven't already registered the width of the slides.
It can be restored with a call to .reset() the first time a slide animation is triggered, for exemple.
That way the calcul is done when the user send the first slide.

Breakpoint options

Like in slick slider, you can change the options at certain breakpoints. I'm just wondering if this functionality is available for this plugin and how I would go about implementing it. Thanks

on resize lory bug

Hi lory.
First of all, Thanks good lib.
I found some issue in lory.

I moved to 3rd panel, and then I tried to resize window.
And bug appeared in here, lory panel go to 1st panel.

So, I tried such as code.
But I think it should be default.
Can you give me some advice?

Thanks for your effort.

// persist panel index
elFlick.addEventListener('on.lory.resize', (e) => {
    this.flicking.slideTo(this.currentFlickingIndex);
});

Changing number of visible slide !!

Is there a way to change how many visible slides based on screen width !! For instance at mobile devices i don't want to 4 small slides , i only want one slide to be visible , Is there a feature where i can do this !!

Thx

Remote tests fail for pull requests

http://docs.travis-ci.com/user/pull-requests/#Security-Restrictions-when-testing-Pull-Requests:

A pull request sent from a fork of the upstream repository could be manipulated to expose any environment variables. The upstream repository’s maintainer would have no protection against this attack, as pull requests can be sent by anyone with a fork.

For the protection of secure data, Travis CI makes it available only on pull requests coming from the same repository. These are considered trustworthy, as only members with write access to the repository can send them.

Therefore you should consider running the Sauce Labs tests only if process.env.TRAVIS_SECURE_ENV_VARS === 'true'. Otherwise you could let Travis run the tests only in PhantomJS so pull requests can be verified to some degree.

Slides display and position suggestion

Hello. I rly appreciate the work you are doing for developing good-quality vanilla extensions.

I like lory features. But the only thing that makes me step back to using on my projects is related about how the slides are positioned and the default css styles.

It's well known that inline-block is suposed to not be used for grid-like design (Google it). As is not floated, the browser show it like normal text and also show ugly spaces between them. Ok... you fix it setting font-size:0 and line-height:0.

But this brings a little problem with relative font-sizes in responsive design. I mean when using font sizes according to parent font size: using the em unit. If I use em units to set the content of slides: the content dissappear. Of course... because set a font size according to 0 will gives 0.

Yeah... I know... I can set the font-size using px manually, but in that way I must set the correct font-size for each item inside slides in each media query... using em units will become pointless, and for a lot of people em unit are very very useful. Of course... this will make the css bigger also...

In other hand... setting font-size:0 and line-height:0 seems like some kind of content hiding that may cause SEO penalties. I´m not shure about this... but I would't risk myself to let some bots think that I wanna hide valuable content. And the way bots analize sites changes constantly.

Anyway... Regardless of the points mentioned above... it simply feels like a poor and ugly hack to makes it work.

I suggest using display:block and floating instead. Or maybe, the new display:flexbox and display:grid and makes a fallback.

I hope you have understood me. Sorry for the criticism and also for my bad english. Keep the good work.

Support of direct slide switching (w/o animation effects)

Thanks to the fact that you've effectively eleminated any kind of way to directly get in contact you, I am forced to ask my rather simple question in here:

Does the slideshow script support DIRECT jumps to a specific slide? That is, without doing any kind of animation effect, basically switching directly to the selected slide?

TIA,
cu, w0lf.

does not activate the last element and incorrect positioned

on the screen: this is the last slide as you can see he is not selected as active and not being correctly positioned.

code:

  .slider.js_multislides.multislides
    .frame.js_frame
      ul.slides.js_slides
        li.js_slide: img(src='image/projects_1.jpg' width='226' height='164' alt='1')
        li.js_slide: img(src='image/projects_2.jpg' width='226' height='164' alt='2')
        li.js_slide: img(src='image/projects_3.jpg' width='226' height='164' alt='3')
        li.js_slide: img(src='image/projects_4.jpg' width='226' height='164' alt='4')
        li.js_slide: img(src='image/projects_1.jpg' width='226' height='164' alt='1')
        li.js_slide: img(src='image/projects_2.jpg' width='226' height='164' alt='2')
        li.js_slide: img(src='image/projects_3.jpg' width='226' height='164' alt='3')
        li.js_slide: img(src='image/projects_4.jpg' width='226' height='164' alt='4')
        li.js_slide: img(src='image/projects_1.jpg' width='226' height='164' alt='1')
        li.js_slide: img(src='image/projects_2.jpg' width='226' height='164' alt='2')
    span.js_prev.prev.icon-projects_arrow
    span.js_next.next.icon-projects_arrow
.slider
  position relative
  margin 0 auto
  width 226px

  .frame
    margin 0 auto
    width 226px
    overflow hidden
    white-space nowrap

  .slides 
    margin 0
    padding 0
    display inline-block

  li 
    position relative
    display inline-block

ps: in the rest of the library is great! Thank you for your trouble! :)

dot pager ?

I saw this ussue is closed now #13

Is it possible to have dot's pager?

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.