作者:BILLLLL | 来源:互联网 | 2020-09-06 02:47
本文为大家介绍了js实现滑动插件的方法,具有一定的参考价值,希望可以帮助到大家。Slider.prototype(原型链上)拥有实现滑动的方法,通过监听手势,实现滑动的效果。
基本思路是封装一个Slider类, 拥有默认初始配置参数。
Slider.prototype(原型链上)拥有实现滑动的方法,通过监听手势,实现滑动的效果。
比较复杂的滑动效果, 可以使用Swiper.js 来实现。
(推荐教程:Javascript教程)
代码如下:
/* PollyFill for iOS 5.* */
if (!Function.prototype.bind) {
Function.prototype.bind = function (oThis) {
var args = Array.prototype.slice.call(arguments, 1)
var f2bind = this
var fnop = function () {}
var bound = function () {
return f2bind.apply(this instanceof fnop && oThis
? this
: oThis,
args.concat(Array.prototype.slice.call(arguments)))
}
fnop.prototype = this.prototype
bound.prototype = new fnop()
return bound
}
}
// 添加浏览器前缀
function prefix(style) {
var vendor = (function() {
var transArr = ['transform', 'webkitTransform', 'MozTransform', 'msTranform', 'OTransform'],
vendors = ['', 'webkit', 'Moz', 'ms', 'O'],
elementStyle = document.createElement('div').style
for (var i = 0; i 0) || (currentIdx == this._total && moveDist <0)) {
return this.slide($current, moveDist / 4)
}
leave($current, moveDist)
}
},
_end: function(e) {
var move = this._moveDist,
distance = this._distance,
triggleDist = this.options.triggleDist,
enter = this._enter,
$current = this.pages[this.options.currentIdx],
$next = $current.nextElementSibling,
$prev = $current.previousElementSibling
this._touching = false
this._enter($current, 0)
$next && enter($next, distance)
$prev && enter($prev, -distance)
if ($next && move <-triggleDist && this.hook.shouldGoToNext($current)) return this._next()
if ($prev && move > triggleDist && this.hook.shouldGoToPrev($current)) return this._prev()
},
_next: function() {
this.go2page(this.options.currentIdx + 1)
},
_prev: function() {
this.go2page(this.options.currentIdx - 1)
},
go2page: function(idx) {
var $current = this.pages[this.options.currentIdx],
$target = this.pages[idx],
enter = this._enter,
leave = this._leave,
distance = (idx 更多炫酷Javascript特效代码,尽在:Javascript特效
以上就是js如何实现滑动插件的详细内容,更多请关注 第一PHP社区 其它相关文章!