Smooth mobile touch slider for Mobile WebApp, HTML5 App, Hybrid App

Overview

iSlider

iSlider is a lightweight, high-performant, no library dependencies cross-platform slide controller. It can help handling most sliding effects, offering dozens of transition animations, and presenting various scenarios.

iSlider English README

iSlider DEMO

iSlider 中文文档

iSlider 演示

iSlider animation

Features

  • Outstanding performance, less memory usage;
  • Various animation effects, including effects such as default, rotate, depth, flow, flip, card, fade, etc., and capability of adding custom animations;
  • Provide rich callback trigger. Adding a callback function is easy, regardless of initialization or during operation;
  • Easy to configure, e.g. Slide the dampening effect of the cycle, automatic sliding effect, horizontal / vertical sliding, etc.
  • Automatic matching the desktop mouse movements or gestures on mobile device. Easy to test and use cross platforms;
  • Supports for image pre-loaded, excellent user experience;
  • [Plugin] Offers a variety of plug-ins, such as a toggle button, the scene indicator, image scaling, etc. Provides plug-in registration, management and other methods to facilitate custom extension;
  • [2.0+] Can be loaded on demand (effect or plug-in);
  • [2.0+] Supports more types of elements. Automatically matches the data type. Capable of image recognition and pre-loading;
  • [2.0+] Better delegated event management mechanism, optimized memory usage;
  • [2.0+] Enriched callback events, more flexible event management and trigger mechanisms;

Mobile demo

Demo http://be-fe.github.io/iSlider/index.html

Get iSlider

Clone from Github

git clone https://github.com/be-fe/iSlider.git

Use bower installation

bower install iSlider

Use npm installation

npm install islider.js

Started iSlider

The easiest way of getting started is to consult our examples, please visit the DEMOs.

Creating a container

<div id="iSlider-wrapper"></div>

Preparing some data

var data = [
    {content: "imgs/1.jpg"},
    {content: "imgs/2.jpg"},
    {content: "imgs/3.jpg"}
];

Loading iSlider

<script src="iSlider.min.js"></script>

Initializing a iSlider

var islider = new iSlider(document.getElementById('iSlider-wrapper'), data);

Or,

var islider = new iSlider({
    dom : document.getElementById('iSlider-wrapper'),
    data : data
});
var islider = new iSlider(document.getElementById('iSlider-wrapper'), data, {
    dom : document.getElementById('iSlider-wrapper'),
    data : data
});

Extending iSlider

Animations

If you want more effects, you can load the animation effect extensions, set up the configuration when initializing iSlider and specify animationType.

<script src="iSlider.min.js"></script>
<script src="iSlider.animate.min.js"></script>
var islider = new iSlider({
    dom: document.getElementById("iSlider-wrapper"),
    data: list,
    isVertical: true,
    isLooping: false,
    isDebug: true,
    isAutoplay: false,
    animateType: 'rotate'
});

Extension

From 2.x, iSlider supports extension registration. You can now extend iSlide with your own features.

<script src="iSlider.min.js"></script>
<script src="iSlider.plugin.dot.min.js"></script>
var islider = new iSlider({
    dom: document.getElementById("iSlider-wrapper"),
    data: list,
    plugins: ['dot'],
});

You can also pass in more custom params to the extension initialize method.

var islider = new iSlider({
    dom: document.getElementById("iSlider-wrapper"),
    data: list,
    plugins: [['dot', {background:'rgba(0,0,0,0)'}]],
});

That's it!

【Notice】: if you use npm to install iSlider, it will not contain plugin default, you can involve plugin like this:

var iSlider = require('islider.js');
require('../node_modules/islider.js/build/iSlider.plugin.button'); //引入button插件

Official Plugins

Button

Scene toggle button. For switching to the previous (left/up) or next (right/down) scene of the current scene.

Dot

Scene indicator, the current location and switch to a scene function

Zoompic

Mobile image scaling, image in non-background mode by double-clicking on the image or two fingers to enlarge, to amplify the effect of the preview.

  • Known issues: must restore the default size by double-clicking, double that currently can not be reduced to its default state
BIZone

Touch points from the edge of the area to identify, although has joined edge processing mouseout and touchcancel, but for some applications, the definition from the top (bottom) menu bar remains powerless. Meaning that it can take the initiative to identify areas of these regions is set to touch on detachment.

Scene data

From 2.x, iSlider no longer requires type to specify the data type. It can now detect wisely, so that you can easily use various types of data, e.g. images, HTML elements, fragments or selectors.

