يشير حل انزلاق محتوى تطبيق WeChat الصغير الذي يعمل باللمس، وتفاصيل تصميم واجهة برمجة التطبيقات والتسمية إلى swiper.js.
cd my-project
git clone https://github.com/dlhandsome/we-swiper.git
dist/weSwiper.js
في ملف المشروع للتطوير import weSwiper from 'dist/weSwiper'
var weSwiper = require ( 'dist/weSwiper' )
< view class =" we-container {{directionClass}} " >
< view class =" we-wrapper "
bindtouchstart =" touchstart "
bindtouchmove =" touchmove "
bindtouchend =" touchend "
animation =" {{animationData}} " >
< view class =" we-slide " > slide 1 </ view >
< view class =" we-slide " > slide 2 </ view >
< view class =" we-slide " > slide 3 </ view >
</ view >
</ view >
import weSwiper from '../dist/weSwiper'
const option = {
touchstart ( e ) {
this . weswiper . touchstart ( e )
} ,
touchmove ( e ) {
this . weswiper . touchmove ( e )
} ,
touchend ( e ) {
this . weswiper . touchend ( e )
} ,
onLoad ( ) {
new weSwiper ( {
animationViewName : 'animationData' ,
slideLength : 3 ,
initialSlide : 0 ,
/**
* swiper初始化后执行
* @param weswiper
*/
onInit ( weswiper ) {
} ,
/**
* 手指碰触slide时执行
* @param weswiper
* @param event
*/
onTouchStart ( weswiper , event ) {
} ,
/**
* 手指碰触slide并且滑动时执行
* @param weswiper
* @param event
*/
onTouchMove ( weswiper , event ) {
} ,
/**
* 手指离开slide时执行
* @param weswiper
* @param event
*/
onTouchEnd ( weswiper , event ) {
} ,
/**
* slide达到过渡条件时执行
*/
onSlideChangeStart ( weswiper ) {
} ,
/**
* weswiper从一个slide过渡到另一个slide结束时执行
*/
onSlideChangeEnd ( weswiper ) {
} ,
/**
* 过渡时触发
*/
onTransitionStart ( weswiper ) {
} ,
/**
* 过渡结束时执行
*/
onTransitionEnd ( weswiper ) {
} ,
/**
* 手指触碰weswiper并且拖动slide时执行
*/
onSlideMove ( weswiper ) {
} ,
/**
* slide达到过渡条件 且规定了方向 向前(右、下)切换时执行
*/
onSlideNextStart ( weswiper ) {
} ,
/**
* slide达到过渡条件 且规定了方向 向前(右、下)切换结束时执行
*/
onSlideNextEnd ( weswiper ) {
} ,
/**
* slide达到过渡条件 且规定了方向 向前(左、上)切换时执行
*/
onSlidePrevStart ( swiper ) {
} ,
/**
* slide达到过渡条件 且规定了方向 向前(左、上)切换结束时执行
*/
onSlidePrevEnd ( weswiper ) {
}
} )
}
}
Page ( option )
onLoad ( ) {
new weSwiper ( {
slideLength : 3 // 必填,由于目前无法直接获取slide页数,目前只能通过参数写入
} )
}
touchstart ( e ) {
this . weswiper . touchstart ( e )
}
< view class =" we-container {{directionClass}} " >
< view class =" we-wrapper "
bindtouchstart =" touchstart "
bindtouchmove =" touchmove "
bindtouchend =" touchend "
animation =" {{animationData}} " >
< view class =" we-slide " > slide 1 </ view >
< view class =" we-slide " > slide 2 </ view >
< view class =" we-slide " > slide 3 </ view >
</ view >
</ view >
نصيحة: لا تحتاج الحقول في WXML إلى إعطاء قيم افتراضية في بيانات الصفحة. توجد آلية عرض المزامنة داخل we-swiper.
Number
0
يشير إلى عدد الصفحات في الشريحة
Number
device.windowWidth
ضبط عرض الشريحة (عند الانزلاق أفقيًا، سيتم حساب المسافة بين الشرائح بناءً على قيمتها)
Number
device.windowHeight
ضبط ارتفاع الشريحة (عند الانزلاق عموديًا، سيتم حساب المسافة بين الشرائح بناءً على قيمتها)
String
horizontal
horizontal
: حرك الشريحة أفقيًاvertical
: الشريحة الشريحة عمودياضبط اتجاه انزلاق الشريحة
Number
0
قم بتعيين فهرس الشريحة أثناء التهيئة
Number
300
ضبط مدة انتقال الشريحة
String
ease
linear
: حرك الشريحة أفقيًاease
: الشريحة الشريحة عمودياease-in
: قم بتحريك الشريحة عموديًاease-in-out
: قم بتحريك الشريحة عموديًاease-out
: قم بتحريك الشريحة عموديًاstep-start
: الشريحة الشريحة عمودياstep-end
: قم بتحريك الشريحة عموديًاقم بتعيين منحنى سرعة الرسوم المتحركة لانتقال الشريحة
Number
0
قم بتعيين الفاصل الزمني للتشغيل التلقائي للشريحة عند التعيين على 0، لن يتم تشغيلها تلقائيًا.
String
directionClass
يتوافق مع اسم فئة الاتجاه في طريقة العرض
String
animationData
يتوافق مع اسم سمة الرسوم المتحركة في طريقة العرض
إرجاع فهرس الكتلة النشطة حاليًا (الكتلة النشطة)
إرجاع فهرس الكتلة النشطة السابقة
إرجاع عرض حاوية swiper
إرجاع ارتفاع حاوية swiper
إذا كان المضرب في الموضع الأولي، فسيتم إرجاع صحيح
يُرجع صحيحًا إذا كان المضرب في موضع النهاية
إرجاع مدة الانتقال للswiper الحالي
انتقل إلى الشريحة التالية
runCallbacks
: اختياري، اضبطه على false لعدم تشغيل وظيفة رد الاتصال onSlideChangespeed
: اختياري، سرعة التبديل انتقل إلى الشريحة السابقة.
runCallbacks
: اختياري، اضبطه على false لعدم تشغيل وظيفة رد الاتصال onSlideChangespeed
: اختياري، سرعة التبديل قم بالتبديل إلى الشريحة المحددة.
index
: مطلوب، رقم، يحدد فهرس الشريحة التي سيتم التبديل إليهاspeed
: اختياري، سرعة التبديلrunCallbacks
: اختياري، اضبطه على false لعدم تشغيل وظيفة رد الاتصال onSlideChange وظيفة رد الاتصال، يتم تنفيذها بعد التهيئة. مثيل weswiper الاختياري كوسيطة.
وظيفة رد الاتصال، يتم تنفيذها عند لمس شريط التمرير. أحداث weswiper وtouchstart الاختيارية كمعلمات
وظيفة رد الاتصال، يتم تنفيذها عندما يلمس الإصبع الماسحة ويتحرك (الإصبع). في هذا الوقت، قد لا تتحرك الشريحة بالضرورة، على سبيل المثال، عندما يكون الاتجاه المتحرك لإصبعك متعامدًا مع اتجاه التبديل للممسحة
وظيفة رد الاتصال، يتم تنفيذها عند تحرير شريط التمرير. (التنفيذ عند الإصدار)
وظيفة رد الاتصال، يتم تنفيذها عندما ينتقل المسح من الشريحة الحالية إلى شريحة أخرى. في حالة اللمس، إذا لم يتم الوصول إلى حالة الانتقال عند تحرير الشريحة ولن يتم تشغيل هذه الوظيفة عند ارتدادها، فيمكن استخدام onTransitionStart في هذا الوقت.
يقبل مثيلات weswiper كمعلمات، ويكون الناتج activeIndex هو فهرس الشريحة بعد الانتقال.
وظيفة رد الاتصال، يتم تنفيذها عندما ينتقل الممسح من شريحة إلى أخرى.
يقبل مثيلات swiper كمعلمات.
تقبل وظيفة رد الاتصال، التي يتم تشغيلها عند بدء النقل، مثيل weswiper كمعلمة.
وظيفة رد الاتصال، التي يتم تشغيلها عند انتهاء الانتقال، وتستقبل مثيل weswiper كمعلمة.
وظيفة رد الاتصال، يتم تنفيذها عندما يلمس الإصبع الماسحة ويسحب الشريحة.
وظيفة رد الاتصال، يتم تنفيذها إذا تم تشغيل شريط التمرير للتبديل للأمام (لليمين أو للأسفل) عند تحرير شريط التمرير. يشبه onSlideChangeStart، ولكنه يحدد الاتجاه.
وظيفة رد الاتصال، يتم تنفيذها عندما يتحرك شريط التمرير للأمام (يمينًا، لأسفل). يشبه onSlideChangeEnd، ولكنه يحدد الاتجاه.
وظيفة رد الاتصال، يتم تنفيذها إذا تم تشغيل شريط التمرير للتبديل للخلف (يسارًا وأعلى) عند تحرير شريط التمرير. يشبه onSlideChangeStart، ولكنه يحدد الاتجاه.
وظيفة رد الاتصال، يتم تنفيذها عندما يتحول شريط التمرير إلى الخلف (يسارًا وأعلى). يشبه onSlideChangeEnd، ولكنه يحدد الاتجاه.
ترخيص معهد ماساتشوستس للتكنولوجيا (http://opensource.org/licenses/MIT)
لا تتردد في الاستمتاع والمشاركة في المصدر المفتوح
إذا كانت لديك تعليقات أو اقتراحات جيدة، فلا تتردد في إرسال مشكلة أو طلب سحب لي.