var data = [{
    'content' : './qrcode.png'  // picture
},{
    'content' : '<div><h1>Page1</h1><h2>This is page1</h2><p>page1 is pretty awsome</p><div>' // HTML
},{
    'content' : (function () { // element
            var dom = document.createElement('div');
            dom.innerHTML = 'Element';
            return dom;
        })()
},{
    'content' : (function () { // fragment
            var frag = document.createDocumentFragment();
            var dom = document.createElement('div');
            dom.innerHTML = 'Fragment';
            frag.appendChild(dom);
            return frag;
        })()
}{
      'content' : document.getElementById('node') // selectors
}];

To learn more advanced features, please refer to WIKI

iSlider details

Configurations

DOM (Optional, OPTIONS.dom)

  • new iSlider(DOM, DATA, OPTIONS);
  • {HTMLElement}
  • DOM Container
  • Though the first parameter is not required, it is highly recommended, as setting a DOM container can make it more convenient to use iSlider.

DATA (Optional, default: OPTIONS.data)

  • new iSlider(DOM, DATA, OPTIONS);
  • {Array}
  • Data list
  • Though it's not required, the second param is also recommended.
  • Allowed types: URLString, HTMLString, HTMLElement, HTMLFragment.
  • TODO: Currently, each of the member in the array is type of {Object}, which only supports content property, in the future, it will get more extensions, such as the configuration of the effect about each scene transitions, wait time, etc.
  • Data format:
[
    {
        content:'{URLString|HTMLString|HTMLElement|HTMLFragment}',
    },
    ...
]

OPTIONS

  • new iSlider(DOM, DATA, OPTIONS);
  • {Object}
dom
  • {HTMLElement}
  • dom node which is used as Container, same as the role of the parameter [DOM] (#dom), if this has been setted, DOM will be overwritten.
data
  • {Array}
  • A list of data, same as the role of the parameter [DATA] (#data), if this has been setted, DATA will be overwritten.
animateType
  • {String}
  • Animation
  • Currently supports: default (scrolling), rotate (rotation), depth, flow, flip, card, fade (fade in / hidden), (outside / inside zoom) zoomout
  • Precondition: Loading library iSlider.animate(.min).js which is used for effects
  • Default: "default"
animateTime
  • {Number}
  • Animation duration
  • Unit: ms
  • Default: 1000
animateEasing
  • {String}
  • Animation curve
  • Options: linear, ease, ease-in, ease-out, ease-in-out, even cubic-bezier
  • Default: ease
isAutoplay
  • {Boolean}
  • Turn on / off the automatic sliding mode
  • Default: false (Disabled)
duration
  • {Number}
  • Suspending time of scene when it's playback automatically
  • Suspending time of each scene, it switches to the next scene when it is ended
  • Unit: ms
  • Precondition: isAutoplay === TRUE
wakeupAutoplayDazetime
  • {Number}
  • User click/tap behavior(eg: active a link), or if the page loses focus will stop autoplay.
  • This configuration will attempt to restart autoplay after N milliseconds.
  • AutoPlay will be forced to wake up, even when the user fill in a form items !
  • It will be blocked by "lock()"
  • Unit: ms
  • Precondition: isAutoplay === TRUE
isLooping
  • {Boolean}
  • Repeat Mode
  • Default: false (Disabled)
dampingForce
  • {Number}
  • Damping force, the rebound effect of overflow Scene
  • Range: 0 ~ 1, Sliding distance decreases with increasing values (more difficult to slide)
  • Default: 0
  • Precondition: isLooping === FALSE
isVertical
  • {Boolean}
  • Vertical sliding mode
  • Default: false (Disabled)
isOverspread
  • {Boolean}
  • Background Tile
  • If the scene is picture mode (URL), use the CSS3 backgrounds ways to filling the scenes
  • Default: false (Disabled)
isTouchable
  • {Boolean}
  • Touch events
  • Default: true (Enabled)
isDebug
  • {Boolean}
  • On / off debug mode, it will print more information about the log
  • Default: false (Disabled)
initIndex
  • {Number}
  • Index of the list which is used for the first screen
  • Default: 0
fingerRecognitionRange
  • {Number}
  • The scope of wrong touch, if it's bigger than the value of scope, the touchMove will be treat as an effective distance of slide
  • Default:10(px)
fixPage
  • {Boolean|Array|String}
  • Prevent native event
  • Prevent to trigger the event in the scene shield, such as: scroll, drag, zoom, etc.
    • "A" elements, prevented, the mobile terminal is recommended to use user-defined tap (touch-based event jointly judgment)
    • For the form element "SELECT", "INPUT", "TEXTAREA", "BUTTON", "LABEL", in any situations it will not to be prevented
    • *Exclude strategies:if the type of param is string(rule,querySelector selector string)or Array(mutiple regulations),this option is in opening status(true)and exlude elements with composite regulations, treat asiSlider.FIX_PAGE_TAGS
  • Default: true (Enabled)
fillSeam
  • {Boolean}
  • To fill the gaps between scenes
  • There is some rendering problems in the browser of some systems, resulting in a gap between scenes, this situation is particularly evident when the scene had setted the background color and use ** ** for connected.
  • Default: false (Disabled)
plugins
  • {Array}
  • Enable plug-ins and configure the initialization parameters
  • Incomming a name list of plugins which would be actived: ['dot', 'button', 'zoompic', ...], in addition, it's support incoming initialization parameters: [..., ['zoompic', {zoomFactor: 2}], ...]
  • It will be ignored if the plug-in does not exist or is not loaded

Event callbacks

  • {Function}
  • Incomming at initialization, it's needed to beginning with on and it would to be Camel-Case
    • OR all lowercase !! Will be discarded, If the Camel-Case or All-Lower-Case coexist, the Camel-Case will be used.
  • Binding with method "on" at living example, please use the Camel-Case, refer to the following list.
  • *Due to the different scenes,callback method should be different , there will be different between the incoming parameters.

Example:

var S = new iSlider({
	...,
	onSlideChange: callback
	onSlideChanged: callback
	onslidechanged: callBack, // !!All lower case will be abandoned, and now, it will be covered camelCasing
	...
});

// OR
S.on('slideChanged', callBack);

initialize

  • Start initialization (After the call setting, Before rendering)
  • Parameters: None

initialized

  • When initialization is complete (after rendering)
  • Parameters: None

pluginInitialize (Not Enabled)

  • (Each)Be triggered at initialization
  • Parameters: None

pluginInitialized

  • Be triggered when all plug-in initialization is complete
  • Parameters: None

renderComplete

  • Be triggered when the outer container is rendered completely
  • Be triggered before reset, loadData
  • Parameters
    • {Number} current data index
    • {HTMLElement} current scene elements

slideStart

  • Be triggered when the finger touching screen
  • Parameters
    • {Object} Event object

slide

  • Be triggered when the finger is sliding
  • Parameters
    • {Object} Event object

slideEnd

  • Be triggered when the finger has lifted
  • Parameters
    • {Object} Event object

slideChange

  • {Function}
  • Be triggered when the scene changes
  • Parameters
    • {Number} current data index
    • {HTMLElement} current scene elements

slideChanged

  • {Function}
  • Be triggered when the changing of scene is completed (the animation is completed)
  • Be triggered when executing loadData
  • Parameters
    • {Number} current data index
    • {HTMLElement} current scene elements

slideRestore

  • {Function}
  • Be triggered when the scene has not changed (rebound, animation is completed)
  • Parameters
    • {Number} current data index
    • {HTMLElement} current scene elements

slideRestored

  • {Function}
  • Be triggered when the scene is changing and it's not completed (Rebound animation is completed)
  • Be triggered when performing reset
  • Parameters
    • {Number} current data index
    • {HTMLElement} current scene elements

loadData

  • {Function}
  • Be triggered when data is reset (execution loadData method)
  • Parameters
    • {Number} current data index
    • {HTMLElement} current scene elements

reset

  • {Function}
  • Be triggered when the scene reset (phone screen rotate, resize)
  • Parameters
    • {Number} current data index
    • {HTMLElement} current scene elements

destroy

  • {Function}
  • Be triggered when iSlider destruction
  • Parameters: None

Constant

VERSION

  • {String}
  • Version

EVENTS

  • {Array}
  • The list of events callback

EASING

  • {Array}
  • Animation effect(easing)regulation lists
    • 0: {Array} ['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out']
    • 1: {Regexp} Bézier curve expressions, writting same as the CSS3

FIX_PAGE_TAGS

  • {Array}
  • The white list which is matched the fixPage form

NODE_TYPE

  • {Array}
  • Scene type

TRANSITION_END_EVENT

  • {String}
  • The name of Animation's ending

BROWSER_PREFIX

  • {String}
  • CSS prefix

DEVICE_EVENTS

  • {Object}
  • {{hasTouch, startEvt, moveEvt, endEvt, cancelEvt, resizeEvt}}
  • According to the event which the divices matched

Static Methods

extend

  • When the parameter's length is equal to 1, the object will inherit iSlider.prototype
  • When the parameter's length is equal to 2, the second object will inherit the first
  • Parameters:
    • [{Object} original object] or default iSlider.prototype
    • {Object} new object

regPlugin

  • Register the plug-in
  • Parameters:
    • {String} plug-in name
    • {Function} plug-in initialization method

Instance Methods

slideTo

  • Switch to the N-th scene, you can set the configuration information in second parameter to change slide animation this time: animateTime animateType
  • Parameters:
    • {Number} data list index
    • [{Object} temporary configuration]

slidePrev

  • Switch to the next scene, you can set the configuration information in second parameter to change slide animation this time: animateTime animateType
  • Parameters:
    • [{Object} temporary configuration]

slidePrev

  • Switch to the previous scene, you can set the configuration information in second parameter to change slide animation this time: animateTime animateType
  • Parameters:
    • [{Object} temporary configuration]

delegate

  • Binding delegate event on the container node
  • Parameters:
    • {String} event name
    • {String} selector (querySelectorAll)
    • {Function} incident response method

bind

  • delegate alias

unDelegate

  • Unbundling delegate event handler
  • Parameters:
    • {String} event name
    • {String} selector (querySelectorAll)
    • {Function} incident response method

unbind

  • UnDelegate alias

on

  • To register the callback method in the event of iSlider
  • Parameters:
    • {String} event name
    • {Function} back off method
    • [{Boolean}] priority registration, callback events registered to the header of the event queue, the event callback is always be the fisrt which is registered at the initialization, Default: false

has

  • Detecting the event callback method is already exists
  • Parameters:
    • {String} event name
    • {Function} back off method

off

  • Remove the callback method from iSlider events
  • Parameters:
    • {String} event
    • {Function} back off method

fire

  • Event Trigger

play

  • Start Auto Play
  • Precondition: isAutoplay === TRUE

pause

  • Pause automatic switching
  • Precondition: isAutoplay === TRUE

extend

  • Same as static method "extend"

regPlugin

  • Same as the static method "regPlugin"
  • ** This method will be registered the plug-in into the iSlider instance, It will add an active list of plug-in automatically when registeration and performs initialization automatically.**

loadData

  • Loading new Datasheets
  • Parameters:
    • {Array} Datasheets
    • {Number} Index, default: 0

pushData

  • Add scenes to the end of the data datasheets
  • Parameters:
    • {Array|Object} A member or additional datasheets

unshiftData

  • Add scenes to the head of the data datasheets
  • Parameters:
    • {Array|Object} A member or additional datasheets

subjectTo

  • Subject to another Slider instance
  • This Slider will completely controlled by the target iSlider
  • Parameters:
    • {Object} target
    • {Object} controlled configuration item (Not Enabled)
var IS_1 = new iSlider(dom, data);
var IS_2 = new iSlider(dom, data);

IS_1.subjectTo(IS_2);
// At this time IS_1 if fully controlled by IS_2, that is to say the drag, switching, auto-play and other acts performed on IS_2 would synced to IS_1

hold

  • Prohibit the current scene gesture

unhold

  • The current scene to open gestures, and trigger "unlocked" at the same time

lock

  • Lock the current scene, disabled method of sliceTo, slideNext, slidePrev, while prohibiting gesture

unlock

  • Unlock

destroy

  • Destruction of the current iSlider instance, freeing memory

reset

  • Reset the current iSlider instance

Contact us

If you have any questions or find any bugs about iSlider, we will be appreciated for your feedback: Commit a feedback

License (MIT)

Copyright (c) 2014 BE-FE

MIT

Comments
  • 设置了isLooping: true循环播放后,单击会出现播放暂停

    设置了isLooping: true循环播放后,单击会出现播放暂停

    是故意这样设定的吗,我看 http://be-fe.github.io/iSlider/demo/index_chinese.html#demo 这里的第二个demo也是这样,单击后轮播就会暂停。感觉这个设定不太合理,或者可以给一个配置参数选择是否需要暂停。目前我是用监听到 slideEnd 事件后再执行 islider.play() 来消除这个暂停的影响。

    opened by zhiyi10 6
  • android设备上页面过渡比较卡

    android设备上页面过渡比较卡

    见 http://shiqichan.qiniudn.com/mob.slide.c/simple.html

    我打算用于开发电子杂志。发现手头如下设备下卡顿:

    • 小米4,比红米都卡
    • 红米

    另外,在Sony Z3C上,横向滑动的时候,滑动的过程中,当前页面会突然跑到之前页面前面或后面。

    请问这个问题是否有人碰到过?

    opened by MarshalW 6
  • 轮播图的flow效果图,只能显示三个li?

    轮播图的flow效果图,只能显示三个li?

    我尝试了iSlider.js里面的【renderComplete】那里的li,有一个for循环,渲染的li标签,如 997行代码 for (var i = 0; i < 7; i++) { var li = document.createElement('li'); outer.appendChild(li); this.els.push(li);

            // prepare style animation
            this._animateFunc(li, this.axis, this.scale, i, 0);
    

    但是改了也没多大用?求解!谢谢

    opened by yyccQQu 5
  • 初级菜鸟使用webpack来引入iSlider.js的一些问题

    初级菜鸟使用webpack来引入iSlider.js的一些问题

    我最好还是解释一下什么是初级菜鸟,拿我举例,我刚使用webpack,是一个菜鸟的水平,也刚使用iSlider.js,所以就是初级咯!!!最近我在做一个页面的时候需要使用iSlider.js,所以就通过下面的方式来安装它。

    npm install islider.js --save-dev
    

    然后在我的package.json中就有了相关的依赖,但是我发现在我的项目中我只能引入iSlider.js的主文件,也就是\node_modules\islider.js\build\iSlider.js这个文件,我是通过这样的方式来引入iSlider.js的:

    var iSlider = require( 'islider.js' );
    

    然后我就想不到如何来引入iSlider.animate.js这个文件了,所以就只好使用准确的路径来进行查找了,我是这样写的。

    var iSlider = require( 'islider.js');
    require( 'islider.js/build/iSlider.animate.js');
    

    但是这样做会webpack提示这样的错误信息:

    ERROR in : islider.js/build/iSlider.animate.js :Module not found: Error: Cannot resolve module 'iSlider' 
    

    就是说animate.js中找不到iSlider.js了,所以我做了以下的修改,到animate.js中的第12行中的代码改为下面的代码就不会报错了。

            factory(require('islider.js'));
        //或者是factory(require('./iSlider.js'));
    

    最后我想问的是,我这样做是不是比较笨,请问有什么更好的方法吗?当然我也希望这些困扰了我比较长时间的问题不要困扰到别人。

    opened by Napoleonqinxiaofu 5
  • 【Bug】使用content: document.querySelector('#id)超过2个之后就显示不正常了

    【Bug】使用content: document.querySelector('#id)超过2个之后就显示不正常了

    如: JS:

        var list = [
            {
                content: document.querySelector('#id')
            },
            {
                content: document.querySelector('#id1')
            },
            {
                content: document.querySelector('#id2')
            },
            {
                content: document.querySelector('#id3')
            },
            {
                content: document.querySelector('#id4')
            },
            {
                content: document.querySelector('#id5')
            },
    ];
    

    JS:

    new iSlider({
        dom: document.getElementById('iSlider-wrapper'),
        data: list,
        isAutoplay: 0,
        isLooping: 0,
        isOverspread: 1,
        animateTime: 800,
        isVertical: true
    });
    

    HTML:

    <div id="iSlider-wrapper"></div>

    opened by wayearn 5
  • 容器内元素事件代理

    容器内元素事件代理

    dom类型,两个li,均为多个图片的展示容器,li内容器设置了overflow: auto, 想通过scroll事件监听容器内图片显示位置,按需加载,现在islider把scroll屏蔽掉了,用islider.bind("scroll", "", function(){})代理也没有效果,请问有什么建议么?

    opened by lt1030 5
  • Errorr

    Errorr

    It is very easy! We can use flag to work out this problem! My code:

    var isLinkTo = 1; var S = new iSlider(document.getElementById('rec-silder'), list, { isAutoplay: 0, isLooping: 1, isOverspread: false, animateTime: 800, plugins: ['dot'], renderComplete: function () { }, onSlideStart: function (e) { isLinkTo = 1; }, onSlide: function (e) { isLinkTo = 0; }, onSlideEnd: function (e) { if (isLinkTo === 1) { window.location.href = "www.baidu.com"; } } });

    opened by PablooGit 0
  • bug:当点击内容里的事件时,插件不自动滚动了

    bug:当点击内容里的事件时,插件不自动滚动了

    var islider = new iSlider({ data: isliderList, dom: document.getElementById('islider-effect'), isAutoplay: true, isLooping: true, isOverspread: true, animateTime: 800, duration: 3000, fixPage: false, oninitialized: function(){ demoClick(); }, onSlideChanged: function(){ demoClick(); } });

    demoClick(); 事件点击后,自动滑动功能就停止了。 这个怎么解决呢?

    opened by SwordSealCity 0
  • 修复plugin在使用npm安装时无法引用的bug

    修复plugin在使用npm安装时无法引用的bug

    修复iSlider的plugin全局能用,npm包不能用的问题。 Bug描述:npm安装后根据package.json的main配置,入口文件是build/index.bundle.js,但实际上plugins中使用require('./iSlider')的引用方式只能调用src/js/iSlider.js中的plugin,因此会出现采用npm时二者不一致的情况。 解决方案:将plugins插件中的引用iSlider组件的代码由require('./iSlider')改为require('islider.js'),这样无论是全局还是npm,都能引用正确的iSlider组件。

    opened by guoyueting 0
Releases(2.2.4)
  • 2.2.4(Jun 4, 2018)

  • 2.2.2(Dec 15, 2016)

    • [New]Add configuration wakeupAutoplayDazetime, this configuration will attempt to restart autoplay after N milliseconds.

    上次没更新代码里的版本号~ 亲

    Source code(tar.gz)
    Source code(zip)
  • 2.2.1(Nov 23, 2016)

  • 2.2.0(Aug 29, 2016)

    可以在npm安装后直接使用webpack等模块化打包工具

    var iSlider = require('islider.js');
    islider = new iSlider(dom, list, opts);
    
    
    Source code(tar.gz)
    Source code(zip)
  • 2.1.10(Jun 30, 2016)

  • 2.1.9(Jun 21, 2016)

  • 2.1.8(Jun 2, 2016)

    iSlider 2.1.8

    • [Optimization]Compatible the callback parameter camelCasing on initialization. All-Lower-Case nomenclature will be discarded. Currently coexistence, Camel-Case priority.
    Source code(tar.gz)
    Source code(zip)
  • 2.1.7(Apr 19, 2016)

  • 2.1.6(Apr 6, 2016)

  • 2.1.5(Mar 19, 2016)

    iSlider 2.1.5

    • [New]Add method "pushData", now you can append data dynamically. Here is the DEMO.
    • [Optimization][Bug fix]Android browser (including wechat) failures of transition.
    • [Optimization]Support Firefox browser, UC browser.
    • [Bug fix]Firefox Android browser and certain "slideChanged", "slideRestored" event failures.
    Source code(tar.gz)
    Source code(zip)
  • 2.1.4(Mar 17, 2016)

    iSlider 2.1.4

    • [Optimization]Options fixPage support policy "exclusion list", it allows you to trigger default event for the specific element.
    • [Optimization]readme & demo pages
    • [Optimization]IOS desktop has touch events, make them busting.

    iSlider 2.1.3

    • [Optimization]Local variable references.
    • [Optimization]isMoving => onMoving
    • [Optimization][EXT]animation

    Something new

    Source code(tar.gz)
    Source code(zip)
  • 2.1.2(Feb 2, 2016)

    iSlider 2.1.2

    • [Optimization]orientationChange and resize distinction => resizeEvt, according to whether the mobile device.
    • [Optimization]Merge "leaving" event, mouseout and touchcancel.
    • [Optimization]When iSlider is set to autoplay, flip phone screen or resize the window at this point, autoplay can not be paused! (especially Android (#‵′)!!!)
      • A lot of optimization... lots and lots
      • Reconstruction of continuous sliding queuing mechanism, change it to the event handler maintenance.
      • Peeling methods
      • Every effort to ensure the performance, although it is only a special place in time.
      • Reconstruction of the resizeEvt method.
    Source code(tar.gz)
    Source code(zip)
  • 2.1.1(Jan 29, 2016)

    iSlider 2.1.1

    • [BUG fix]Repair resize event to lose focus in Android.

    iSlider 2.1.0

    • [Optimization]Fully optimized animation. Animation logic decoupling from iSlider.
    • [New]Add an animation, zoomout.
    Source code(tar.gz)
    Source code(zip)
  • 2.0.14(Jan 20, 2016)

    iSlider 2.0.14

    • [Optimization][Plug-in]BIZone
      • plugins: ['BIZone', {size: {VALUE}}]
      • {VALUE} default is 0, you can also pass an array [top, right, bottom, left], eg: [10, 20] or [10, 0, 0] or [1, 2, 3, 4]. Similar "margin" or "padding".

    iSlider 2.0.13

    • [Optimization]Review demos
    Source code(tar.gz)
    Source code(zip)
  • 2.0.12(Jan 19, 2016)

    iSlider 2.0.12

    • [Optimization]Links on fixPage:true add preventDevault
    • [BUG fix]Repair plug-dot Click failure problem

    Something new

    • Add new option "fingerRecognitionRange" to prevent inadvertently touched

    iSlider too fat! Weight Loss complete!

    Source code(tar.gz)
    Source code(zip)
  • 2.0.11(Jan 17, 2016)

    iSlider 2.0.11

    • [Optimization]Links to determine whether the "_blank"
    • [Optimization]autoplay time sequence optimization, more smoothly, not interfere with touch events
    • [Optimization]Slimming file/directory structure

    Something new

    • Add new callback functions
      • oninitialize, oninitialized in structural parameters
      • initialize, initialized on callback register
    • Now you can manually specify the container width and height, When a container is not actually in the page.
    Source code(tar.gz)
    Source code(zip)
  • 2.0.10(Jan 15, 2016)

    iSlider 2.0.10

    • [Optimization]Some effects (such as default, rotate) in some browsers, there is a thin seam between the two scenes.
      • We try to solve, yes, it has been resolved in most cases.
      • However, this caused some impact on performance, so we use it as a configuration option called "fillSeam", the default value is false, it is disabled. When you need it can be enabled.
    • [Plug-in]button support vertically sliding case.
    • [Plug-in]dot support vertically sliding case.

    iSlider 2.0.9

    • [BUG fix]disperse ghost when rotate and flip
    • [Optimization]animate: remove rotate and flip cover background-color
    • [BUG fix]Background image rendering affect the first frame position
    • Some optimization
    Source code(tar.gz)
    Source code(zip)
  • 2.0.8(Jan 6, 2016)

  • 2.0.7(Dec 23, 2015)

    iSlider 2.0.7

    • [BUG fix]Remove tap event trigger.
      • Without tap library support, if you bind a tap event, we will help you trigger it. If there are library supports tap, such as zepto, it will trigger twice. Accordingly, this action must be removed.
      • If you want to use the tap, or any other custom events, which means that it is important to you, we do not need to stop it.

    iSlider 2.0.6

    • [Optimization]add default width:100% for ul in css file.
    • [BUG fix]At isOverspread mode, background image cant be displayed. background size problem. (╯‵□′)╯︵┻━┻, baidu browser... kernel tooooooo damn old!
    Source code(tar.gz)
    Source code(zip)
  • 2.0.5(Nov 23, 2015)

    iSlider 2.0.5

    • [Optimization]Autoplay timer will start counting after animation("slideChanged", "slideRestored")
    • [Optimization]Add option "delay" for setting what time to start auto-play
    • [Optimization]Methods "on" add the third parameter to set a callback priority(Boolean equivalent value), If set to "true" then added to the top of the queue. default is "false".

    iSlider 2.0.4

    2015-11-13

    • [BUG Fix]None fixPage mode, overflow will set to "auto"
    • [BUG Fix]Add "mouseout" event, on desktop browser. Sticky problem when the finger to draw boundaries during sliding.
    • [Optimization] Image loading sequence
    • [Optimization] Animation Scope
    • [Optimization] AnimateType mount change
    • [Plug-in] BIZone added
    Source code(tar.gz)
    Source code(zip)
  • 2.0.3(Nov 5, 2015)

    iSlider 2.0.3

    2015-11-02

    Fix parameter error, opts is is no longer necessary.

    iSlider 2.0.2

    bug fixes

    • Fix mouse buttons error on safari;
    • Fix timer clean in destroy;

    Something new

    • Create event callback management mechanism, and "unbind", "undelegate" method;
    • Cleanup delegate event when destruction;
    Source code(tar.gz)
    Source code(zip)
  • 2.0.1(Oct 20, 2015)

    iSlider 2.0.1

    2015-10-20

    iSlider 2.0.1

    2015-10-20

    bug fixes

    • fixPage default value

    Something new

    • [Plug-ins] dot support more optisons,
      • locate - In which the container, values: 'absolute' or 'relative' or DOM, default is 'absolute'
        • absolute: Same with iSlider
        • relative: In iSlider
        • Specified dom, eg: document.getElementById('xxx')
    Source code(tar.gz)
    Source code(zip)
  • 2.0(Oct 14, 2015)

    iSlider 2.0

    Optimization, bug fixes

    • Original plug-in decoupling: dot, button, zoompic
    • Script reference change, adding mode
    • Remove configure options
      • useZoom (move to plugins)
    • Preload will work in all modes when the frame is automatically recognized as a picture.

    Something new

    • Support scramble data

      • Now you can choose any combination, put pictures, html string, elements, and even fragment, into the data list.
      • Option "type" is unnecessary, when it is 'pic' will open the image globally pre-loaded, of course, you don't have to worry about the other type of list members:)
    • Event registration mechanism added

      • Use "on"/"off" methods to manage events.
      • Now you can register event after the initialization, and they can be deleted.
    • Plug-registration mechanism added. (support original/hot registration)

    • Support for new event types

      • slideChanged
      • slideRestore
      • slideRestored
    • Supported parameters methods

      Now, slideTo, slideNext, slidePrev support the second parmater ({Object}) for custom temporary

      • animateTime
      • animateType
    • Configurable options

      • plugins: enable plugin
      • animateTime: animation process time
      • animateEasing: support linear, ease, ease-in, ease-out, ease-in-out and custom cubic-bezier()
    • Callback parameter specification

    • Hold and Lock. add 4 mothods "hold", "unhold", "lock", "unlock"

      • hold - disable touch events, except for the native method.
      • unhole - release current scene, and unlock at same time
      • lock - lock native method calls, you can't do anything on this scene, and hold at same time
      • unlock - unlock native method calls

      priority

      • hold << lock(hold)
      • unhold(unlock) >> unlock
    • Jumpy reader scene more smoother

    Source code(tar.gz)
    Source code(zip)
  • 1.2.4(Aug 18, 2015)

  • 1.2.2(Mar 16, 2015)

  • 1.2.1(Mar 14, 2015)

    • You don't need to pass image size in data when you use image type
    • You can choose fixPage to preventDefault when on touchstart, It is true default
    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Jan 25, 2015)

    • you can config {useZoom: true} to let img zoomIn & zoomOut.
    • you can use islider_core.js or custom compile plugins using the gulp tool.
    • you can use destroy method to destory islider when you won't need it.
    • islider can compatible origin overflow & iscroll.
    Source code(tar.gz)
    Source code(zip)
  • 1.1.1(Dec 2, 2014)

    • Add image preload, load one more image when slideChange and renderHTML.
    • Add scroll support, you can use origin scroll or iscroll in iSlider
    • Add tap event, avoid click 300ms delay
    • Add simple event bind, you can easy bind events without jQuery
    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Nov 17, 2014)

    • increased animation type , including(default, rotate, flip, depth, flow)
    • fixed interval looping bug (when window blur)
    • added overspread mode
    • added desktop support
    • optimized the code style
    Source code(tar.gz)
    Source code(zip)
Owner
Baidu BEFE
百度企业产品前端研发团队
Baidu BEFE
Swipe is the most accurate touch slider.

Usage Swipe only needs to follow a simple pattern. Here is an example: <div id='slider' class='swipe'> <div class='swipe-wrap'> <div></div>

Brad Birdsall 6.8k Dec 16, 2022
Super tiny size multi-touch gestures library for the web.    You can touch this →

Preview You can touch this → http://alloyteam.github.io/AlloyFinger/ Install You can install it via npm: npm install alloyfinger Usage var af = new Al

腾讯 AlloyTeam 3.3k Dec 12, 2022
Pressure is a JavaScript library for handling both Force Touch and 3D Touch on the web

Pressure is a JavaScript library for handling both Force Touch and 3D Touch on the web, bundled under one library with a simple API that makes working with them painless.

Stuart Yamartino 2.9k Dec 29, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Sachit Yadav 6 Nov 3, 2022
Pure JavaScript HTML5 Canvas Range Slider. No stylesheet needed. Simple, elegant and powerful. A quirky alternative to other sliders.

CanvasSlider CanvasSlider is a lightweight JavaScript range slider. Most of the range slider controls use Javascript and a stylesheet. This slider use

null 7 Aug 15, 2022
Tip Tweet is a hybrid dApp that provides a simple way to tip a tweet using Ethereum. Authors can claim their tips using their Twitter account. You only need the tweet URL to tip. 🚀 😎

Tip Tweet Table of Contents About Folder Structure Contract Deveopment Starting the App Usage Contributing About Tip Tweet is hybrid dApp that allows

Dias Junior 23 Nov 15, 2022
Building block for hybrid Deno/Node scaffolding tools

Skaffe—building block for hybrid scaffolding tools This library provides a simple way to copy around files that were shipped with your hybrid Deno/Nod

KnorpelSenf 2 Aug 2, 2022
Selectize is the hybrid of a textbox and select box

Selectize is the hybrid of a textbox and select box. It's jQuery based, and it has autocomplete and native-feeling keyboard navigation; useful for tagging, contact lists, etc.

null 12.9k Jan 5, 2023
Cross platform UI controls for progressive web and hybrid apps (plain JS, jQuery, Angular and React)

Mobiscroll What is Mobiscroll? Mobiscroll is a UI library for progressive webapps and hybrid development. Created with a lot of attention to usability

Mobiscroll 1.5k Dec 31, 2022
Authenticate users into a web2 database to build a hybrid web2+web3 creator platform!

Creator Platform This project demonstrates how you can connect your web2 backend and integrate it with web3 using sign in with ethereum. Tools: React

thirdweb templates 6 Dec 16, 2022
A collection of preloaded and essential files that makes the website more attractive, smooth and user friendly

Web-Docs A collection of preloaded and essential files that makes the website more attractive, smooth and user friendly How to use: git clone https://

MAINAK CHAUDHURI 23 Dec 17, 2022
SafeCycle—a tool that keeps cyclists safe. Gone are days of weaving through busy city streets, SafeCycle finds all the bike routes for you to ensure a smooth ride wherever you want to go.

Inspiration Biking—an everyday form of travel for students and professionals across the globe. On-campus, back home, and with the people that we know

Ryan Hu 2 May 2, 2022
A powerful javascript library to create amazing and smooth effects for the mouse cursor on your website.

Cuberto Mouse Follower A powerful javascript library to create amazing and smooth effects for the mouse cursor on your website. Dependencies GSAP v3 (

Cuberto 410 Dec 30, 2022
A-Frame components for smooth locomotion and snap turning

A-Frame locomotion A collection of A-Frame components, systems and primitives that enable all sorts of locomotion in VR. It't built to be modular, fle

Noeri Huisman 18 Sep 1, 2022
Smooth subdivision surface modifier for use with three.js BufferGeometry.

Three Subdivide This modifier uses the Loop (Charles Loop, 1987) subdivision surface algorithm to smooth modern three.js BufferGeometry. — Live Demo —

Stephens Nunnally 26 Dec 3, 2022
Smooth scroll animation - vanilla JavaScript

Smooth Scroll Animation Using Vanilla JavaScript Provides smooth scroll functionality on clicking buttons with different eeasing properties. The "smoo

Bhagabati Prasad 4 Aug 14, 2022